Answered

What point is the animation following exactly?

N H 5 years ago updated by anonymous 5 years ago 3

I'm wondering how Unity determines where to position the GameObject when you set the Root Transform Position (XZ) to Original instead of Center of Mass. What 'point' is the GameObject following here if it's not the center of mass? Is it possible to visualize this point in UMotion if you need precision animation?


I would hazard a guess that it's still following the center of mass but just taking into account any offset from the first key frame but that is a pure guess from what it looks like it's doing in the preview window.

UMotion Version:
Unity Version:

Answer

Answer
Answered

Hi,

thank you very much for your support request.

As far as I can tell, when "Root Transform Position (XZ)" is set to "Original", Unity is going to generate the root motion curve using the "Root T/Q" curves of your character (i.e. the hips position when the animation is created with UMotion). This is still relative to the position where the character started playing it's animation (not in world space). World space positioning is only possible for "generic" characters (when animating the top most transform of that character).

There are some situations where Unity doesn't correctly generate the root motion curve from the original animation, therefore UMotion offers a method to generate the root motion curves by itself (see Settings --> Clip).

Please let me know in case you have any follow-up questions.

Best regards,
Peter

GOOD, I'M SATISFIED
Satisfaction mark by N H 5 years ago
Answer
Answered

Hi,

thank you very much for your support request.

As far as I can tell, when "Root Transform Position (XZ)" is set to "Original", Unity is going to generate the root motion curve using the "Root T/Q" curves of your character (i.e. the hips position when the animation is created with UMotion). This is still relative to the position where the character started playing it's animation (not in world space). World space positioning is only possible for "generic" characters (when animating the top most transform of that character).

There are some situations where Unity doesn't correctly generate the root motion curve from the original animation, therefore UMotion offers a method to generate the root motion curves by itself (see Settings --> Clip).

Please let me know in case you have any follow-up questions.

Best regards,
Peter

I think I see now. I updated UMotion and found the "Generate Root Motion Curves" setting. When checked, the GameObject now follows the root bone (hips) whereas before it wasn't.

However, what if you do not want the Hips nor the Center of Mass? Is it possible to define an external root bone that sits on the floor or is this something you would need to define in the model itself? Moreover, would UMotion/Humanoid even consider this bone or would it be ignored since it's not a body bone?

"However, what if you do not want the Hips nor the Center of Mass? Is it possible to define an external root bone that sits on the floor or is this something you would need to define in the model itself?"

I'm sorry this is not supported (with "humanoid"). If you don't aim to share your animation with multiple characters, you could switch to "generic". "Generic" allows you to select a certain root bone (it also has other advantages like less CPU utilization, better playback quality, easier to use).

Best regards,
Peter