I am working on adding animation support to our GLTF loader. In this model, the starting positions of bones are shown with blue spheres. I recognize the pose as part of the running animation. (The character is leaning forward and holding a gun.) The model loads and animates correctly in the Windows 3D object viewer.
Why doesn’t the starting bone orientation match the model pose?
How was the model created? This seems like a question (or perhaps a bug) related to that software. The glTF file format doesn’t specify “all bones must begin in a running position” or anything like that.
Can you tell what the initial positions of the bones are in the Windows 3D viewer? When you say “starting positions of bones” I assume that means when ignoring any animations in the model, and not displaying, for example, the first frame of the first animation? Note that the animation playing back correctly doesn’t necessarily mean the bone starting positions aren’t the same in that viewer.
This question seems to depend mostly on the model and perhaps the software… By all appearances, yes, the bones are starting in a non-tpose position. Without knowing how the model was made, I can’t tell you how the bones got there… maybe it’s the same in the FBX? Made it’s a bug in the FBX2glTF converter? Maybe a bug in your viewer? There’s a lot of missing information needed to debug this sorry.
I said that the Windows 3D object viewer application animates it correctly, so we can assume there is nothing wrong with the model. The question is why would the default position of the bones (without animation) not be in a T-pose to match the mesh? I have written importers for probably a dozen different model file formats, and have never seen anything like this. There must be something “clever” GLTF does here that no one is telling me.