How to pose Root Bone from Blender 2.8 to UE4

Given As you can see in the image, I believe I correctly named my objects - namely, ‘root’. When I export the armature from Blender 2.8 to UE4, the bone hierarchy in the skeleton looks fine too. It matches the default UE4 mannequin as far as the root, pelvis bones, etc.

Issue As you can see in the .gif, the root bone does not move with the rest of the skeleton. I’ve been stuck on this for quite some time now. Would really appreciate help

Blender 2.8 Skeleton (NOT mixamo skeleton)

Blender 2.8 Export Configuration

UE4 Skeleton Import
ue4-skeleton.png

Root motion problem. Notice that the root bone does not move as the rest of the skeleton jumps forward
root-issue-sm.jpg

See origin post for gif: animation - [SOLVED} How to pose Root Bone from Blender 2.8 to UE4 - Blender Stack Exchange

I’m no Blender expert so there may be a better way than how I do it. I do the key frames for root motion in object mode on the armature object, doesnt seem to work setting key frames for the root bone in the graph editor for me. Unreal just seems to ignore the root bone key frames from the blender graph editor, not sure why or if theres a setting somewhere.

2 Likes

In blender the root bone is the armature object. So to animate it you move it around and keyframe it. Outside of pose mode.

Ah, I see. I mean I did try something of the sort in a desperate attempt, but it probably didn’t work the first time since my bones weren’t correct. Tried it again with bones in this post and it worked.
Thank you!

Solution

  1. Root Bone of Blender 2.8

](filedata/fetch?id=1823796&d=1603150870)
2. Moving the “root” bone. Make sure to click Mesh then SHIFT + CLICK Armature (root) to move the root bone and to add keyframe.
](filedata/fetch?id=1823797&d=1603157337)
3. The red line which denotes that the root bone is moving
](filedata/fetch?id=1823798&d=1603150870)

1 Like

Animating the armature separate from the skeleton poses some problems. How do you do if you have several actions?
This is what I do:
I don’t rename the armature in blender. I just leave the name “Armature” (this seems to be a special name for the unreal importer).
This is because if you rename the armature to other thing then “Armature”, Unreal will create a root bone with the name you have given to your armature.
Now, if your armature is named “Armature” in blender, you will have to add a root bone to your armature (I place it at 0, 0, 0) and parent all your bones to it. If you don’t do this, you will get the “Multiple root bones” error while importing to Unreal.
You can now animate your root bone as normally because it is now part of your armature.

If you get the annoying error “transforms different whatever” when you import to Unreal (I think you will have if you create a root bone in blender), then you have to:
-Apply all transforms to the armature
-Change the scale to 0.01 in the fbx exporter in blender
-Change “Import Uniform Scale” to 100.0 under Transform in the Unreal importer

I’ve found out this curious fact:
-When the armature is renamed to other thing then “Armature” in blender, Unreal creates a root node in the skeleton with a scale of 100, 100, 100 (no idea why). Maybe if I waste a bit more time, there’s a setting that will make unreal create the root with a 1, 1, 1 scale, I don’t know…
-If the armature in blender is named “Armature”, unreal does not create this node, and uses the root node from blender instead. If the scale values are not changed in the blender exporter and in the unreal importer, then root bone will have a scale of 1, 1, 1 and your animations will look tiny.

I’ve wasted innumerous hours and cracked my head to get this to work.
Hope this helps.

Edit:
I bumped into this thread because I was having a hard time animating my root bone in blender with my setup. It’s really hard to pose the character and move it at the same time.
While reading some post on another thread I’m following, maybe is better not to have a root bone. Maybe is just better to “animate in place” and then move the armature to get the root motion in unreal. I’m going to try it out.

It’s almost always better to animate in place.

You can actually move the root bone and animate it, but its either discarded on import or it will cause issues.

Normally. Animate the root bone, so you have whatever movement you need.
Let’s say walking.

You set the root bone up to scroll through at the distance that maches the meters per second used in unreal.

Off that, you create the walk cycle so that the feet look nice, and you have no sliding.

After that, you just delete the root bone translation keys off the animation track.
This brings the animation back to being the exact walk cycle you crafted - which will work perfect with the speed you have set in the character movement - but it will be in place. Like all the other usual animations.

When you need to animate the root bone for root motion stuff, you can always create a quick script to move the Armature following the root bone and keyframe its location/rotation data.

I think - have not done this in a bit because unreal mostly su cks right now - that you still have to clear the root bone translations before exporting though.
Since that bone isn’t really used.

As far as what is happening in blender.
The exporter is literally seeing the thing called Armature and saying… ha use the object location and skip the root bone within.
At least, that’s what I remember form the last time I updated my curves export script.
By now it’s probably been over a year. I may remember wrong.

I finally get this to work.
I did as I proposed in the beginning. I added a root bone in blender and kept the name “Armature”.
I have this animation of a dude climbing a wall and first I animated it place, and then I animated the root bone (only had to move it to the correct places).
I tried to animate the armature instead or creating a root bone, but this did not work because I have several animation actions.
I imported it to Unreal, checked “Enable Root motion” in the animation and it worked.