Ghost bones messing animation

Hi there,

I’m trying to import a skeletal mesh from a unity fbx to retarget it and apply a UE4 anim.

I have successfully imported the fbx (i get a skeletal mesh, a skeleton, and a few materials).

I can then retarget the imported skeleton on the humanoid rig, but there are extra bones (4rth bone on each finger) in the imported skeleton and they seem to mess up the retargeted animations.

Here a view of a retargeted anim:

You can notice that:

  • the aprox size makes no sense (-billion ??)
  • all the bones causing the problem are the extra bones (finger_distal_end)

I couldn’t find a way to tell UE4 to ignore them, so i tried to open the fbx in blender and delete those bones.

And now everything seems to have been deleted in blender:

EmptyBlender.jpg

But somehow, the bones still appear when importing the blender fbx in UE4:

StillThere.jpg

So i need either to tell UE4 to ignore those bones, or to find their references in blender and delete them.

Anyone with some knowledge in blender/ue4 has any idea ?

Thanks

Cedric

Ok, in case anyone needs this, i finally understood where those ghost bones were coming from.
In the blender fbx exporter, there is an option to add leaf bones. The *_end bones come from here, and it is checked by default.

EndBonesBlender.jpg

So this is understood.

Unfortunately, now that i got rid of those bones, my animation is still the same mess, just with other regular bones, so the problem is somewhere else.

Cheers
Cedric

End bones are usually used as end efforts as part of an IK solution and can be deleted as they are children. There are a couple of ways to create “phantom bones” and not that easy to remove.

If you are doing a clean import and if the bone is still part of the weight table the missing bone will add the child but grayed out.

If you have already imported a character but add another character with additional bones they will be added to the first, grayed out, so if you have unique animations to a rig with unique requirements then the animations will work on the first character imported.

Lets say you have a base character and import it. A second character can be added with the additions of bones for a pony tail and if you import the character to use the first skeleton they will be added even though the first did not contain the same bones.

The docs. Check out rules for sharing skeletons

It’s a feature and not a bug that you can add additional bones with out having to modify the original rig to account for the additions and except for making things clean and tidy you can in most cases ignore them.

Then again.

End defectors are generally used for authoring animations so if they are there it’s best practice to just leave them alone. If it’s messing up targeting in UE4 then you should report it as a bug as it only needs to go along for the ride based on it’s parents relative position.

Hi,

@FrankieV: Thanks for the explanations about leaf bones, i’am quite new to animation and didn’t have any clue about those end bones :slight_smile:

@everyone bumping into such a problem, i finally solved it, here is my current understanding of it and a working solution.

It turned out i wrongly accused end bones, they were only a consequence.

The problem was that my root bone had a scale of 100, which was causing each new branch to be multiplied by 100, leading to the explosion of the size described in this thread (indeed, 100^x is a fast growing function !!).

As in blender my model was of reasonable proportion (~1m) and exporting with scale 1, i didn’t know the origin of that factor 100.

A quick google search led me to a few posts where this is described as a bug in the blender fbx exporter (v2.78 at the time of this writing).

So my solution to keep a scale of one with a normal size for my skeletal mesh was to multiply in blender the scale of the model by 100, reinitialize the scale (ctrl-a / scale) and then export with a scale of 0.01.

Once imported in UE4, the skeletal mesh has the correct size, the root bone has a scale of 1, and the animations retarget properly.

Cheers

Cedric