Create a Root Motion based animation system

Many game engines have this feature commonly known as Root Motion. What is it? If you’ve ever played a game like GTA, you might have noticed that the characters don’t just start moving on a dime. They take time to accelerate and decelerate. When running, the character has to get up to speed, and slow themselves down. This movement feels weighted and it actually feels like you’re controlling the movements of the character, not just pushing them around with instantaneous response time. This is where Root Motion comes in. Root Motion involves in the animation keeping track of how the root of the character is manipulated as it moves through space. In unity, for example, you check the “Apply Root Motion” option of the Animator, the character will apply forces to move in the direction of the Root Motion.

This means if you make a character physically walk forward in an animation, the character will apply forces to make them walk forward in the game world as well. This is different from making an animation where the character stays at the origin, walking in place, and a script is what moves the character.

I would like to see the application of a Root Motion based system, where the movement of the character is determined by the blending of the playing animations, not by a script that is pushing the character manually. This will make it easier to make more fluid and weighty movement systems.

More information:

This may be easier to pull off with an actual animation blending system like Unity’s Blend Trees, and/or an animator system with layers. But that is a suggestion for another thread.

93 Likes

I was actually just writing up a feature request for this! Root motion is an absolute must-have in any game engine. I’m not sure how Roblox has gotten away with not supporting it for this long.

17 Likes

This is a must have! Roblox please!

5 Likes

Yess! I love this, This changed my life way back when I was developing on Unity.

2 Likes

I think this has been implemented with the new(-ish) ControllerManagers, which are more physics based and have smooth acceleration and deceleration. See here:

cc: @Neuroticxs

5 Likes

Bumping because this would be revolutionary for animations that require motion such as a mantle. Please Roblox consider adding this feature!

4 Likes

Bumping this again, this is absolutely a must-have, right now my skinned mesh characters look TERRIBLE with animations because there isn’t a root motion option.

Please add this Roblox.

3 Likes

This would be an awesome addition, i can already imagine several things to do with it.

3 Likes

Bump i need this feature really hard.

3 Likes

Basically the root bone of my skinned meshes wouldn’t move in animations, but i found a fix for it thanks to a post i found.
But this would still be a great idea, not only for skinned meshes.

This would be the best thing to ever happen to Roblox

1 Like

Bumping this again, this feature is needed.

3 Likes

This feature is very useful and very important for development, we need it;
Root Motion would give us many possibilities, I don’t understand why it hasn’t been added yet.

2 Likes

This would help make games more realistic which I’m pretty sure is what Roblox wants. This def needs to be added!

1 Like

I think there was an example of this at RDC; either this or procedural animation. It was the demo where a object flies into the character, and the character got knocked backwards and the animation followed the motion.

Bumping this up so it can be added

1 Like

I did actully ask a question about this and here is the answer:

He replied to it in the end though i don’t know when it is going to release

2 Likes

Bumping this! I hope roblox adds this for both R6, R15, and other sorts of rigs with their respective animations. (Hopefully we also get some sort of animation tree system.)

1 Like

I don’t know when these were added, but Animator.RootMotion and Animator.RootMotionWeight seem related to the implementation of this feature. @Wunder_Wulfe

1 Like

ROBLOX Should add animation blueprints and blendspaces