Answered

Weird bug or incorrect approach.

Anonymous 5 years ago updated by Peter - Soxware Developer 5 years ago 1

I am doing an idle animation of my character. In UMotion my animation looks great, the feet are planted in one spot and the body/arms/head move like they are suppose to. Once i import it to my character, the body is nothing moving while the feet and the arms are moving around. Not sure what I am doing wrong here. 


I also had spots were transitioning between two animations, my character jumps up a few unitys. not sure how to reset the animations location to zero so that I dont get that jump or any extra rotations. 

UMotion Version:
Latest
Unity Version:
2019.3

Answer

Answer
Answered

Hi,
thank you very much for your support request.

Foot sliding is a common artifact of Unity's humanoid re-targeting algorithm. You can compensate foot sliding by enabling Foot IK on the Animator (you can preview the effect by toggling the IK button in the exported animation's preview window; see screenshot below). To enable Foot IK at runtime, you have to enable "IK Pass" in your Animator controller state machine and you have to enable IK for the feet via script (see https://docs.unity3d.com/Manual/InverseKinematics.html; you don't need to set the IK goal position like in the manual's example). Also make sure to adjust the root motion settings to your needs (these settings effect how movement of your animation is treated and can be related to your missing body movement).

Further information about why foot sliding happens with humanoid and why Foot IK is solving this issue: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/


Btw. if you use your animation only on one specific character, consider using "generic" instead of "humanoid". Generic plays your authored animation directly on your character (no such artifacts or black magic involved like with "humanoid"). Generic also has less CPU performance cost.


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


Best regards,

Peter

Answer
Answered

Hi,
thank you very much for your support request.

Foot sliding is a common artifact of Unity's humanoid re-targeting algorithm. You can compensate foot sliding by enabling Foot IK on the Animator (you can preview the effect by toggling the IK button in the exported animation's preview window; see screenshot below). To enable Foot IK at runtime, you have to enable "IK Pass" in your Animator controller state machine and you have to enable IK for the feet via script (see https://docs.unity3d.com/Manual/InverseKinematics.html; you don't need to set the IK goal position like in the manual's example). Also make sure to adjust the root motion settings to your needs (these settings effect how movement of your animation is treated and can be related to your missing body movement).

Further information about why foot sliding happens with humanoid and why Foot IK is solving this issue: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/


Btw. if you use your animation only on one specific character, consider using "generic" instead of "humanoid". Generic plays your authored animation directly on your character (no such artifacts or black magic involved like with "humanoid"). Generic also has less CPU performance cost.


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


Best regards,

Peter