How do I implement a Charged Double Jump in the AnimationBP State Machine?

Hi everyone, thanks in advance, any help is appreciated. This is my animation blueprint, its the default animationBP unarmed that the Unreal’s third person template has. I added two more states, a Charging State and a Double Jump. The Double Jump animation isn’t firing, that’s what I infer from the state machine highlighted state. The transition rules seem correct, the jump animation only plays after releasing space then the jump count goes up to 1 . In the second jump the rule is that the jump count should be ==2. Still deosnt play the animation, if I erase the first jump, then the double jump gets played twice but what I want is two differnet animations, one for the first an another one for the second. If you want to look at the code I can share it too. Thank you! Here’s the link to a video whre you can watch the State machine behaviours.

Short video showing the logic of my Blueprint

The issue is likely that Jump Count == 2 is being checked after the jump logic has already changed the state, while the state machine is also trying to transition through the first jump state.

For two different animations, I’d avoid relying only on Jump Count == 2 inside the state machine. A cleaner setup is to explicitly track which jump was triggered.

For example:

  • First jump → set IsDoubleJump = false and play the first jump animation.

  • When the second jump is triggered → set IsDoubleJump = true and play the second animation.

  • Use IsDoubleJump as the transition condition for the second jump state.

  • Reset it when the character lands.

Also make sure the transition from the first jump state to the double-jump state can actually occur while the character is airborne. If the first jump state has a transition that catches the character before the double-jump condition is evaluated, the second animation may never get reached.

Another common issue is using a state machine transition that depends on the exact value Jump Count == 2. Since the character movement code and Animation Blueprint can update on different frames, using a boolean/event-style variable such as IsDoubleJump is generally easier to debug.

I’d also verify that the Double Jump animation itself isn’t being restarted by the transition rules. If removing the first jump causes the double-jump animation to play twice, that strongly suggests the state logic is reaching that animation more than once rather than the animation asset itself being broken.

A good debugging step is to display Jump Count and IsDoubleJump on screen while playing. Watch the exact frame when the second jump is triggered and confirm that the Animation Blueprint sees the expected value.