Engine: Unity

3D tool: Blender

Since the start of my game dev endeavour, I can't seem to decide on the type of animation system I want to use.

Can someone please give me reasons why you would NOT use root motion and maybe a real world example, because currently I see no reason to not use root motion. I understand the loss of control when using root motion, but from my understanding, the amount of control is "enough".

Treadmill motion(stationary animations) seems like it wont look good enough because you have to perfectly match your move speed to animations. I just need either a resource or proper answer on the specifics about why you would use one over the other or a blend(treadmill for walking, root for jumping etc).

Appreciate any help provided.

  • \$\begingroup\$ If a tool works for you, then there is no reason not to use it. If your way makes nice games, why does it matter what is other people's opinions? \$\endgroup\$ – TomTsagk Aug 5 '19 at 15:16
  • 1
    \$\begingroup\$ My questions is related to any shortcomings/advantages of systems in question that I might not know of. I want to know reasons for specific systems as it might influence or work better for my needs. \$\endgroup\$ – cranial3 Aug 5 '19 at 15:20
  • 1
    \$\begingroup\$ If you haven't encountered a shortcoming that has observably hurt your project, then does it matter? \$\endgroup\$ – DMGregory Aug 5 '19 at 16:17

This is coming from the perspective of Unreal 4. I am not too familiar with Unity's root motion system, so forgive me if this isn't 100% relevant.

The primary benefit of root motion is your character follows the movement curve of the animation. This means if your animation has variable movement speed, the character SHOULD adjust their speed accordingly. This allows the animator to have full control of the movement speed. An example of this would be a single animation that has the character running forward, stopping, and then starting to run backwards. When using root motion, the feet of the character should plant at the proper time, without any modification. This is obviously the desired behavior, and it saves the programming team the time of having to procedurally re-create the variable speed of the character to keep the feet planted.

The primary downside to root motion is the game engine needs to support it in all of it's systems. In the case of Unreal 4, Root Motion is NOT supported on the Navmesh out of the box, so any root motion done will not check the Navmesh to see if the position being moved to is valid. Root Motion is also limited in multiplayer in Unreal 4. This is because the default movement replication system works best with a more constant movement speed. It is easier to predict movement in multiplayer when the movement speed isn't fluctuating all the time.

So at the end of the day, the choice is dependent on a few key factors:

  1. Does your engine fully support root motion out of the box? If it does not, would it be easier to modify the engine to support it, or would it be easier to do it with stationary animations?

  2. Who needs to control the speed of the character, the animator, or the programmer? In the case of a single player only game, designed to be as realistic as possible, it is probably fine to use root motion (unless there is a lack of support for something single player related, such as naviation). In a multiplayer game, it is most likely better for the programmer to control the movement speed (for movement prediction), and thus you should not use root motion.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.