Answered

animation doesn't reset properly

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

I've been struggling for a while to figure out what is going on here.

It seems as if the added height during the running animation doesn't go back to normal when leaving the animation and for some reason changes the height of the object where the animator is attached to.

Normally it worked at the start but for some reason when I tried during the recording even the starting position is adjusted. 

I managed to fix that by just reimporting the clip but the major problem is that the character's position and rotations keep changing without doing anything to change those values causing these weird movements..

Youtube video
UMotion Version:
1.26
Unity Version:
2020.3.12

Answer

Answer
Answered

Hi,

thank you very much for your support request.

Ok so I see 2 things going on:

  1. You're character is in a default humanoid "feutal" pose at the beginning. That happens for example when the animation you are playing is not compatible with that character (e.g. the animation you're animation controller state-machine is playing is "generic" but your character is "humanoid"). Check you're "Animator" window to see which animation is played in this situation. This is default Unity animation stuff and shouldn't be related to UMotion.

    It's normal that you're not possible to move your character by adjusting the position/rotation values in the inspector because the Unity Animator is driving those values.

  2. The second issue (with the character getting offset while the running animation is played) might either be a result of a scripting problem in you're movement code or a result of wrong root motion settings (or both). You're running animation is an "in-place" animation (i.e. the animation itself does not move the character forward). You also need to tell Unity to treat it that way. Select the *.anim file of your running animation (that you've exported from UMotion). Then in the inspector window, set the tick-mark on every "Bake Into Pose" setting.

    Disabling "Apply Root Motion" in you're character's "Animator" component might also help (in case you're not using any other root motion animation).

Please let me know in case you need any further assistance.

Best regards,
Peter

Answer
Answered

Hi,

thank you very much for your support request.

Ok so I see 2 things going on:

  1. You're character is in a default humanoid "feutal" pose at the beginning. That happens for example when the animation you are playing is not compatible with that character (e.g. the animation you're animation controller state-machine is playing is "generic" but your character is "humanoid"). Check you're "Animator" window to see which animation is played in this situation. This is default Unity animation stuff and shouldn't be related to UMotion.

    It's normal that you're not possible to move your character by adjusting the position/rotation values in the inspector because the Unity Animator is driving those values.

  2. The second issue (with the character getting offset while the running animation is played) might either be a result of a scripting problem in you're movement code or a result of wrong root motion settings (or both). You're running animation is an "in-place" animation (i.e. the animation itself does not move the character forward). You also need to tell Unity to treat it that way. Select the *.anim file of your running animation (that you've exported from UMotion). Then in the inspector window, set the tick-mark on every "Bake Into Pose" setting.

    Disabling "Apply Root Motion" in you're character's "Animator" component might also help (in case you're not using any other root motion animation).

Please let me know in case you need any further assistance.

Best regards,
Peter