For some reason when I import my character UE5 creates all these extra bones and I cannot figure out why or how to fix it. The hands are made of many hard surface pieces and Unreal see’s each piece as a separate bone even though these were not bones on my armature but it creates bones for each piece anyway. Even pieces that have been joined together still show up but they are greyed out in the bone hierarchy
I imported my character from Blender and everything works fine there. I rigged it using the UE4 skeleton and all the other bones and joints are fine it’s just the hands that cause problems in Unreal. I even weight painted each piece but that didn’t fix it. Any ideas?
At least in Maya, if you have a group that inside has the geometry, it will create a joint with the group name, so most likely is happening the same thing in Blender.
Make sure that the geometry is not nested inside anything else and try reimporting the rig and see if this solve the issue.
Could be an issue with additional / assigned vertex groups on your mesh in Blender.
I had a similar issue with the extra bones in UE and it was related to how I was parenting bones in the armature in Blender (rigging from scratch). I had originally done Bone parenting (which cooked it) and resolved it with Armature Deform parenting & manual weight painting.
UE will also generate bones for separate parts of the mesh that are mesh parented.
Few things there to have a poke at for problem solving.
It looks like the mesh is linked to the parent joint which adds it to the hierarchy. If the mesh is skinned weighted to the joint it does not need to be linked as a child (aka leaf). Just unlink them and reimport an the mesh should not be included in the list
I’ve tried it both without vertex groups and with vertex groups (weight painted red) and the issue is still there. As for parenting of bones everything is identical to the UE4 skeleton because that is what I used to rig my character with so all the bones are the same as the default skeleton
OK so based on the photo UE4/5 does add the mesh objects IF they are linked to the hierarchy, this is a feature and not a bug, as a phantom joint or bone that is include as part of the hierarchy but is greyed out. It does this so that the same skeletal rig can be used to accommodate different characters that have added components and still receive animation data as long as the extra joints are included as a child or leaf as a extension to the original base rig.
You can see that some are marked as joints made from bones or as joints made from static mesh and since the finger joints were linked, added as being part of the hierarchy, they were added to the base rig as joints.
If this is not what you want you will need to do a few things to fix it.
Redo a clean base rig as the phantom joints are now baked as part o the base rig
Reimport the character you made with the fingers unlinked but skinned and weighted to it’s appropriate joint as part o the hand. https://www.youtube.com/watch?v=6WqGmxioSdE
By skinning the fingers to the proper joint it will now deform based on the transforms of the joint at the vertex level and not at the object level which is whats it adding the finger static mesh as a phantom link.
As a feature you can add a broad range of custom characters that requires additional joints, like the Paragon characters, and as phantom joints will accept custom animations intended for a given character with out having to make an additional unique base rig and still share the same animations.
I get what you’re saying but if that were the case then other objects such as the clothing, shoes, etc would also have bones in the hierarchy but they do not. Just the hands
Well I can’t comment on that but if you add a static mesh as a linked child it will be added as I’ve experienced this myself. In context when I export a Daz3d Genesis character with clothing that is attached to the base that adds extra joints as well the static mesh is linked they are added as phantoms.
Just don’t link static mesh and skin it instead and problem solved. To figure out why requires context to solve the problem