Not a bug

Mesh is deformed after exporting animation

Anonymous 2 months ago updated by Peter - Soxware Developer 1 month ago 7

I have an FBX, animation type is humanoid and avatar definition is "Create from this model"

I Create a UMotion project -> Drag that model -> Create an animation that does nothing (TPose) -> Export the animation -> When I exit UMotion and play the "animation" in unity, the model is deformed, the exported animation's result doesnt look like when I'm in the UMotion editor.


Below you can see how the model looks in UMotion and how the model looks in the exported animation

UMotion Version:
1.28p01
Unity Version:
2021.3.6f1

Answer

Answer
Not a bug

Hi,

thank you very much for your support request.

What export settings do you exactly use? I would recommend using the "update existing file" mode and have your character's FBX file selected as destination file.

Another thing to consider, humanoid gives you less degrees of freedom in animating than generic. Looks like you've applied a tilt on your upper leg bones in UMotion which is something real-life humans are not capable of doing. UMotion let's you correctly preview your animation but once your animation is exported to FBX and then imported as humanoid by Unity, it discards that rotation.

If you want 100% artistic control over your character in your animation, use generic instead of humanoid.

The only reason to choose humanoid over generic is when you have lots of characters that should all use the same animation. If that is not the case, generic is recommended. More information on what humanoid actually is, can be found in this blog post: https://blog.unity.com/technology/mecanim-humanoids

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

Best regards,
Peter

Answer
Not a bug

Hi,

thank you very much for your support request.

What export settings do you exactly use? I would recommend using the "update existing file" mode and have your character's FBX file selected as destination file.

Another thing to consider, humanoid gives you less degrees of freedom in animating than generic. Looks like you've applied a tilt on your upper leg bones in UMotion which is something real-life humans are not capable of doing. UMotion let's you correctly preview your animation but once your animation is exported to FBX and then imported as humanoid by Unity, it discards that rotation.

If you want 100% artistic control over your character in your animation, use generic instead of humanoid.

The only reason to choose humanoid over generic is when you have lots of characters that should all use the same animation. If that is not the case, generic is recommended. More information on what humanoid actually is, can be found in this blog post: https://blog.unity.com/technology/mecanim-humanoids

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

Best regards,
Peter

Hi,

thanks you for the reply.

I have Chain Neighbour Keys ticked

File format: Anim


The thing is I want to use humanoid. I don't know where the leg tilt come from. I just dragged the model in UMotion and created an animation clip that is just the standard TPose, it looks fine in UMotion but when I export to anim I don't know why but that leg tilt appears, and for some reason the character model is also shrinked as you can see in the gif it has not the same proportions.

Ah ok you are exporting to *.anim. Sorry I misinterpreted your original post and thought you're using the FBX export

I don't know where the leg tilt come from.

Please select the character's *.fbx file (not the prefab!) and then in the inspector open the "Rig" tab and click on the "Configure..." button. Then take a look at the T-Pose your character has here. This is considered as the initial pose by the humanoid animation system. Please send me a screenshot of it.

Best regards,
Peter

Below is how he looks in rig/configure...

An other thing to note is that it's not just the TPose that is altered: Instead it affect every poses. The exported version of an animation seem to make his neck and body shorter compared to his normal proportions.

May I ask you to send me a small repo project so that I can look into your setup? Ideally this would be an empty Unity project that contains your character (configured as humanoid, a UMotion project *.asset with an example animation that doesn't work and the exported animation that doesn't work). Please verify that the issue is reproduceable in that project and that no unnecessary files are included. Then delete the "Library" folder and *.zip the whole project. You can then send the project to me via the email support form (or if file size is too big, request a link to my Dropbox via email).


The humanoid animation file itself stores no information such as "neck/body bone length" so it is the humanoid animation system itself that is altering the scaling/positioning of the bones. Maybe you have added some scaling to some bones that Unity is resetting as soon as it plays the humanoid animation?

Best regards,
Peter

Hi, I have sent a repo project via the support form but it seems I didn't get a reply. Did you looked into it?

Hey,

thanks for sending me the files. Yes I've responded to your email but haven't heard back from you yet.

Summary of my email: Due to a new security policy in Gmail, email attachments like the one you sent to me are blocked. So I was not able to download it. In my email reply, I've sent you a link to my Dropbox you can use to upload the *.zip file or if you are registered on any of your own cloud services, feel free to upload there and send me a link.

I'm sorry for the inconvenience, unfortunately there seems to be no way to unblock such content in Gmail...

Best regards,
Peter