- Home /
Compute the positions of animations in 2D blend trees too large?
I have a character game object that code moves around from place to place in a coroutine.. e.g. turn right, turn right and move 1 etc. It moves the character by changing the gameObject.transform.rotatation and gameObject.transform.position using lerp functions.
I've got a 2D free form directional blend tree attached to the character animation controller. I've added a number of animations: turn left, walk, run, run left etc. Then I selected the Compute Positions: Speed and Angular Speed to place the animations appropriately in the 2d viewer (scrubber?).
In my Update() method I set the speed and angular speed animation parameters and I can see their values change dynamically in the animator window while the character is moving.
My problem is the amount of movement that the character is performing is too small to make the animatorcontroller choose anything but the idle animation. E.g. Moving 0.3 to 0.5 unity units per frame e.g. a (0, 0.3) position in the 2D blend tree coords, and the walk animation has been computed to be at (0.0, 1.7), i.e. 0 angular speed and 1.7 speed. So the animation is almost entirely the idle animation at position (0, 0).
The calc for the speed in Update is:
speed = (gameObject.transform.position - lastPos).magnitude / Time.deltaTime;
If I move the walk animation down to say (0, 0.3) then it works ok-ish. It seems to me that either I'm not calculating the speed correctly (which seems simple enough) or the Compute function is doing something I don't understand (or is buggy? which I doubt).
So my question is: How does the Compute Angular Speed and Speed functionality work? Am I doing this right? (I'm a bit of a newbie).
I think this might be because the characters are scaled down to 0.5 (so they fit on a grid with squares 1 unit wide) so the distances they travel are halved.
Your answer
Follow this Question
Related Questions
Are mecanim blend trees linear? 2 Answers
Is it possible to change animation speed in itween? 1 Answer
Walk to Jog to Run 0 Answers
Increasing speed of Character Motor on collision help 2 Answers
DragObject Damping 2 Answers