2014-10-20 71 views
1

我有一些關於骨骼動畫混合的問題。我有步行動畫,我想在這個動畫中改變手臂的位置。我認爲我需要重新計算所有關鍵幀中手臂的位置。這是一種常見的做法,還是有另一種更常見和更簡單的方法?Three.js骨骼動畫,bons重新計算

回答

2

您不需要更改關鍵幀中手臂的位置。 應用動畫,然後動態地通過與直接設置臂骨改變臂的位置

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」是新的旋轉,「我」是骨骼的指標。

請參閱這個問題,我的答案,動態動畫:Dynamic bones animation in Three.js

+0

我運行動畫,並與skinMesh.skeleton.bones [6] .rotation.set改變臂的旋轉(0.903,0.248, -0.284)。但手臂不旋轉 – Ivan 2014-10-21 05:13:07

+0

@Ivan你忘了「XYZ」: 'skinMesh.skeleton.bones [6] .rotation.set(0.903,0.248,-0.284,「XYZ」)' – 2014-10-21 17:49:05

+0

但仍然沒有工作。當動畫不播放時,我可以旋轉骨骼,但是當播放動畫時,骨骼變得與動畫中相同。爲什麼? – Ivan 2014-10-21 21:05:27