Root Motion Animation Blueprints


 

Summary

After working extensively with animations inside UE4 at Star Vault it is something I came to be very interested in. There are generally two ways of controlling a characters movement inside a game engine, terms of 3D animation:

  • The animations responds to the controllers input, making the animations play as the character moves, which is known by some as “Script Motion.”

  • The animations itself drives the movement in the character, by moving the root of the characters skeleton, which is commonly known as “Root Motion.”

Since the game we were working on at my internship was network based we needed to keep as much in the code as we possibly could, which resulted that in that we had to keep to the former method.

Both forms of animation systems have their positives and negatives, such as root motion is better for simulating natural movement, or that script motion is generally cheaper and responds instantly. Having said that it is no secret that root motion is a bit more difficult to deal with compared to script motion, since the motion of the character does not fully lie in the control input, that it needs to transition into motion which is in the animation.

There was a lot of research, trial & error and a lot of challenges to overcome, such as;

  • Accurately determine which direction the character was going to move, dependent on where the camera is facing.

  • Make the character move as nicely as possible, my making a series of “Start” and “Stop” animations, depending if the character was going to start or stop moving, which in turn was controlled by custom events which determined if the character should transition or not.