Kinect ハック

このエントリーをはてなブックマークに追加
183デフォルトの名無しさん
A(肩) --> B(ひじ) --> C(手首) とジョイントがある場合(骨は(1,0,0)方向に伸びているとする)、
Bの回転角度を求める時って、
(1) Aの回転は既に計算済みとして、
(2) Bの(ワールド座標の)位置をAのローカル座標に変換して、
(3) (1,0,0)からの回転角度を求める
と計算すれば良い?
(1') Aの回転は既に計算済みとして、
(2') Bの(ワールド座標の)(1,0,0)からの回転角度を求めて、
(3') Aのクォータニオンの逆数をかけて差分の回転を求める
と実装したらどうも間違えているような動きをするのですが、
上記の式で計算しないとダメですか?

つまり親のジョイントのローカル座標で計算しないとダメですか?