THREE.JS如何移动SkinnedMesh的骨骼?

use*_*247 8 animation mesh three.js

我正在使用THREE.JS制作一个3D项目,我想要制作一个像角色一样简单的魔兽世界.

为此,我从Blender(带有骨骼)导出一个,然后使用SkinnedMesh类使用THREE.JS渲染它.

我尝试了一切使网格的手臂移动,但我无法弄清楚如何做到这一点.我尝试更改旋转,位置,矩阵以及将所有标志设置为true(如matrixWorldNeedsUpdate但手臂没有移动).

这是一个示例代码:

var meshBody = new THREE.SkinnedMesh( geometry, materialTexture );

...

animate = function(){
    meshBody.bones[3].rotation.z += 0.1     
    meshBody.bones[3].matrixAutoUpdate = true;
    meshBody.bones[3].matrixWorldNeedsUpdate = true;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

构建网格时,请确保将材质的蒙皮属性设置为true,例如:

mesh = new THREE.SkinnedMesh (geometry, 
          new THREE.MeshBasicMaterial ({color: 0xaaaa00, skinning: true})
     );
Run Code Online (Sandbox Code Playgroud)