0
$\begingroup$

I've created a character and rig and it looks and works fine in Blender, however after I export to FBX and import to UE4 the bones are shifted. One issue is that the root bone moves to the floor and seems to pull all the other bones down with it. Also there are a few bones that are parented to the root bone with an offset, shown by the dotted lines:

enter image description here

However in UE4 those bones become attached to the root bone. Is there a way to make them keep their offset on import? The bones move the mesh just fine but are in the wrong location. For example, when I select the bone that is visibly where the upper leg is, UE4 thinks it's the lower leg:

enter image description here

My transforms are all applied. Not quite sure what's going on here, any suggestions welcome. Thanks

$\endgroup$

2 Answers 2

0
$\begingroup$

You can create a new root bone, which will be parent af all others rig's bones, and set it on the floor, so that UE will not have to move anything. Similarly you can replace every "keep offset" option with a new bone, so that all the bones chains will not be "interrupted". UE requires a general root bone that will be placed at loc (0,0,0). Every bone is requested to be weighted to one mesh vertex at least. If some vertices are not weighted to any bone, they will be automatically fully assigned to the root bone.

$\endgroup$
1
  • $\begingroup$ Hi Josh, thanks for the tips. I moved the root bone down to the floor and replaced the offset areas with filler bones but UE4 still does the weird thing of attaching bones to the root, even though they are unparented from it and parented to a filler bone that connects the pelvis to the root, makin the whole structure out of whack $\endgroup$
    – AOK
    Commented Oct 26, 2020 at 4:17
0
$\begingroup$

TL;DR: there's nothing wrong here, it's just visual.

However in UE4 those bones become attached to the root bone

Well, yes, but actually no.

Blender has bones, UE has joints. While visually they seem very similar, they do have quite significant differences.

Technically, Bones are made out of two joints, "start" and "end", which in Blender's bones are called "head/root" and "tail/tip". The body of the bone is just a visual tool that represents a relationship between the two. But the end joints are purely visual in a bone system, their only use it to define how to draw a body from a start joint.

enter image description here

Source: Bones - Structure - Blender 4.1 Manual

enter image description here

Source: Maya Help | Joints and bones | Autodesk

In softwares that have a joint system like Maya or UE, there aren't any defined "bone" entity, there are only joints, which are very similar to empties: just a point in space with transformation channels. But when a joint is children to another, a body or "bone" is displayed between them. But here they show up on any parent-child relationship, and from parent to child, and they only are a visual cue, not a datablock like in Blender's bone system.

What you see by exporting from Blender to UE is the result of translating bones into joints: only the root of any bone is an actual joint. This wis why there seems to "miss" a bone at the end of your skirt, but also fingers and toes. But remember: you don't see bones in UE, you see joints. Joints are only a point in space, and you can see the joint in UE exactly where the bone root is in Blender. You can optionally export "leaf bones" in different exporters, which will force to also export extra bones at the end of a chain to store the position of what Blender considers to be a bone's end. But that's useless besides aestethics, and arguably just adding useless data.

As for unconnected bones: this does not exist in joints. All joints after the root are children of another joint, and a body is displayed to show that. But do not think this is an issue: the bone isn't rotated, or changed in any way, remember: there is no bone here, it's a visual indicator of relationship between two joints. Again, the joint is exactly where Blender's bone root is.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .