Answered

Is there no way to convert a humanoid animation to a generic with a custom rig/hierarchy?

Anonymous 1 year ago updated 1 year ago 4

I have a custom rig. in Unity I can import it as humanoid, configure the avatar and have humanoid animations work. So I know the animation can work on the rig.


However, if I import the custom rig as generic and convert a humanoid animation to generic, it won't work because the bone hierarchy is doesn't match. If I modify the generic animation paths to match my custom rig, it animates, but is all distorted.


What are the issues preventing this from being possible? If Unity can map this custom rig to humanoid and play humanoid animations on it, then why can't it go the other way? I'm assuming it has something to do with the muscle/twist bones? Is there no way to configure a generic avatar?


Thanks

UMotion Version:
Unity Version:

Answer

Answer
Answered

Hi,
thank you very much for your support request.

For applying a generic animation to a generic character, the rig hierarchy of the rig in the animation and the rig hierarchy of the rig of your character needs to be a perfect fit (exact same naming/path for each bone, same initial rotation and initial position etc.).

With UMotion you can convert humanoid animations correctly to generic if your character is compatible with humanoid. Maybe you haven't converted the animation correctly? Here is how it should work (you can use any of the two methods):


  1. Create a humanoid UMotion project for your humanoid version of your character. Import the humanoid animation into UMotion. Then export the animation into your character's FBX file using the FBX export feature of UMotion. Close UMotion and configure your character as generic. The animation inside of your character's FBX file is now also generic and works with your character.
  2. Or by using this method: https://www.soxware.com/umotion-manual/ImportExport.html#ConversionHumanoidGeneric

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.

For applying a generic animation to a generic character, the rig hierarchy of the rig in the animation and the rig hierarchy of the rig of your character needs to be a perfect fit (exact same naming/path for each bone, same initial rotation and initial position etc.).

With UMotion you can convert humanoid animations correctly to generic if your character is compatible with humanoid. Maybe you haven't converted the animation correctly? Here is how it should work (you can use any of the two methods):


  1. Create a humanoid UMotion project for your humanoid version of your character. Import the humanoid animation into UMotion. Then export the animation into your character's FBX file using the FBX export feature of UMotion. Close UMotion and configure your character as generic. The animation inside of your character's FBX file is now also generic and works with your character.
  2. Or by using this method: https://www.soxware.com/umotion-manual/ImportExport.html#ConversionHumanoidGeneric

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

Best regards,
Peter

Thank you for your response Peter.


This got me a bit further, however the hips/thighs appear to be flipped (the legs are pointing backwards) in the exported fbx (which still as humanoid at this point). Maybe I need to put my character into a proper T Pose first?


Again, thank you

Are you exporting your animation into your character's FBX? Do not export as a new FBX file.

Furthermore as your goal is to switch to generic, change your character's FBX to generic after export.

Best regards,
Peter

So I was exporting into my characters fbx, but strangely it's the opposite that has worked! So it doesn't make sense. Here's what I did:


1. Created a humanoid umotion project.

2. Imported the humanoid animations.

3. Exported them as a new fbx.


The newly exported fbx exported as Generic (I expected it to be humanoid?). I can now play these new animations on my generic rig!


So, I'm not sure if I'm still misunderstanding or there is a bug(?) but I at least have a workflow that works, so many thanks!