Blender to Mecanim - Root Transform Rotation Offset

Hi Everyone,

I am working on a character I created in Blender and exported to Unity 3D. In Unity, the humanoid character is having some issues with the root transform rotation. I am exporting from Blender with no root transform rotations applied, only simple walk/run animation cycles attached. I then import into Unity and the x value of the velocity for the walk cycle has a value of .038 by default. Under root transform rotation I then have to apply an offset of 2.35 to correct this and have him walk completely straight.

Does anyone know if I should have this set up differently in Blender? Right now I have no key frames associated with the root pose bone, so I’m not even sure where Unity is reading the rotations from. Trying to figure out how to get the velocity to zero, or at the very least understand why it comes in not equal to zero.

Thank you!

Sarah

So Unity is applying a rotation where there is none, and you are manually correcting for this? (Making sure I understand your problem)

Are you sure you selected the correct bone to serve as your root?
Is the object colliding with anything? Eg, if you have two colliders that are intersecting you can get some odd behavior.

Thank you for your help KnightsFan!

I’m not sure if it’s Unity applying the rotation but I export a model from Blender that walks straight, and then in Unity Mecanim it goes off course as it continues to play. I did follow what you suggested and realized I did have the wrong bone chosen as my root, but after correcting that it still seems to have that issue. I can fix it by checking the “Bake into Pose” for the Root Transform Rotation and changing the “Based Upon (at Start)” to “Original”.

I’m still wondering what causes that though and if there is a way I can prevent that from happening initially. I checked the colliders also and only have one object colliding with it.

Thanks!

I’ve actually never used Humanoid, so there could be some little setting that I don’t know about. However, it seems as though the animation is rotating the object somehow, since “Bake into Pose” fixes the problem. Since changing Mecanim settings fixes it, there probably isn’t anything wrong with colliders.

When you play the animation in the inspector, does it rotate, or does it move properly? Is there any part of your animation that rotates by 2.35 that Unity could mistakenly apply to the entire model?

Yeah it could be a setting for humanoid… I need to learn the Mecanim settings better :-/ But you are right it probably is something with my actual animation if bake into pose fixes it.

In the inspector the animation does rotate, until I apply the bake into pose settings. If you play the animation at 2x the speed you can really tell he is not walking along the straight line at all. I just don’t see where in my animation he would have a rotation of 2.35… the root bone actually doesn’t rotate at all. I tried keying the root bone just to make sure it wasn’t being rotated but that didn’t work either.

Thank you for your suggestions!

Hold down control and six to get to animation window.Then select a bone in the heirechy which is in root.Hold down control and six to get to animation window.Then click on the red button in animation window.And click on curve.Then move the read line forwards from the top of the animation window.Then rotate the bone you selected.Then repeat this process for all the bones.
I animate in unity.So i thought it would help you.