How to make a correct humanoid root motion

I am planning to use humanoid in our game development, but encountered an weird problem:

the “blue” indicator (root motion rotation) in animation preview is always changing direction under run cycle, this causes the character change the forward direction after every cycle and yield an accumulate bias cannot be ignored after just several cycles.

Some animation assets I purchased from asset store before show some differences from our assets:

1, theirs “root” node is on the ground, ours is near pelvis, We use 3dsmax and root node is “Bip001”, can i put Bip001 to ground as well?

2, theirs “blue” indicator is “stable”

@Mecanim.Dev

2921826–215837–DG010.rar (372 KB)

Having root node on the ground or centered had no difference in relation to forward motion.
Bip can not be placed on the ground using Max biped but can be parented to a parent dummy null that is located on the ground. This however will not fix the problem you are having.

Ive never encountered the problem you outlined above and I use Max biped very regularly with root bip in the center of the body. It sounds as if the animations or the rig is somehow messed up.

Test by - creating a new default biped with two spine bones, change triangle pelvis and triangle neck from the default settings under biped structure.
Retarget original animation onto new biped and export into Unity.
Do you still have the same problem as before?

I saw the warnings before, and set pelvis triangle to false and neck triangle to true. It removes all warnings, but yields nothing change on “run cycle yaw bias”

I uploaded my fbx files, could you please check it for me, I do not know where the problem is

To your initial problem - please watch this video

Between 17:30 - 20:20 the developer explains how to offset the root transform rotation to correct for an average velocity that is apparent in the X value.

Hopefully this will fix the initial problem and not have to worry about bip location.

That

Thank you, that solved forward run animation excellently, meanwhile did not fit the animations that have hard turns within. For this kind we cannot accept bake into pose because we still need root quaternion to tell animator (and scripts attached) how to manipulate the gameObject`s world rotation