Adam Mechtley demonstrates the Root Motion Computer component he created for Mixamo for use in Unity projects. The component is designed to let animation data drive a character’s motion in space as an alternative to using in-place motions. An example project containing the component (and all of its source code) is available as a free download from Mixamo:content.mixamo.com/mixamo_animationdrivenplayablecharacter.zip

“The component that I created is designed to let animation data, rather than procedural velocity values, drive a character’s motion in space. The component sits on top of Unity’s animation API to let you simply play, crossfade, and blend animations using any of the existing API methods, and the computer takes care of everything else after the fact. The way it works is by tracking the position and rotation of the pelvis in the space of the character’s root node for each active AnimationState and then backward applying this motion to the root node itself and snapping the pelvis back into its position hovering over the root. Since the source code is all available in the project, I won’t belabor the details too much here, but you can certainly ask me if you have any questions. (The one thing perhaps worth mentioning, as an addendum to the video, is that the pelvis forward axis is not strictly necessary for computing output: only for displaying debug information. For computation, the character’s rotation is determined using the pelvis right axis.)”