How do I set different animation states for a 2D sprite character?

I have watched all 2D character animation tutorials I could find and the Idle, Running and Falling Animation (which are explained in this [tutorial series][2] for example) work fine for me.
Now I would like to add more animations with their own triggers.

I have divided the jump into 3 parts:

  • leaping (the start of the jump)
  • falling (works with the “is falling” node)
  • landing

So leaping and landing would be the additional animations…

I can’t think of conditions that could trigger the leaping and landing animations and also end them correctly.
So far I have tried several different setups.

For landing I have tried to use the “Event on Landed” Node with a “Break Hit Result” this works for the initial landing but overrides the idle animation and won’t stop. For “Leaping” I have tried the “Pressed Jump” variable and also a configuration that checks the “z” vector this also resulted in the animation not stopping.

I get how it is logical for Running to check the velocity vector and for Falling to check the Falling state but I don’t get how I can trigger an animation from only a certain event and stop it right after playing it once. I would really appreciate some help here, thanks!

In case you are wondering why I used a delay after the jump event, it is to start the leaping animation a bit before the jump actually happens.

Not to pick at your design decicions, but is it wise to induce input lag, taking away the responsiveness of the game?