Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.1.0 Beta3
-
None
-
-
6cecdc6eb6d5e7f2472327c6e6ec1875847d070f (qt/qtquick3d/dev) 23542e6405623a88a3acb6e74e773abedfd22197 (qt/qtquick3d/6.1)
Description
How to reproduce:
1) Generate RiggedSimple.qml or CesiumMan.qml via balsam tool from the KhronosGroup gltf model example, or use the attached *.qml
2) Load the scene. The model mesh is in horizontal plane - which is not correct, but the animation playes properly.
Both joints are in a vertical plane and also animated, but the joint animation doesn't match the mesh animation.
3) Now move the Skeleton node to the top level, so that all the nodes are inside - the mesh is rotated by 90deg and the mesh and joint animations match. It looks and animates the same way as in Blender 2.91. That looks like a solution but it gives correct result only if there is 1 mesh and 1 skeleton.
If a mesh without "skin" is placed in Skeleton node, the mesh transform is ignored, instead identity matrix is used. So the mesh is moved to the center of the scene with identity rotation and scale (lego buggy example).
The problem is relevant for all models created in Blender. There are, however, a few models which are loaded properly "Fox", "BrainStem"
What should be changed:
1) Skeleton node position in the hierarchy should not affect Mesh position/rotations/scales.
2) Skeleton nodes should not affect not skinned mesh positions rotations and scales. For not skinned meshes local transformation matrix should be used like for other node types.