RootMotion + Colliders

The goal here is to propose an implementation of the Root Motion system for controllers using a NavMeshAgent.
Please note that this feature is experimental and may require some adjustements on the implementation to work.
In this exemple the player controller is organized as follow:
  • PlayerObject ("root" -> contains the Animator, contains also a box collider and a rigidbody)
    • AvatarObject
      • Mesh
      • Armature
        • Hips
When used, the root motion will transfer any movement of the Hips to the PlayerObject (the root).
We advise you to disable the "ApplyYPos" option to prevent the avatar lifting up on Emotes where the character's hip are lower than their original point
We found that to get the best results, you have to lock the rotation on the rigidbody on the X and Z axis.