我的蒙皮网格和骨架有问题。 假设我有一个SkinnedMesh,我想缩放或旋转,但我需要"烘烤"网格几何上的这些变换(使用带有由缩放,平移和四元数组成的矩阵的applyMatrix)。如果我烘焙这些变换,蒙皮网格的骨架不会更新,因此骨骼保持其初始大小和坐标。
我需要烘焙转换,以便将比例重置为THREE.Vector3(1,1,1)并旋转到THREE.Euler(0,0,0," XYZ")。
如果我尝试移动骨骼位置或在转换后烘烤我的SkinnedMesh(显然)更改后缩放/旋转它们。
我拍了两张截图来展示我的意思。 在第一个屏幕截图(自然比例)中,您将看到蒙皮网格在其自然比例下,骨架帮助器正确显示。在第二个屏幕截图(更大的比例)中,我烘焙了一个比例变换,用THREE.Vector3(3,3,3)进行缩放。正如您所看到的那样,骨架助手仍保持其初始大小。
可以在不影响几何体的情况下更新骨骼大小和坐标吗?有人能帮助我吗?
提前谢谢!
自然规模
规模更大
答案 0 :(得分:0)
我成功尝试了以下内容:
var p = new THREE.Vector3();
var q = new THREE.Quaternion();
var s = new THREE.Vector3();
mesh.skeleton.findBoneByName("bone-name").matrixWorld.decompose(p, q, s);
//p variable now contains the world position
console.log(p);
mesh
是您的SkinnedMesh
个实例。 "bone-name"
是您要查找世界位置的骨骼的名称。