Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js骨骼动画,骨骼重新计算_Three.js - Fatal编程技术网

Three.js骨骼动画,骨骼重新计算

Three.js骨骼动画,骨骼重新计算,three.js,Three.js,我有一些关于骨骼动画混合的问题。我有行走动画,我想在这个动画中更改手臂的位置。我认为我需要重新计算手臂在所有关键帧中的位置。这是一种常见做法还是有其他更常见、更简单的方法?不需要更改关键帧中手臂的位置。 应用动画,然后通过使用直接设置手臂骨骼来动态更改手臂的位置 skinMesh.skeleton.bones[i].position.set(xPos, yPos, zPos); // sets the position Vector3 skinMesh.skeleton.bones

我有一些关于骨骼动画混合的问题。我有行走动画,我想在这个动画中更改手臂的位置。我认为我需要重新计算手臂在所有关键帧中的位置。这是一种常见做法还是有其他更常见、更简单的方法?

不需要更改关键帧中手臂的位置。 应用动画,然后通过使用直接设置手臂骨骼来动态更改手臂的位置

skinMesh.skeleton.bones[i].position.set(xPos, yPos, zPos);        // sets the position Vector3
skinMesh.skeleton.bones[i].rotation.set(xRot, yRot, zRot, "XYZ"); // sets the rotation Euler
其中,“xPos,yPos,zPos”是手臂的新位置,“xRot,yRot,zRot”是新的旋转,“i”是骨骼的指数


请参阅关于动态动画的这个问题和我的答案:

我运行动画并使用skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284)更改手臂的旋转。但是手臂没有rotate@Ivan您忘记了“XYZ”:“skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284,“XYZ”)”但它仍然不起作用。当动画不播放时,我可以旋转骨骼,但当动画播放时,骨骼与动画中的骨骼相同。为什么?@ivan在更新动画后添加了XYZ和代码行吗?它必须类似于“THREE.AnimationHandler.update(delta);skinMesh.skeleton.bones[6]。rotation.set(0.903,0.248,-0.284,“XYZ”);”。另外,您使用的是three.js(r68)的最新版本吗?对不起。这是我的失败(=)加倍工作是个好做法吗?在动画期间旋转骨骼,然后使用代码skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284,“XYZ”)旋转骨骼;