<STEP 3>逆関節リグの作成手順
それでは実際に逆関節リグを作成していきましょう。SkinWeightが載る「Skin Joint」は「Control Joint」と1:1でコンストレイントされます。Control Jointには、IK handleやコントローラなどが付き、このジョイント階層を動かして、足のアニメーションを制御することになります。そして、「Aim Joint」には、ControlJoint「upLeg」がコンストレイントされます。Aim JointはupLegの自動制御に使います【A】。
Control JointとAim Jointは同じIKコントローラとPole Vectorコントローラをもっていて、Aim Jointの第1ジョイントがControl Jointの第1ジョイントを制御するFKコントローラのOrient Constraintの親になります。この構造によって、FKコントローラはIKコントローラが連動しながら、独立したアニメーションキーをもつことができるようになります【B】。完成したジョイントが【C】になります。
最後に、IK制御に付きものであるフリップを解消するためのTIPSを紹介します。一般的なIKリグでは、IKコントローラがIKが始まるジョイントとPole Vectorコントローラを結ぶ線を越えるとフリップが生じてしまいます【D】。
もちろんPole Vectorコントローラを移動させれば回避できる問題ではありますが、面倒ですよね? フリップが起きてしまう原因は、「IK handle」と足の進行方向が「Pole Vectorコントローラ」と同じ平面上に存在するためです【E】。
そこで、Pole Vectorの位置をその平面からずらせば解消されます。具体的には、Pole Vector用のLocatorの位置を「IK handle」の真横に配置して「IKのTwist」の値を元の姿勢になるように調節します【F】。今回はTwistに-90を入れると元の姿勢になりました。
その後、LocatorをIKコントローラの子にします。ですが、このままでは足だけをひねることができないため、「IKコントローラ」に「Knee Twist」というAttributeを追加してPole Vectorの親Groupノードの「Rotate Y」と繋げれば完成です【G】。激しいポーズをとらせてもフリップが起きないことが確認できます【H】。
いかがでしたか? 今回作成した逆関節リグのデータをコロッサス公式サイトからダウンロードできるようにしたので、ぜひご利用ください。
【サンプルファイルのダウンロード】
今回紹介した逆関節リグですが、コロッサス公式サイトから実データをダウンロード可能です(下記URLからダウンロード、解凍してください)。
cls-studio.co.jp/cgworld-vol-230
月刊誌に掲載した元記事の「ダイナミックコントロールリグの作成」(nClothを利用して作る、手付けアニメーションとシミュレーションが共存できる揺れ物リグの作成方法と、リグ作成の複雑な手順を自動化するためPythonスクリプトを紹介)のサンプルシーンファイルとPythonスクリプトもダウンロードできるのでぜひご利用ください。
info.