CDD-IK Boneとは、Skeltal Skinning(スケルトン スキニング) アニメーションの IK( Inverse Kinematics:
インバースキネマティクス)を実現する方法のうちの一つ、
Cyclic-Coordinate-Descent のことです。 ようするに、親のボーンを動かすと子のボーンにも影響を与える従来のやり方FK (フォワードキネマティクス)から、子のボーンの位置を変更すると、親にも波及するという逆の方法です。 現在作成中の動画なんとかなく動き出しました。特にThree.jsに依存してません。余裕あれば他のWebGLライブラリーでも試してみたいです。
テクニカル最大・最小角度制限人間の関節だと最大値があるので 角度制限のため、最大・最小を超えると、値を切っていましたが、たまにNaNになるので、有効な値かチェックしています。 (ジンバルロックという問題がおきるので、90の倍数の値をしていないほうが無難な気がします。) ただ、最大・最小制限すると、真っ直ぐなまま曲がらなくなったりしました。1回の計算での回転数を減らすとましになりました。
Matrix4を変更後のVector3角度に戻して制限しました。
1回の回転角の限定マウスの移動のたびに計算するので、1回の最大回転角を3度まで減らしましたが、 そうすることで、すべてのボーンが均等に回るようになりました。 ただ、逆にぐにゃぐにゃになりがちなので、最大・最小の角度制限は必要だと思いました。
Matrix4を変更後のVector3角度に戻して、最初の角度との差を比較して、最初の角度にプラスするようにしました。 関連CDD-IK Bone 参考になる文献 |