Answered

Copy Animations from a Generic to Humanoid Rig (Tail)

Anonymous 9 months ago updated 9 months ago 2

Hello,

I was wondering if UMotion would allow for something like a part of an animation from a generic rig, to that of a humanoid rig but with extra bones.

For context, I am making a custom race of Fox people using Synty's Dog and Prototype pack. I have cut off the tail mesh, and separated the tail bones from the Fox and added them to my humanoid rig, with the tail being parented under the Hips. 

Since this is a humanoid rig, the heirarchy is now Root -> Hips -> Tail, whereas the dog's was root -> hip -> spine -> tail, so I unfortunately can't just levarge mecanim retargeting with an avatar mask. 

However, I'd still like to take the tail animation from that existing generic animation if possible, and create a new animation that is able to work with my new humanoid that has tail bones. Is that something I can do with this tool? I am trying to avoid just re-animating from scratch, so if UMotion let's me copy or some way of copying the bones starting with the Tail bone and copying it over or exporting it to match the new rig in some form, that would be perfect.

I would like to do something similar with the ears as well if also possible, and that would be in a similar scenario.

Hopefully that makes sense, thanks!

UMotion Version:
1.29p02
Unity Version:
2022.3.5

Answer

Answer
Answered

Hi,
thank you very much for your support request.

Yes this should be possible (as long as the tail bones really are a 1:1 copy just at a different location in the hierarchy) but it involves manipulating Unity's *.anim files directly with a text editor:

  1. Create a *.anim file containing just the source animation for the tail. Remove any other bones/keyframes from it. You can either do this in UMotion or in Unity's Animation Window. If you use the animation window, make sure to click on "File-->Save Project" in Unity so that all your changes are written to disk.
  2. Now open the *.anim file in a text editor. You need to change all "transform paths" so that they now point at the correct location in the new rig hierarchy.
    A transform path is used by animation curves to reference the actual bones they belong to. This would be a transform path addressing a bone named "spine" that is a child of a bone named "hips" and a bone named "root": "root/hips/spine"
    I don't know the exact location of the transform paths out of my head, but just try searching the file (CTRL + F) for things like "path" or bone names of your existing rig.
    After you've finished editing the file, save it and return to Unity.
  3. If you edited all transform paths correctly, the resulting *.anim clip should be usable with your new character (if you assign it to the character, it should play the tail animation correctly).

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.

Yes this should be possible (as long as the tail bones really are a 1:1 copy just at a different location in the hierarchy) but it involves manipulating Unity's *.anim files directly with a text editor:

  1. Create a *.anim file containing just the source animation for the tail. Remove any other bones/keyframes from it. You can either do this in UMotion or in Unity's Animation Window. If you use the animation window, make sure to click on "File-->Save Project" in Unity so that all your changes are written to disk.
  2. Now open the *.anim file in a text editor. You need to change all "transform paths" so that they now point at the correct location in the new rig hierarchy.
    A transform path is used by animation curves to reference the actual bones they belong to. This would be a transform path addressing a bone named "spine" that is a child of a bone named "hips" and a bone named "root": "root/hips/spine"
    I don't know the exact location of the transform paths out of my head, but just try searching the file (CTRL + F) for things like "path" or bone names of your existing rig.
    After you've finished editing the file, save it and return to Unity.
  3. If you edited all transform paths correctly, the resulting *.anim clip should be usable with your new character (if you assign it to the character, it should play the tail animation correctly).

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

Best regards,
Peter

I appreciate it, that seemed to work for the most part but based on bone rotations think I'll have to do manual adjustments with UMotion anyways, although the ears might work better. I didn't know this was possible, so glad to learn something new, and thank you again!