MayadでRiggingというシリーズでここ最近はstretch IK(のびるIK)についての記事を扱ってきました。そこで、今回はのび~るspline IK(IK spline)について解説します。こののび~るIK spline(spline IK)はちょっとしたギミックとして使えます。
また、spline IK(IK spline)というものは普段つかわれるIKに比べて知名度が低く、現場で3DCGアニメーターをやっている人(ある程度の年数やっている人)でも知らない方もいました。しかし、3DCGアニメーターとしては少なくともspline IK(IK spline)というもの自体は知っておく必要があります。
stretch要素としてはscaleX版のstretch IKの方法(正確にはsquash and stretch)を使用します。この手法については過去に書いたscaleX版のstretch IKの記事を御覧ください。
MayaでRiggingシリーズで解説していることを試して見るにはjointのX軸が子の方向をむいている必要があります。この意味がわからない方はまずはjoint orientの記事とジンバルロックとRotate Orderの記事をまず読んでください。
spline IK(IK spline)の作成
spline IKはカーブに沿ってjointが曲がるのでjointの数が多いほうがより綺麗な曲線が描けます。
とりあえず今回は10個のjointを直線に引いて、それにspline IKを設定します。
Skeleton > Create IK Spline Handle でjointの根本と先端を選択してオプションはデフォルトの状態でIK spline Handleを作成します。
するとjoint上に直線のカーブが作成されるのでそれを選択して
ModelingメニューのCurves > Rebuild Curves のオプションを開きます。
「0to#Spans」と「Number of spans」で10に設定しました。
「3Cubic」を選択してカーブを曲線で制御できるようにします。
カーブのCVにそれぞれDeform > Cluster でClusterを作成します。
それぞれのClusterに Constrain > Point でポイントコンストレインをしてコントローラーでカーブ(joint)を動かせるようにします。
このようにコントローラーを動かせばjointがカーブに沿う形になります。
ただ、このようにカーブを曲げるとjointの長さがカーブに比べて短くなってしまいます。これで問題ない場合も多いですが、今回の場合はカーブの長さとjointの長さが一致している必要があります。
Zoo tools Proの「JOINTS ON CURVE」を使えばもっと簡単に
有料のツールですが、Zoo tools Proの「JOINTS ON CURVE」というツールを使うとカーブに沿ってjointを簡単に作成できます。このツールではカーブにjointの数を指定して作ることが出来ます。
ひねりの設定
今回は使いませんが、spline IK(IK spline)はひねりを加えることが出来ます。
IK splineのAttribute Editorの IK Solver Attributes > Advanced Twist Controls で設定することができます。
「Enable Twist Controls」にチェックをいれてTwistできるようにします。
「World Up Type」で「Object Rotation Up(Start/End」で
「World Up Object」にひねりを加えるコントローラー(根元側)を入れます。
「World Up Object 2」にひねりを加えるコントローラー(先端側)を入れます。
これでこれらのコントローラーを回転させると雑巾を絞るようにひねり(Twist)を加えることが出来ます。
spline IKのStretch(のび~る)設定
spline IKの場合は最初からカーブがあるのでそのカーブを利用します。
curveInfoノードでカーブの長さを測り、デフォルトの長さの比率を各jointのscaleXに入れます。
multiplyDivideノードは「Divide」にして、「input 2X」にデフォルトのカーブの長さである。「18」を入れます。
全体スケール対応はしていません。全体スケール対応については以下の記事を参考にしてください。
このようにカーブの長さに合わせてjointが伸びるようになりました。
しかし、これだけでは面白みがなく、たいして実用性もないのでちょっとしたギミックを追加します。
コメント