- Home /
Transitions with blend tree only at end of animation
I want to create a Boulderdash-like idling animation using Sprites:
I have 4 idle animations (Standing, Eyeblinking, Foot-tapping, Blinking+Tapping)
Each animation consists of 8 frames (running at 20fps)
I've setup 2 Animator parameters "tap" and "blink", that I set randomly to 0 or 1
I've setup a state with a blend tree, with 4 motions (my idle animations), 2D Freeform Cartesian, corresponding to tap and blink parameters
What works so far: I can set tap and blink parameters to 0/1 and the proper animation is played. However, it gets immediately blended into the next state, and I want the current animation to finish first completely, before it switches to the next one.
How can I achieve this? I tried setting physics engine timestep to the same 20fps as the animations have, and change the random parameters only every 8 FixedUpdate() steps, but it isn't really in synchronization.
Answer by Romano · May 05, 2014 at 04:01 AM
I'm no expert so there may be a better way, but maybe you could add an event onto the last frame of your animation like this:

And have a function that sets an animationFinished boolean. Maybe you'd need to set it to false in the first frame.
Also, you could maybe use something like this (where anim is a reference to the Animator):
if (anim.GetCurrentAnimatorStateInfo(0).IsName("AnimationName")
If the function needs to know which animation has just finished.
Your answer