When loading blender's exported GLTF model with bones, there are some invalid nodes with the same name?

gaze | Babylon.js Playground (babylonjs.com)
When I used blender to export bone models in GLTF format, I found that they all had a few extra empty nodes with the same name. Do you know if this is a gltf format problem or a gltf loader problem? See the picture above.
I tried to remove these nodes with the same name without any effect on the model.

I think the ClothOutwear node exists because the mesh is made of several primitives, so they are all children of the node :


But for ClothGloves (which has a single primitive), I’m not sure why the mesh isn’t a child of the node… Note that we could probably get rid of the node altogether, but I think it’s necessary to create it to comply with the glTF specification.

cc @bghgary who knows for sure.


I’ve tested multiple Blender-exported character models and all have this problem.
But his creation has nothing to do with primitives, and the ClothShoes node in the diagram is not a multi-material node and has not been split, but he has also been created with a transform node of the same name as the same level.

This is done to support glTF skinning properly. See this: glTF 2.0 Skinning | Babylon.js Documentation. Let us know if we can improve the documentation.

Thank you for your reply. I have read the document in detail.
According to the documentation, babylon chooses to ignore the path parent transform and selects the parent transform of the skeleton object.
babylon retains its parent node, however, for two reasons:

  1. Meet GLTF specifications.
  2. The parent node may be animated or there are child nodes.

If the parent node is animated, but the transformation of the parent node is ignored, does this mean that the animation also does not take effect?
If there are other subgrids under the parent node, is there a known problem in moving them under the skin grid?

This isn’t a choice. It is required by the glTF specification.

The transform of the parent node will not apply to the skin. This is per specification.

This is the reason for having the extra transform node in some cases. If there are subnodes under the parent node of the skinned node, it still needs to apply the parent transform to them.


I see. Thank you for your answer. It’s very useful to me.

1 Like