Not a bug

Create root motion for animation clip that did not have root motion

Kenway 4 years ago updated by Peter - Soxware Developer 3 years ago 5

As title, an animation clip currently i'm using did not come with root motion.

Is it possible to add root motion/auto generate root motion in UMotion Pro?

UMotion Version:
latest
Unity Version:
2019.3.11f1

Answer

GOOD, I'M SATISFIED
Satisfaction mark by Kenway 4 years ago
Under review

Hi,

thank you very much for your support request.

Yes you can of course create root motion for new or existing animation clips. The motion has to be manually created by moving the bone marked with "RM" (in case of humanoid it's the "Hips" bone). Auto-generating root motion from an in-place animation is not supported.

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

Best regards,

Peter

Hello Peter,

I have tried to do this with a few models without success One of the models has a root bone, but it doesn't appear to work. Is there anyway you can take a look at these two models? Please these are generic non humanoid models.

Yes I can take a look at it. Please setup an empty Unity project that includes just what I need to reproduce your situation (i.e. the UMotion project, the character,...). Then send it to me via the email support (you can request a link to my Dropbox if needed).


PS: To reduce file size, remove the "Library" folder from your project before adding it to an archive.

Best regards,

Peter

Working on fix

Hi,

thank you very much for your patience. I've taken a closer look and there seems to be indeed a problem with the Root Motion generation for *.anim files. Looks like the root motion curve is not rotated in the correct way, I'm looking into a fix.

Luckily there is an easy workaround you can use right now. Here is what I did to make the "BlackGardenAnt_Rig_walk_forward" animation a root motion animation:

  1. In UMotion, you need to add the desired root motion movement to the "ROOT" bone (the ant needs to actually move in UMotion; UMotion does not create the movement automatically for you):
  2. Open the settings (click on the gear icon) and change to FBX export:

  3. (Workaround) Remove the RM tag from the ROOT bone:

    This is not going to be required in future versions as it is related to the problem I've mentioned. I'm looking into a fix.
  4. Export your current animation using "File --> Export --> Current Clip".
  5. Select the exported FBX and adjust the settings in the Rig tab (optionally you could have exported your animations into the original FBX, then it would use the settings of the original FBX automatically; please refer to the UMotion manual about all the FBX exporter features).
  6. Make sure to assign the new animation to your ant model. It should now play the root motion correctly.

Thank you very much for reporting this issue and let me know in case you have any further questions.

Best regards,
Peter

Not a bug

Ok I have to correct myself. Further tests showed that UMotion is doing everything exactly the same way as to how Unity generates the root motion curves. When a root bone is rotated, Unity seems to generated a root motion translation curve that is not corrected by this rotation. That's why in your case, the ant is moving upwards instead of forwards. UMotion is doing exactly the same when exporting to *.anim.

You can also see this, if you go to the "Animation" tab of the exported *.fbx file and set the "ROOT" transform as "Root Motion Node" in the "Motion" tab. That's exactly what happens when you tag the "ROOT" transform as "RM" in UMotion.

I'm not sure if this is a bug in Unity or intended, but I think I should keep UMotion's behavior in line with Unity's. Especially as there is such an easy workaround.

Best regards,
Peter