Root motion in UE5 absolutely does not work (in the montage animation)

Hey so I updated my UE4 mannequins to metahumans in UE5.
Everything works correctly except for when I play montages.
I’ve done everything in the book and avoided most known easily made settings mistakes.
The retargeted animations have a globally scaled root, all the animations have root motion, teh anim blueprint use root motion for montage only…

Yet when I play the montage directly in game, the metahuman stays in place and the UE4 mannequin works as intended…

metahuman version that doesn’t work:

UE4 mannequin that work as intended:

I retargeted the animations with many possible combinations but I can’t for the life of me makes this work. If anyone think of something I’m all ears, because I’m out of ideas.
My only leads would be that the metahuman skeleton doesn’t work the same with rootmotion or that the ik retargeter is messing things up.

16 Likes

I found the problem.
Apparently when you use IK Rigs and IK Retargeter, the rootmotion options become baked into the animations themselves. So the UE4Mannequin animations essentially lost their root movement when retargeted towards the UE5 metahumans.

The solution is to untick all rootmotion options before retargetting the animations and rechecking them afterwards.
This took me literally about seven days to figure out… Holy molly… Hope it helps someone out there

16 Likes

Awesome! Thank you so much, that fixed my problem. You’re a life saver!

1 Like

This solution didn’t work for me. I can only get root motion by doing the exact opposite of this except for keeping “enable root motion” unchecked and checking the rest of them beforehand. My root motion still has issues though. Is there any other solutions besides these? I’ve tried using the hip as the retargeting root bone (or root bone; but it works better with only the hips as the retargeting bone), not having the hip in the chain for ik retargeting (and having it in it; but it works better without it), making sure the root motion chain is “globally local”, making sure the root is in the chain, unchecking ik retargeting. All of them have bad glitches. Is there a way to have no root motion animation baked into it and not have glitches?

What are the nature of the glitches ? From what I understand it might be a problem with the settings of the ik retargeter, have you retargeted every bones to the new skeleton?

Do you mean with the chain? I’ve done the main bones which are root, head, spine, left clavicle, right clavicle, left arm, right arm, left leg, right leg, each finger (not gonna name all of them). I can get the animation to follow the root only if “force root motion lock” and “normalized root motion” are enabled while “enable root motion” is disabled. It allows the root motion to somewhat work so the animation doesn’t fly away while you are using it. This works well for running or walking, but this doesn’t work at all for my climb system which relies on the animation to move with the root motion when he jumps on the wall, turns a corner, or lifts himself up when he gets to the ledge. I imagine most people would think their root motion is fixed because people usually use it for basic things like running or jumping. I know it’s not my climb system because it works with my other character that didn’t use any retargeting animation from UE5. Below are pics of my retargeting and yes the models are in the same pose.

Hi there!

For me this solution itsnt work too. But finaly i fixed mine root with setting “global scaling” for translation mode inside retargeter. In this video you can find the solution whan i’m talking about!

9 Likes

I have the same problem but after creating an animation in the sequencer (metahuman, no retargeting). Does anyone know how to fix it?

1 Like

Hey, so I’m not sure if I got all of your message, but what I pointed at in my post is that you disable root motions and similar options during the ikretarget to enable it afterward (I use root motion for my project as well)
Also, my Ikretargeter has “Retarget IK” option checked, the rest of the options are the same. Don’t know if that will help.
The only “globally scaled” bone is the root (and the pelvis too, in my option, don’t remember if it’s a mistake) the rest of the bones are “none” in the “translation mode”.
Hope this helps, despite it being a late answer.

2 Likes

This solution worked for me, thanks!

1 Like

After about a week, I finally have something that seems to work.

I copied the anims I wanted to retarget, and removed the tick for all three root options: EnableRootMotion; Force Root Lock; Use Normalized Root Motion Scale.
Then I change both source and target IK_Rig, where I added a pelvis chain since there isn’t one.
I kept the retarget root set to pelvis on both IK_Rigs.
In my IK_Retargeter, made sure the pelvis was set up Chain Mapping to point to pelvis.
Also in the IK_Retargeter, I clicked on Root and made sure it was set to Globally scaled, and Source Chain was set to root.
Then I retarget my anims.
I add Jog anim to my animation track and duplicate it so I have 2 one after the other.
In the jog animation I tick EnableRootMotion. I leave Force Root Lock unticked and tick Use Normalized Root Motion scale.
Root animation is moving character along in sequencer.
I then look at the last frame in the 1st jog animation, see which foot is touching the ground - it is the left foot, so in the next jog sequence I use Match with this bone in previous clip and match the left foot. Now my metahuman runs both cycles successfully.
If you match with pelvis, you will get snap back half way through the anim. Best to match the foot so the character continues.

1 Like

Try Root motion fixing plugin “RM Fix Tool” for UE5 https://youtu.be/JbWckEC9jlk?feature=shared it let’s you fix any animation root motion problem, change, offset and rotate the whole animation.

Found something that worked for me (when the solved post of this didnt)

  1. Open both IK-rigs, and create a new chain (bottom right window) called “Root” and set the root of your skeleton as the start and end bone. (remember to do this on the source and target skeleton)
  2. Open your retargeter.
  3. Select the newly made chain that we just called “Root” (still bottom right window called chain mapping)
  4. Set “Translation Mode” to “Globally Scaled” and retarget your animations :smiley:
3 Likes

Thanks Man.

2 Likes

None of that stuff worked but I found a solution using blender. In UE5 right click on the original animation. Go to asset actions and click export. then go to blender and open it up as .fbx
After that click on the skeleton. Go into pose mode. And then click on the root and delete the animations. If that doesn’t work go back to the starting frame, and click on the pelvis. do " shift s" and cursor to selection. go to the next frame and do “shift s” again this time, selection to cursor. do this for all the frames until it looks good.
After that export as .fbx
under the armature settings untick the add leaf bones. under animation untick NLA stips and All actions. then click export. Finally, you can import to UE5 like normal

Thank you so much, This helped i was stuck on this for several days.

2 Likes

This worked thank you so much :slight_smile:

1 Like

This is what worked for me, important to note that both the Pelvis and Root need to be set to globally scaled. Was trying different combinations of solutions here and that finally fixed it.

this fixes the issue!!! Shout out to my buddy Chad!