Important Information: I'm out of office from August 13th until August 27th (inclusive). Your support requests might not get answered during that time frame, but I'm going to make sure to answer all of them on August 28th.

Thanks for your understanding.

Best regards,
Peter (Developer)

Answered

Can I convert a Generic Animation clip to a Humanoid type within a Script?

moonrjung 1 week ago updated by Peter - Soxware Developer 6 days ago 1

Hi, I bought this Asset. Good Job. 

I wrote a script which reads a bvh motion file and constructs a skeleton and animation clip (non-legacy) 
from it. This script also applies this animation clip in run time by using AnimatorOverrideController. 
I have no problem with animating the skeleton. 

But when I wanted to retarget the motion to a different human character, it did not work.

I found that the animation clip generated is of a generic type, not a humanoid type. 

Is there any way for me to convert an animation clip of a generic type to a humanoid type in the Script? 

I skimmed over the source code of the asset. I found the following method:

AnimationConverter.Convert(clipsToConvertList.ToArray(), configuration, out logMessages);

Is there any way for me to use this method from my script?

Answer

Hi,

thank you very much for your support request.

Yes you can access the Animation Converter's functionality via C# scripts. Here you can find the documentation of the Animation Converter's scripting API: https://www.soxware.com/animconverter-manual/ScriptingAPI.html

The Animation Converter's editor window uses the scripting API mentioned above. You can use it as a usage example.

I would recommend that before writing your code, try to do your conversion manually using the window. Then write your script that automates the steps you previously performed manually.

Please note that the functionality of the animation converter is only available at edit time. Your script needs to be placed in an "Editor" folder within your Unity project in order to work.

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


Best regards,
Peter

Answered

Animation doesn't work outside of Unity

Peter - Soxware Developer 5 months ago updated 5 months ago 1
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.

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!

Answered

Animation converter not converting anything

mohammed kasmi 5 months ago updated by Peter - Soxware Developer 5 months ago 1

Hello,

I need to convert  Generic to Human , but the converted output clip does not contain any animation. (it is in the origo )

I do everything as the youtube video show

What is the problem?

Thanks,

mohammed

Animation Converter Version:1.03
Unity Version:2018.4.8f1 Personal

Answer

Hi,
thank you very much for your support request.


This is how to convert from generic to humanoid:

  1. Make sure that the generic animation you want to play is playing correctly on your generic character (see below). Generic animations are only compatible with the generic character they have been created for!
  2. Select the generic character your generic animation is compatible with in Unity's project window. This should be an *.fbx file (not a prefab!). Press CTRL + D to duplicate that file.
  3. Select the duplicated file and change it to "humanoid" in the inspector ("Rig" tab). Click on the "Configure..." button and make sure that every bone is displayed in green and that your character is in a T-stance. Then click on "Apply".
  4. Now assign everything to the animation converter window and change the animation output type to humanoid.
  5. Click on configure. If you've followed the this instructions closely, it should work.

Most common issues are that the generic animation isn't compatible with the generic character or that the generic character and the humanoid character aren't an exact duplication of each other.

To test if the generic animation plays correctly on your generic character:

Select the animation in Unity's project window. Then click on the "human" icon in the lower right corner and click on "Other" in the appearing context menu.

Select EXACTLY the same generic prefab, that you've used in the animation converter. Now click on the play button in the preview window's upper left corner. Does the animation play? If not, then you are trying to play a generic animation on a different/incompatible generic character.

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

Best regards,
Peter

    Under review

    Animation converter not converting anything

    Lacasrac 8 months ago updated by Peter - Soxware Developer 7 months ago 9

    Hello,

    I need to convert Human to Generic or Legacy, but the converted output clip not contains any animation. (it is in the origo and stay in "jump" position or just "T" position)

    I do it everything as the youtube video show:

    https://forum.unity.com/threads/animation-converter-humanoid-generic-legacy.513433/

    What is the probleme? 

    Thanks,

    Leslie

    Answer

    Hi Leslie,

    thank you very much for sending me the files. The conversion works flawlessly for me. Please double check your settings with these:


    I'm sending you the converted push animation via email. Here is how it looks like:

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

    Best regards,
    Peter

      Answered

      Humanoid Full Body -> Generic FPS Arms

      CJofNDG 9 months ago updated by Peter - Soxware Developer 9 months ago 1

      I have seen a lot of asks for the reverse, but how would one attempt taking the Full body animation used in a third person, and convert to just a generic first person set of arms?

      I get that they dont have the same hierarchy, so is this just an impossibly? 

      Answer

      Hi,

      thank you very much for your support request.


      The method would basically be the same. You would need to add the missing bones to the generic arms (in a 3D modeling application) for it to become compatible with the humanoid animation system. Then you can play any humanoid animation on it. You can then either leave the extra bones (they are invisible anyway), or use the animation converter to convert to generic and then remove the extra transforms from the transform paths inside the animation so that it becomes compatible with your "arms only" model.

      Please note that some manually cleaning-up of the animation is most probably required, as the humanoid re-targeting algorithm has limited precision.

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


      Best regards,
      Peter

      Not a bug

      Humanoid > Generic root motion rotation incorrect

      john manna1 11 months ago updated by Peter - Soxware Developer 10 months ago 15

      When creating a generic animation from a humanoid animation with rootmotion enabled it is missing the rotation from the animation.  As seen in the youtube video, when previewing, the red arrow no longer follows the avatar.  This causes the avatar to face the wrong way during gameplay.  Is this a bug with conversion or did I configure something wrong?  All other converted animations seem to work correctly.

      Answer

      Hi John,

      thank you very much for your patience.


      I've taken a look at the files you've provided. Please note that the root rotation is displayed by the blue arrow in the preview window, not by the red arrow (source: https://answers.unity.com/questions/406968/mecanim-animation-preview-window-blue-and-red-arro.html) so the animation does contain root rotation. I've also verified this in another way: When previewing the animation (or playing it at runtime using the animator component) once the clip finishes playing for the first time, the character's pose isn't reset back to zero but continues playing (the next loop) from the current pose.

      Please note that the root motion settings (of the source animation clip but also of the exported animation clip) might also be a reason why you're animations don't behave the way you expect them to be.

      If you want to add an offset to your root motion curves, you can do this using Unity's animation window (using the RootT, RootQ curves) or in the inspector of the exported animation.

      Please let me know in case you need any further assistance.

      Best regards,
      Peter

      Not a bug

      Animations with Invalid File Characters in the Names won't Convert

      JDelekto 11 months ago updated by Peter - Soxware Developer 9 months ago 3

      I am trying to convert several generic animation clips from an FBX file in an asset to Legacy.  Everything has been set up correctly, but when I attempt to convert, I get the error that there are invalid characters in the filename and that additional information has been logged to the console.

      Unfortunately, nothing is logged to the console.  The clips that I am trying to convert have names with the pipe "|" character in them (this is how I received them), so I can only surmise that the tool is trying to create a filename from the actual animation clip name and of course the '|' character is going to fail.

      Just a suggestion, but if animation clips can contain characters that are invalid filename characters, either map them to a valid character (i.e. replace '|' with '_') or perhaps give the user the option to supply a new name for the animation clip for the output file.

      Thank you for your consideration!

      Answer

      Hi,

      thank you very much for your support request.

      I just double checked, the '|' character is indeed considered as invalid character. Thanks for suggesting the automatic re-naming, this is a good idea and I'm considering this for a future update.


      You can re-name the animation files of the FBX manually. Expand the *.FBX file in Unity's project window (by clicking on the arrow next to it). Select the animation clips you want to convert and press CTRL + D. This is going to create duplicated versions of the clips as separate files. You can now re-name them (in case Unity hasn't adjusted their names already automatically). Now use this *.anim clips inside the animation converter.


      Please let me know in case you have any follow-up questions or if this doesn't work for you.


      Best regards,
      Peter

      Answered

      Offset from Root Motion Centre

      Devleppard 11 months ago updated by Peter - Soxware Developer 11 months ago 5

      I stumbled upon a problem, when I convert a humanoid animation to a generic rig and apply root motion, my root motion is offset by a fixed amount in X and Z. The original and the humanoid animations both have the root centered.

      The rotations of both animations match up correctly

      I double-checked the rigs being setup correctly and the right bones being defined in the root motion.


      Answer

      Ah ok I get your point, thanks for the clarification.

      I think I know where you're problem is coming from: Before you do the conversion, you need to make sure that your humanoid animation's root motion settings are setup correctly (in order to keep the root motion offset). Select the *.FBX file that contains your source animation (or if your source animation is a *.anim file, select this one). Then in the Inspector, adjust the root motion settings to this:


      As you can see in the preview, your humanoid character now has the root motion pivot centered (and runs in a spiral around it). Now perform the conversion and your root motion should work as expected.


      Quick tip: You can try to preview the humanoid animation on the humanoid version of your character by dragging & dropping your humanoid character into the preview window of the animation. The converted animation should look exactly like that. If you have quality issues, you need to tweak the humanoid avatar settings of your character.


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


      Best regards,
      Peter

      Answered

      Convert FBX animation downloaded from cloud to Humanoid

      Anonymous 1 year ago updated by Peter - Soxware Developer 1 year ago 1

      Hi all,

      I'm very interested in Animation Converter, but I'm not yet sure if it can do what I'm looking for.

      I have many FBX animations in the cloud, and I'm downloading them to a device. I am using another asset to load the FBX at runtime, but by default Unity imports these animations as Generic, so it doesn't work with my Humanoid rig at runtime. However, if I manually import the FBX and convert it to Humanoid, it works with my Humanoid rig.

      So now my question: if I download the animation from the cloud, can I get the animation to work with my Humanoid rig if I run it through Animation Converter at runtime? How complicated is it to convert the Generic animation to Humanoid?

      Thanks a bunch!

      Answer

      Hi,
      thank you very much for your support request.

      Unfortunately the Animation Converter can only be used from inside the Unity editor (as it depends on some editor only API).

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

      Best regards,
      Peter

      Answered

      Lost the root on converted animations

      Jb Andre 2 years ago updated by Peter - Soxware Developer 2 years ago 3

      Hello I lost the root of the humanoid animation converted to generic do you know why ? 

      Answer

      Hi,

      thank you very much for your support request.

      Please make sure that in your generic character's "Rig" tab (shown in the Inspector), you have set the Root Node to the same transform that is used as "hips" in your humanoid avatar configuration (shown when clicking on "Configure..." in the Rig tab of your humanoid character).


      If this doesn't help, please send me everything I need to reproduce your situation so that I can further investigate via the email support form. You can request a link to my Dropbox (via email) in case the file size exceeds the limit.

      Best regards,

      Peter