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.
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.
I think this has been implemented with the new(-ish) ControllerManagers, which are more physics based and have smooth acceleration and deceleration. See here:
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.
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 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.
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! 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.)
I don’t know when these were added, but Animator.RootMotion and Animator.RootMotionWeight seem related to the implementation of this feature. @Wunder_Wulfe