Why does my character animation have some angular velocity?

I made a walk animation with 3DS Max and it loops perfectly with the same height/rotation etc.

I’m using Root motion, on a humanoid type of animation.

What reasons could it possibly be that my animation has some angular velocity in Unity?

Why does my character’s y-coordinate decreases very slightly during the walk animation, even though it stays levelled in 3DS Max?


your Root Transform Position (Y) is baked into pose, uncheck it

The tiniest differences one loop to the next will add up.

If you intend your last frame to be the same as the first, make sure the bone roll also matches.

If you have made a loop but cut that loop short even by a frame or two then you are preventing it from resetting itself as it never reaches its target.

These things can add a rotation and if you have a rotation you have an angular velocity.

As aditya suggests, use the pose baking options in the Animation Import Tab for your models file.