- Edited
I'm using an AnimationTree to handle my character's movement animations, including idle/walking/running (as a BlendTree), jumping, falling (split into a "fall start" and a looping "fall" animation), and landing.
When the character lands on the ground, it's possible for the player to immediately start another jump. I achieved this with AnimationNodeStateMachinePlayback's start()
method, which makes the StateMachine skip straight to the jump animation rather than travelling to it like normal. Without this, the character would finish blending between the "landing" and "idle" animations before starting the jump, which felt horrible and laggy.
The issue I'm now having is that using start()
doesn't enable any kind of blending whatsoever, so the result looks very jerky and unnatural. It doesn't look so bad if you wait for the "landing" and "idle" animations to finish blending before jumping again, but since the "jump" animation starts in a similar position to the "landing" animation, it looks really awkward if you jump again immediately upon landing.
Can anybody think of a more graceful solution to this problem? Is there a way to "interrupt" an AnimationTree StateMachine while it's in the middle of a blend and still get it to blend into the new animation?