Basic Horse Gaits in Wind's Heartbeat
28 Dec 2025 - Leslie Apland
Implementing Horse Gaits
For the uninitiated, the average horse has four distinct gaits: Walk, trot, canter, and gallop. Though some breeds have gait variations and other breeds have one additional gait, we're not concerned about those here. These four gaits are distinct from each other and when moving; the horse is either in one of these gaits or not. This is unlike a human whose two-legged gaits of walk and run can be (fairly) seamlessly blended between without issue (frequently using a single blendspace).
For horses I chose to set up four separate blendspaces and the horse maintains a gait once requested. The player simply requests the horse move up or down a gait. For example, from a halt the player presses "w" and the horse moves into a walk. Then the horse maintains the walking gait with no input from the player until the player presses "w" again to move into the trot, or "s" to move back down to a halt.
The horse's Anim graph looks like this:
We'll get to the "CanterRight", "CanterLeft" and "FlyingLeadLR" nodes in a future post. For now, each gait has a maximum movement speed that is comparable to a real horse's average speed for the particular gait.
For the walk I slow down the start of the walk so it looks a little better when moving from halt to walk.
The horse also turns their neck slowly as the player requests the horse turn. As the horse turns their forward movement slows, so they are moving more slowly when they are in a hard turn than they would be moving straight ahead.
There's also a small buffer window for requesting gaits. In the case that the player wants to speed up to a gallop as quickly as possible they must wait until the horse has fully moved into the current gait before requesting the next one, but there is a small buffer window where their input will be cached and the horse will finish moving into the current gait and then move into the next gait requested.
Putting it all together we have:
Check out my latest game: Wind's Heartbeat
And join the mailing list to stay updated! Wind's Heartbeat mailing list