腕や足のIKを設定するとき、骨格は、曲がる方向へ少し曲がっていた方が素直にIKが設定できます。
しかし、ジョイントの並びが一直線になっていると、IKソルバがどちらに曲げてよいのか分からなくなってしまうため、プリファードアングル(優先回転角)を設定して曲がる方向を指定するわけです。
メカ系ではデザイン的に曲がる方向とは逆向きでジョイントを配置しないといけない状況が有ったりします。
こんな感じで、プレビューでジョイントを回転させ、メニューから「優先回転角に設定する」を実行すれば問題ないです。
が、スクリプトでsetAttr を使いジョイントのアトリビュートを設定する場合には、ちょっと注意が必要です。
たとえば、ジョイントにプリファードアングルを設定しても、そのスケルトンが希望の方向に曲がっていなかった場合、フリップした感じになってしまいます。
このジョイントとロケータでIKとポールベクターを設定するとして、プリファードアングルが1度とかだったりすると、曲げたい方向とは逆に骨格が曲がっているため、
ポールベクターを設定すると、モデルがひっくり返ってしまいます。
確実に曲げたい方向に曲がっているプリファードアングルを設定すれば、
希望通りの方向へ曲がってくれるようになるようです。
0 件のコメント:
コメントを投稿