Leslie Apland

Flying Lead Changes in Wind's Heartbeat

21 Jan 2026 - Leslie Apland


In this article I'll discuss making canter lead changes look good, and why the techniques shown are necessary.

When to Transition Canter Leads

As previously discussed, which canter lead the horse picks up depends on where they were in the trot animation cycle. Once the horse is in a particular canter lead, the horse will change leads based on which direction the player turns them. If the horse is doing a left-lead canter and the player turns to the left, the horse will maintain their left-lead canter. But if the player turns to the right, shortly after the start of the turn the horse will execute a flying lead change, switching to the right-lead canter.

Here's our Animation Blueprint State Machine at this time:


As with moving from the trot to the canter, there is a specific place in the canter animation where the flying lead animation should be played. So the code sets a boolean that the flying lead should happen, and then waits for the animation notify to trigger. The function behind the notify checks the boolean and broadcasts that the transition should happen. The ABP has bound to the delegate, and this broadcast causes a boolean in the ABP to be set. This boolean causes a state machine transition, and the flying lead animation is played.

Setting the boolean, then waiting for the anim notify to trigger.


Broadcast that sets the lead change in motion.

Where the AnimBP binds to the delegate and sets the variable.

The AnimBP responding to the variable.


Putting it all together we have:


Does it Matter When the Flying Lead Change Animation is Played?

So I've showed things looking good and the animations blending well. I want to show some negative cases, where things don't look so good. You may be thinking,

"It seems like a lot of work to set up when the animations should transition. Does it really look so bad if we execute the transition immediately when the player requests the new gait?"

So let's switch this around. Instead of saving the gait request, let's broadcast it immediately when the player starts turning the horse, and let's remove the anim notifies from the Left Lead Canter animation.


And this is the result:

See the hitch in the legs as the animations blend, but slightly out of sync? If we want our lead changes to look good, making sure the animations blend at the correct times is important!


Are Flying Lead Change Animations Really Necessary?

You might wonder,

"Do we really need a flying lead change animation? Does it look that bad if we just switch from the Left Lead Canter animation to the Right Lead Canter animation?"

Let's do our best to make the animation switch look as seamless as possible. We'll remove the Flying Lead animation and have the Left Lead Canter state go directly into the Right Lead Canter state.
It would be best to line up the two canter lead animations and trigger the switch to the right lead when the left lead animation is closest, but because the leads are mirrored the two animations do not sync well at all. There's no "best place" as the animations are opposites of each other. No matter where the anim notify is placed, the leads will not sync up well.
Here's the result:

See the slide in the middle of the animation? All four legs blend in a strange sliding motion to where they are in the second animation.

Results

As you can see, some of the animation transitions may be passable without an intermediate animation, but the intermediate animation makes the animation switch look a whole lot better. And making sure the animations are timed correctly makes them look smooth and avoids animation "hitches". In this case, it's very important for us to have animations transitions that look as natural as possible because the market we're catering to - horse girls - will notice any problems straight away.