0 votes
asked in General Help by Rookie (160 points)

Hi Peter,

I have animations created for humanoid first-person arms that look great in both the UMotion Poser and exported .anim clips, however the distance spread between the shoulders of the exported anim files is smaller than what I see in the UM Poser.  I was hoping to be able to set a position keyframe from the shoulders on each side, but I can only set rotation keys and not position keys.

Sorry for the newbie question.  Do you know how I can correct this?  Thanks for any info.

Pawley

1 Answer

0 votes
answered by Expert (111k points)
selected by
 
Best answer

Hi PawelyBoboli,
thank you very much for your support request.

The issue you see here is coming from Unity's "humanoid" animation system. This system uses a technique called "animation re-targeting" to map an animation onto different "humanoid" rigs thus allowing to play the same animation on multiple different characters.

This benefit comes with a trade-off: The animation is converted into "muscle space" an idealization of the human anatomy. When the animation is played, the muscle space animation is applied back to the real rig. That conversion is "lossy" meaning that the final animation will look slightly different.

So if you don't need animation re-targeting, use "generic" instead and you will get 100% equal results.

If you do need animation re-targeting, try to further trace down which bone is mapped differently. Probably it's the rotation of the shoulder bones that is mostly affected by the conversion. Duplicate your model (so that it's on the exact same pose as the model used by UMotion) so you can better see what's different.

More information about the humanoid animation system can be found in this blog post: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

Best regards,
Peter

commented by Expert (111k points)
If you do need animation re-targeting (because you want to re-use the animation on different fp-hands) you would probably have to use the base animation as "humanoid" that you then convert to "generic" for each fp-hand variation. Then do another small fine-tuning adjustment on that "generic" version of the animation until it fits perfectly for each character. This will also improve performance slightly as the animation re-targeting is not used during run-time.

Otherwise you will always have some variation between each different fp-hand model just because the humanoid system can't map animations without some loss in precision.

Best regards,
Peter
commented by Expert (111k points)
One more: You could also try exporting the animation as *.FBX maybe that generates better results.

Best regards,
Peter
commented by Rookie (160 points)
Thanks Peter,

My fpHands model was originally imported as Generic, but when using the tutorial files in UMotion, I found the Muscle Groups "Hands" controler faster and better at animating the finger-grabbing actions I need for my project.  That controler isn't available when posing a Generic model, and my hand poses were not as natural-looking as when using the Hands controler, so I converted my model to Humaniod.  I will look at the links you provided and try the various approaches you have suggested.  Thanks for the info.

Best,

Pawley
commented by Expert (111k points)
Ah OK in that case I suggest the following:

Use your model configured as humanoid for animating. Then export the animation as *.FBX and configure that *.FBX animation to be imported as generic by Unity. Use that in game on a duplicated version of your fpHands model that is configured as generic.

That way you can animate using the hand controller and you have an optimal animation quality with low CPU impact.

Best regards,
Peter

Soxware Support

Here you get official product support by the developer and the community for all Soxware Products for Unity®.

Post as guest, login via Facebook or create an account.

Ask questions, report bugs or provide feedback. Please use the correct category and always post in english.

For private email support, please use the Support Form to create a support ticket.

Copyright © 2017 Soxware Interactive | All Rights Reserved | Impressum

...