What is causing Root bone rotation on mannequin retargeted animation?

I’m having some issues with a custom skeletal mesh I imported to use with the Third Person template for prototyping. Even after retargeting the basic mannequin animations, some of them (especially the blendspaces) are rotating the root bone 90-180 degrees. The root, itself, is at 0.


The skeleton has the same hierarchy as the simple mannequin and the orientation of the root bone is the same, and the bind pose is the same. I rotated the root -90 degrees on X in Maya before parenting the rest of the skeleton since I noticed Unreal applies a 90 degree rotation to the root regardless of if you export Z-up.

I did an IK retarget rig because the proportions are slightly different. All the animations play fine in the retargeter.

When I swap the mesh into the third person character blueprint he flips forward 90 degrees on the X-Axis when you move the character.

I made a separate animation blueprint and blendspaces, and assigned the baked retargeted animations and that worked okay, but the model still dips and rotates forward when changing direction.

So, I’m just really confused.

In case anyone else runs into this issue, while I didn’t find the cause, I was able to find a solution.

What worked for me was: creating the IK Rig and retargeting the mannequin skeleton to the custom character skeleton (although it is the same as the mannequin simple), baking out the retargeted animations from the Manny Anim Blueprint, force locking the root on the rotated animations (in my case, this was walk forward and land), and then creating a new blendspace for the walk/run using the retargeted animations and a new anime blueprint.

It’s important NOT to duplicate the Manny Walk/Run Blendspace and Animation Blueprint and then plug the new animations into it. While I couldn’t figure out where this was, something in those causes the root to rotate during blending, so even with retargeted animations, my character was rotating forward 90 degrees whenever he changed direction during Play in Editor.

It would still be cool if someone was able to find the root cause (no pun intended), but I hope this workaround helps!