Answered

Discrepancy between Y Pos in edited animation and exported animation

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

HI there, I'm practising with UMotion while trying to edit a timeline animation where a character jumps from the top of a building and hits the floor. 

Image 166

I particularly like the way UMotion can edit the animation in place/synch with the timeline etc.   

The problem I've got is that the character falls way short of the ground (about 5 metres), so I've added an additive layer and moved the hips down so that the character hits the floor instead of landing above it (in thin air)

Image 167

At the moment, the character needs a bit of fine-tuning, but he's basically on the ground! 

Image 168

So, this is great, I export the animation (as an anim file) and check it out on the Unity Timeline.  Everything looks good - the character is in the right position before making his jump, just as in the UMotion editor, he jumps......

Image 169

.....but lands about a foot off the floor - floating again, although not as far off as the original, so I know it's the animation I've exported.   

Image 170

Yet, if I reload the animation into UMotion again, it's fine.   What am I doing wrong, or how I can get around this problem?  Thanks in advance :)

UMotion Version:
1.20p03
Unity Version:
2019.2.9f1

Answer

Answer
Answered

Hi,
thank you very much for your support request.

When UMotion creates a *.anim file, Unity is still in charge of generating the root motion curves. Unity is doing that by using the UMotion generated *.anim and the Inspector settings you of the *.anim (like the one you posted in your screenshot above). Unity sometimes seems to not generate the root motion curves for humanoid animations correctly (I got this reported by several users in the past). That's why I've added a feature to let UMotion generate the root motion curves for you. You can enable that in the clip settings (in UMotion):

Please let me know if this solves your issue.


Best regards,
Peter

Edit: Apologies, I think it might be my own error.   Further down the timeline is another clip of the character standing up.  However because this clip starts with the character  lying down, the RootTransform Position (Y) is halfway up the characters body and I think this is having an effect on the animation directly preceding it (the one I'm trying to edit in UMotion).  If I set the RootTransform Position (Y) to be the Feet, the problem seems to go away.   Not 100% sure, but it seems to do it! 

Correction again, spoke too soon.   The original problem is still there whether the subsequent standing up animation is on the timeline or not.  Really quite confused :(

Answer
Answered

Hi,
thank you very much for your support request.

When UMotion creates a *.anim file, Unity is still in charge of generating the root motion curves. Unity is doing that by using the UMotion generated *.anim and the Inspector settings you of the *.anim (like the one you posted in your screenshot above). Unity sometimes seems to not generate the root motion curves for humanoid animations correctly (I got this reported by several users in the past). That's why I've added a feature to let UMotion generate the root motion curves for you. You can enable that in the clip settings (in UMotion):

Please let me know if this solves your issue.


Best regards,
Peter