Summary
The UE5 Interchange GLTF importer appears to truncate skeletal mesh bone influences to a maximum of 4 influences per vertex, even when the source glTF asset contains additional valid JOINTS_n / WEIGHTS_n attribute sets representing more than four influences.
As a result, importing a glTF skeletal mesh through the Interchange GLTF pipeline can produce a skeletal mesh whose skinning data differs from the source asset, with additional bone influences being silently discarded.
What Type of Bug are you experiencing?
Other
Steps to Reproduce
- Create a skeletal glTF asset with one or more vertices influenced by more than 4 bones.
- Import the glTF asset into UE5.
- Inspect the imported skeletal mesh’s skin weights.
Expected Result
The importer should preserve all supported JOINTS_n / WEIGHTS_n attribute sets from the source glTF
Observed Result
Only the first 4 bone influences per vertex are imported. Additional influences present in the source glTF are discarded, resulting in incorrect skinning compared to the original asset.
Affects Versions
5.8
Platform(s)
Windows
Additional Notes
These are the relevant sections of the UE source that appear to be involved:
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Interchange/Runtime/Source/Import/Private/Gltf/InterchangeGltfMesh.cpp#L185
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Interchange/Runtime/Source/Parsers/GLTFCore/Private/GLTF/GLTFMesh.cpp#L437
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Interchange/Runtime/Source/Parsers/GLTFCore/Public/GLTFMesh.h#L26
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Interchange/Runtime/Source/Parsers/GLTFCore/Public/GLTFAccessor.h#L145
