Search Unity

Animation Converter - Humanoid ⇆ Generic ⇆ Legacy

Discussion in 'Assets and Asset Store' started by SoxwareInteractive, Jan 20, 2018.

  1. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541

    The Animation Converter helps you convert Unity animation clips between all 3 animation types:
    Humanoid, Generic and Legacy

    Important: Please don’t use this forum for technical support. Instead, use Soxware Question&Answer (no account required, all questions are answered by myself and the community).

    Video Tutorials


    Check it out on the Asset Store: Animation Converter

    Features
    Humanoid ⇆ Generic ⇆ Legacy
    Convert between all 3 animation types in every possible combination.

    Convert Unity Animation Clips (*.anim)
    Natively Unity can only convert animations when importing them from a 3D modeling format (*.fbx, *.blend,...).

    Motion Capture to Generic/Legacy
    Convert (free) motion captured animations to make them useable for your Generic/Legacy characters.

    Reuse Animations
    Convert Generic/Legacy animations created for one character to a Generic/Legacy animation useable by a different character.

    *.anim to Humanoid
    Convert animations created using Unity's Animation Window to Humanoid.

    Extensible
    Comes with an easy to use C# API and with the full source code of the editor window.

    Detailed Manual
    Detailed HTML based manual in a similar style as the official Unity® manual.
    ► ...
    I'm social
    Your feedback and feature requests are highly appreciated whether in this forum thread or on any of my social channels. :)

     
    Last edited: Dec 31, 2019
  2. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Animation Converter V1.01 has been released

    This update requires a "Clean Install". So please remove the previous installation by deleting the "AnimationConverter" folder in your Unity project before updating.

    UMotion V1.01

    New or Changed Features
    • Models that are used for the conversion are now instantiated without any custom components thus avoiding conflicts with those components.
    • Added AnimationConverter.CloneWithoutComponents() to the Scripting API.
    Bug Fixes
    • Fixed that installing the Animation Converter when the UMotion - Animation Editor is already installed doesn't work.
    • Fixed compile errors when the Animation Converter is inside a project that uses Beebyte's Obfuscator.
    • Fixed that converting animations for GameObjects with "Optimize GameObjects" enabled doesn't work.
    Manual Changes
    • Added the AnimationConverter.CloneWithoutComponents() method description.

    If you discover any problems, please issue a bug report in the official Support Forum.
     
  3. AKQJ10

    AKQJ10

    Joined:
    Feb 9, 2012
    Posts:
    33
    Hi, @SoxwareInteractive

    We have bought your tool "Animation Converter" to convert humanoid->generic animations.
    During the process, we had encountered some issues and are wondering if buying "UMotion Pro" can fix it.

    After the humanoid->generic animation conversion, the rotation curves on some bone transforms are broken into segments instead of a continuous curve. The yellow curve has several segments that jump from -180 to +180.

    The original humanoid clip and the converted generic clip both played fine inside unity, but we exported the generic animation to FBX (using the official FBX exporter by Unity). And later opened them in MAX, and MAYA, that particular bone is flickering like crazy.
    Is there anyway to fix it? Maybe some filters to auto fix -180 to +180 wrapping issue?
    I have already tried AnimationCurve.SmoothTangents(), AnimationClip.EnsureQuaternionContinuity(); but that didn't fix the problem.
    Thanks a lot in advance.
     
  4. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    I've had UMotion for some time, but was having trouble with a generic animation skating around (feet out of sync with the ground) when I converted to humanoid (using Unity import settings) and loading it into UMotion. Thinking that this tool was what I needed, I bought it this morning and found that it didn't do anything to resolve the skating issue. If anything, it made the issue worse.
     
  5. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Hi @trilobyteme,
    thank you very much for reaching out.

    The "skating" issue is something that is either introduced by the re-targeting done by Unity's humanoid animation system or is already present in your source animation (that often can be the case when recording an animation with a mocap suite; the mocap software may have settings to avoid this).

    If the issue is introduced by the humanoid animation system, try playing with the Animator Foot IK switch (in UMotion in the clip import settings, in the Animation Converter settings or when previewing the humanoid animation in the Unity inspector by toggling the "IK" button).

    Here is some further information about what Unity's humanoid animation system is doing in the background and why "skating" can be introduced (and how Animator Foot IK tries to address this): https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

    Btw. you can use IK pinning to pin your feet in UMotion. Here is a video where I correct foot sliding on an animation: UMotion "In Practice" - Editing an existing animation (pinning is done at ~06:50)

    In case you have further questions, feel free to post on the official support forum (no login required): https://support.soxware.com
     
    Fibonaccov likes this.
  6. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Excllent, I'll investigate those links and see if I can figure it out. Thanks!
     
  7. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    Hi I have some generic animations (FPS ARMS with gun animations) would this be able to covert those animations to Humanoid animations? Or convert a humanoid character to generic so the clips could be used on other models?
     
  8. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Hi @somosky,
    thank you very much for your interest in the Animation Converter.

    Yes this is possible (see
    ).

    The Animation Converter can only convert your animation to humanoid if you can provide your fps arms + gun configured as generic and a duplicated version of it configured as humanoid. This later is usually not possible though because the FPS arms are missing some required bones for a functional humanoid avatar setup.

    Please let me know if you have any follow-up questions.
     
  9. andenybe

    andenybe

    Joined:
    Sep 16, 2017
    Posts:
    5
    Still a little unclear exactly what you can do with this. If I have character A with generic animations, can they be converted to character B as humanoid animations? Even though they have a different rig/number of bones? Somehow that seems too good to be true.
     
  10. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Hi @andenybe,
    thanks for your interest in the Animation Converter.

    Can you configure character A as humanoid? If so, then yes this is possible. If your generic animation is a *.anim file you can use the Animation Converter to convert it into a humanoid animation (by passing character A configured as generic and a duplication of character A configured as humanoid to the converter).

    If your animation is a *.fbx/*.blend/... file, you can configure it to humanoid directly in Unity (no need to use the Animation Converter in that case).

    If character A can't be configured to humanoid at all, then it is unfortunately not possible to convert your generic animation to humanoid.

    Please let me know if you have any follow-up questions.
     
  11. noobynobody

    noobynobody

    Joined:
    May 9, 2019
    Posts:
    75
    So if character A and character B both have humanoid rigs, but maybe character B has extra bones, this would work flawlessly? For example, Synty Studio's characters only have two fingers.
     
    Last edited: Jul 6, 2019
  12. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Honestly I'm not 100% sure how Unity's humanoid animation system behaves when re-targeting an animation that has only 2 fingers to a character that has 5 fingers (I never had such a situation). It would probably just use the default pose for the other fingers for the whole animation.
     
  13. noobynobody

    noobynobody

    Joined:
    May 9, 2019
    Posts:
    75
    Just making sure -- this tool is not included with UMotion Pro, correct?
     
    Ony likes this.
  14. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Correct, this tool is not included in UMotion Pro. But to some extend (though not that convenient) you can also use UMotion Pro to convert animations (see "Conversion between humanoid/generic" headline in the "Clip Editor --> Import / Export" chapter in the UMotion manual).
     
  15. DragonDark99

    DragonDark99

    Joined:
    Jun 6, 2017
    Posts:
    10
    Hi man!, with this asset can I make animation retargeting ? I mean, transform an animation from a Skeleton to other similar Skeleton but with different bone names and scale ? similar to the Unity's Humanoid rigg system but for Generic rigg ?
     
  16. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Hi,
    thank you very much for your interest in the Animation Converter.

    The Animation Converter still uses the humanoid re-targeting system in the background. So if your characters/models are compatible with humanoid you can use the Animation Converter to turn your generic animation to humanoid in a first step. And in a second step turn the humanoid animation to generic (compatible with the second model) again.

    If your character/model is not compatible with humanoid, then the Animation Converter is not able to do any re-targeting.

    Let me know if you have any follow-up questions.
     
  17. DragonDark99

    DragonDark99

    Joined:
    Jun 6, 2017
    Posts:
    10
    So, basically, if the models are compatible with humanoid rigg I can transform any animations from any model compatible with humanoid rigg to any another model compatible with humanoid rigg.
     
    SoxwareInteractive likes this.
  18. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Yes, exactly.
     
  19. Zillus

    Zillus

    Joined:
    May 31, 2017
    Posts:
    24
    Hey,

    If I record a humanoid rig/model using Unity's GameObjectRecorder (say, while using an IK system to move it around), can I use your asset to convert it to a normal skeletal animation? I'm not quite sure after watching the tutorials.

    Thanks!
     
  20. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    If the recorded animation is a humanoid *.anim file, then you can use the Animation Converter to convert the animation to another character that is of type generic or legacy. But please note that for the conversion process, you need to provide the converter that target character in two configurations: Once configured as generic and a duplicated version configured as humanoid.

    If the recorded animation is a generic *.anim file, you can use the Animation Converter to turn the animation into a humanoid animation. Therefore you need to provide the converter two versions of the character that has been used for recording: Once configured as generic and a duplicated version configured as humanoid.

    Please let me know if you have any follow-up questions.
     
    Zillus likes this.
  21. friuns3

    friuns3

    Joined:
    Oct 30, 2009
    Posts:
    307
    Soxware Question&Answer page not found

    does it work runtime? or is only for editor? (if it works runtime does it convert animations fast? humanoid->generic)
     
  22. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Thanks for letting me know, I've updated the link.

    Unfortunately runtime is not supported (it uses some editor only API).

    Please let me know if you have any follow-up questions.
     
  23. Moritz5thPlanet

    Moritz5thPlanet

    Joined:
    Feb 5, 2019
    Posts:
    73
    Does this work for Legacy Animations for NON-Characters, i.e. for Mecanim Animations on GameObject hierarchies ("Menu animations", etc.)
     
  24. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    It works for all characters/objects that can be configured as "humanoid" (i.e. they need to have all the required bones for "humanoid"). Any biped character should usually work. Unfortunately menu animations most probably don't full-fill this requirement.
     
  25. Moritz5thPlanet

    Moritz5thPlanet

    Joined:
    Feb 5, 2019
    Posts:
    73
    Thanks, you're right - they don't. It would be super good to convert to and from legacy animations for these motion clips, as well.
     
  26. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Unfortunately that would be really complicated to implement. I'm sorry but I'm afraid I can't serve with such a feature.
     
  27. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    Hi so I have some First Person Shooter animations with just arms (no body) that are set up as generic.

    Would I be able to convert those animations to humanoid? I'm sure the rest of the body would be acting oddly but I just need the arms animating as I'm hiding the rest of the body. I'm using a tool called FPS Mesh tool to just use the arms but I'd like to use Humanoid models.
     
  28. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    You would need to add the missing bones to your generic setup so that all the minimum bones required by the humanoid avatar exist. You can do this in a modeling application like Blender/Maya.

    But please be aware that animations that are in humanoid format have less quality than generic animations (e.g. fingers can be in a slightly different pose, the hand has some offset relative to the gun etc.). This is especially noticeable for animations that are very close to the camera (like FPS hand animations) so I probably wouldn't recommend to use humanoid in this case. Here you can learn more about why humanoid is a "lossy" format: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/
     
  29. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    Ok if you don't mind I'd like to ask your opinion on how the best way to approach something.

    I already have Umotion by the way if that would help.

    I have Legacy First Person arms that have animations specifically for those arms.

    I'm attempting to re-use those animations on different models that are humanoid.

    What would be the best way to get those animations working on those humanoid characters?

    I'm just going to use the arms of those characters so if it would be better to have the humanoid characters converted to generic i can do that. But i just want to make sure the animations that only include animations for the arms would work on the arms of the new model (again I'm going to hide the rest of the body).

    Or do you have another idea of the best way to achieve this.
     
  30. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    You could add the missing bones to turn your legacy first person arms to a complete humanoid character. This is something that can be done in a modeling application. Once it's humanoid, you can use the resulting humanoid animations on your new humanoid characters. If you want, you can then turn the animation to generic (for those new characters) using the Animation Converter. Then you probably need a manual pass with UMotion to clean the animation (and get rid of all those small errors introduced by humanoid).

    Another way would be to use the legacy animations as a blue print for creating new ones (for the new hands). UMotion can sync with the Animation Window (or Unity Timeline), that way you can preview the old (legacy) animation while creating the new ones (the time cursor is synchronized).
     
  31. somosky

    somosky

    Joined:
    Feb 15, 2014
    Posts:
    138
    I think I'm going to try out the second option. Thanks. I appreciate it.
     
    SoxwareInteractive likes this.
  32. GlobalAdminShiftPixy

    GlobalAdminShiftPixy

    Joined:
    Apr 26, 2021
    Posts:
    2
    We are running into the exact problem. From humanoid -> generic, in Unity is ok as long as "Resample Curves" is used, but the animation doesn't work outside of Unity, since the keys in the converted animation are quaternion and not Euler interpolation.

    Wondering if you have any suggestion,

    Thanks!
     
  33. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    I've moved your support request to the official support forum and answered it there. Please comment there in case you have any follow-up questions (no account required): https://support.soxware.com/en/communities/4/topics/1092-animation-doesnt-work-outside-of-unity

    This keeps things more organized as each support request has it's dedicated thread.

    Best regards,
    Peter
     
  34. ZaneLou2020

    ZaneLou2020

    Joined:
    Oct 2, 2020
    Posts:
    13
    We are running into the problem. From humanoid -> generic, hips rotation x is 90, uncheck and check Constrains of the root bones rotation x, y or z value is not work, uncheck and check apply root motion is not work.
     

    Attached Files:

  35. SoxwareInteractive

    SoxwareInteractive

    Joined:
    Jan 31, 2015
    Posts:
    541
    Hi,
    thank you very much for your support request.

    There might be a 90° rotation offset in some of the transforms of your character. Would it be possible for you to send me a *.unitypackage that includes both versions of your character (humanoid and generic; without textures if you want) an one humanoid animation you are trying to convert that causes that issue. You can send the package via the email support form (or request a link to my dropbox via the email form in case the file size is too big),

    That makes it easier for me to investigate the issue and give you pin pointed instructions in how to solve this issue.

    Best regards,
    Peter
     
    Thanathos likes this.
  36. ZaneLou2020

    ZaneLou2020

    Joined:
    Oct 2, 2020
    Posts:
    13
    you are right, the model and the animation problem, I fix the mode and animation. the converter is great, thanks you very much.
     
    Thanathos and SoxwareInteractive like this.