背骨(FKIKハイブリッド)のセットアップの続きです。
前回までで背骨のspline_IK(IK_spline)を作成し、そのspline_IKのカーブにjointをバインドし、そのjointにコントローラーをつけるところまで作成しました。
FKのjointを作成する
背骨(FKIKハイブリッド)のセットアップということで、今度はFKのjointを引きます。
spline_IKを引いたリグ用のjointの同一線上にFK用のjointを4つ(だいたい3等分になるように)配置します。
根本と先端のjointはspline_IKを引いたjointと同じ位置にスナップさせて配置します。
joint orientをspline_IKを引いたjointと同じ方向にします。
最初にFKのjointを引きたいところにLocatorを配置してそれにスナップさせて引くと簡単に引くことができます。
FKのjointをコントローラーにする
FK用のコントローラーを作成します。
このFK用のコントローラーは普段使うようなjointをコントローラー(カーブ)にコンストレインする方法ではなく、jointのシェイプノードをコントローラー(カーブ)にする方法を使用します。つまりjointの見た目(シェイプ)を変えてそのままコントローラーにしてしまいます。
ちなみに過去の記事ではこのFKとIKのブレンド(切り替え)の記事で説明しました。
nurbs Circleを作成してこれをコントローラー(jointのシェイプ)にします。
OutlinerのDisplayの中のShapesにチェックをいれてシェイプノードが表示されるようにします。
nurbs Curveのシェイプノードを選択して、次にシェイプをナーブスカーブにしたいjointを選択して
MELのコマンドラインで
parent -r -s
を実行します。
すると‥
Circleが縦になってしまいました。
これはjointの軸とnurbs Circleの軸の方向が違うためです。
nurbs Circle Shapeのヒストリの設定を変更します。
Normal Xを0から1に
Normal Yを1から0に変更します。
これでX軸に巻き付くようなCircleになります。
この方法でFKのjointの2番目と3番目のjointのシェイプをnurbs Curveのコントローラーにします。
spline_IKとFKを連動させる
「Ctrl_Grp」に入れた「chest_Ctrl_Grp」と「hip_Ctrl_Grp」をそれぞれグループ化(Ctrl + g)します。
名前をそれぞれ「chest_Ctrl_Grp」と「hip_Ctrl_Grp」にします。
そして、先程作成したシェイプをnurbs Curveにしたjointはコントローラーとして使用するので、「ctrl_Grp」の中にいれてしまします。
上の画像のように、FKの根本のjointを選択して、次にhipのコントローラーをグループ化したものを選択して、parent constrain(offsetつき)をします。
次にFKの先端のjointを選択して、次にchestのコントローラーをグループ化したものを選択して、parent constrain(offsetつき)をします。
これでspline_IKとFKを連動させるハイブリッド構造になりました。
Squash and Stretchできるようにする
このままの状態の背骨のspline_IKでは、胸と胸のコントローラーが離れてしまった場合に思い通りに制御できなくなります。胸が胸のコントローラーに追随するようにSquash and Stretchの機能を追加します。
jointが伸びたり縮んだりさせる方法の説明については過去の記事を参照してください。
今回はNode Editorでどことどこを接続したのか結果だけ示します。
過去の記事で腕のjointがStretch(Squashしない)する方法を解説したものと、
spline_IKでSquash and Stretchさせる方法を解説したものがあるので参考にしてください。
spline_IKなので長さを得るのに都合の良いCurveがあるのでCurve Infoノードを使ってノードを組みます。
カーブのシェイプノードの「World Space[0]」をcurveInfoノードの「Input Curve」に繋ぎます。
curveInfoノードの「Arc Length」をmultiplyDivideノードの「input 1X」に繋ぎます。
multiplyDivideノードは「multiply」にします。
multiplyDivideノードの「Output X」をそれぞれのspine_**_Jntの「Scale X」に接続します。
背骨そのものを動かすpelvisコントローラーを作成する
「pelvis_Ctrl」という名前にしてコントローラーとなるnurbs Curveを作成します。
一筆書きしたnurbs Curveはそのままコントローラーとして使用することができますが、もう少し複雑なシェイプのコントローラーを作成したい場合は過去記事を参考に作ってください。
このコントローラーはコントローラーなので「ctrl_Grp」の中にいれます。
この「pelvis_Ctrl」の子に今まで作ったFKのjointをいれます。
完成1歩手前
現状ではここまで完成しました。
しかし、全体スケール対応がまだできていません。
この仕上げの作業が面倒であったり、難しかったりするのですが次回この作業にあたります。
今回の記事が気に入っていただけた場合、ぜひとも他の記事もチェックしてみてください。Mayaのリギングに関する記事をまとめたページです。
コメント