Game Feel: Animation Cancelling

A wild jungle seen on an island after shipwrecking from above by a castaway warrior woman.

Game Feel: Animation Cancelling

A knight carries a large heavy sword. They wind up a little, like a batter in baseball or Guts in Berserk, and swing from right to left in a wide arc, stepping into it, but misses their target who is now running away. The blade comes to rest on the ground to the left. The knight takes a quick breath, returns the sword to neutral, and then begins jogging after their fleeing foe.

In a game, the part of the system that makes the knight move the sword, step into the attack, and pause afterwards is an animation (in Unreal Engine, probably an 'animation montage'). There are 3 parts to this animation: the windup, the main action, and the follow-through.

For many animations, you want there to be significant anticipation of the movement via a long windup. The main action (a sword attack) proceeds, and then a long follow-through completes the motion and conveys the weight of the sword. All together, this sort of timing can be described as slow-in, slow-out (sometimes slow-in, slow-out applies to the 'main action' as well).

The critical exception is when a player is controlling a character. In that case, any delays between input and action risk making the game feel pretty bad. You get the feeling that you are pushing buttons and the game is not responding.

Because of this, a lot of games opt for a fast-in, slow out: the beginning of the animation begins very quickly, and to convey weight and realism, the game focuses on a long follow-through.

Takahisa Taura of Platinum Games discusses this at length in a GDC talk about NieR:Automata. Also, Tara Doak, developer of Aces Wild, an indie game with incredible game feel, often discusses this on her youtube channel

There are times when we want to abort this follow-through. If its to perform a new attack, this is often part of a combo system. Otherwise, its often called animation cancelling because you are essentially aborting an animation before it finishes. If the new animation is a 'getting hit' animation, its usually just called 'getting hit,' but its basically the same thing happening in each case.

Generally, the whole point of the animations in games, with their anticipation and follow-through, is to make the game feel good to play and watch. If a player is stuck in one of these animations, jabbing dodge as fast as possible, while the character is stuck in some fancy pose, they have a right to get mad when they get hit. It can break immersion because its unrealistic, and it violates 'user control and freedom.'

Sometimes these mechanics get exploited for competitive advantage. In many fps games, you can animation cancel out of the follow-through of a weapon change, firing animation, or reload. In DOOM Eternal, you are meant to exploit this during weapon swapping in order to deal with Marauders, and in competitive FPS it has just become an accepted part of play. Fans tend to describe these as depth mechanics, but its actually there to prevent a bad feeling when a normal user doesn't want to get killed because they are stuck in the follow-through of an action.

To implement this in Unreal Engine 4, all you have to do is modify your ability system to respect some sort of 'canCancel' flags that you put into your animation montages: if the player is in part of an animation where that flag is set, they can activate another ability at will, usually 'dodge' or 'attack,' but you can configure it however you like.

There are a surprising number of indie games out there that don't implement this. I think they feel that dealing with the follow through of your actions is part of the skill of the game. They aren't wrong.. but even a game like Dark Souls that uses follow through to punish your mistakes still has animation cancelling.

warrior woman looks into distance at night near a lighthouse by torchlight

About the Author

I'm Nathan. Contract game developer and full stack software developer. E.I.T. Writer. Tabletop RPG designer. Artist. Likes dogs.