Blender to UE4 root motion not working

Hello, I am using Blender and UE4. I have attached pictures for what i will be referencing.

I’m trying to export an animation to UE4 with root motion, but it seems to not work well. The character’s “HeroTPP_Character_001” root bone stays in place when the root motion animation plays in unreal, while if i click on the “root” bone i can see that it is moving along with the character and is connected to the “HeroTPP_Character_001” bone with a yellow line.
In the pictures you can see the structures in blender and in unreal, also including my export settings to fbx.

If someone can help me fix this I’ve been stuck for 2 weeks now.

Thanks in advance!

It’s a known problem. Your root motion is not playing because the bone “root” is not your root bone, “HeroTPP_Character_001” is. That’s because Blender’s FBX exporter adds an additional bone as the new root. (I don’t know why, but I always assumed it’s to make sure there is only one root node in the skeleton.)

There are two ways to fix this.

  1. Rename your Skeleton to “Armature” Sometime around UE 4.16 Epic patched the FBX importer to remove that additional root bone. Caveat is that it only works for Skeletons if they’re named “Armature”. If you have more than one skeleton in your Blender file, you essentially need to rename them every time you switch from exporting one to exporting the other.

  2. This is still the cleaner version in my opinion. The FBX exporter is located here: [BLENDER ISTALLATION PATH]\2.79\scripts\addons\io_scene_fbx\export_fbx_bin.py. Open it, find the follwing code snipped and comment out the code below. After that, your skeleton should export without the extra bone created. If root motion still won’t work, it is likely one of the settings you set in the Unreal Editor.



elif ob_obj.type == 'EMPTY' or ob_obj.type == 'ARMATURE':
      empty_key = data_empties[ob_obj]
      connections.append((b"OO", get_fbx_uuid_from_key(empty_key), ob_obj.fbx_uuid, None))
 

2 Likes

Thank you, just thank you so much!

Thing is, there has been an issue with scaling when moving models from blender to UE4, basically even if you set up your units fine as long as your Armature is called Armature the export tries to “fix” it and messes it up when it comes to animations (thus a model looks good in ue4 but the animation might collapse into itself). Afaik not always? Anyways, happened to me so I stopped calling my skeletons armature so posting that second solution is a true lifesaver.

Really, really thank you!