ボーンひとつで足をコントロールするリグを組む
これはReverse Foot Rig を組むをより複雑にしたものだ。ただしボーンひとつで踵立ちからつま先立ちまでコントロールできる。
上の動画のような、単純なコンストレイントでは組めないような動きはアクションコンストレイントを使うといい。アクションコンストレイントはアクションに記録された動きをボーンやオブジェクトの位置回転スケールでコントロールできる。
デフォーム用ボーン
以下のような典型的な脚のボーンを用意する。
エディットモード で D_lowerLeg.L と D_foot.L と D_toe.L を複製して IK_lowerLeg.L, IK_foot.L, IK_toe.L を作る。 これはIK FK スイッチを作るときに必要になる。
頭の D_ はメッシュの頂点を動かすデフォーム用ボーンを意味しており、このボーンに直接キーを打つべきではない。後から変更される可能性が高いし、リグを再利用しにくい。
複製したボーンはすべてデフォームを無効(ポーズモードで Shift + w > 変形)にする。
IK_* のボーンの動きを D_* ボーンがそのままコピーするよう、デフォーム用ボーンに回転コピーをつける。 ポーズモードで IK_lowerLeg.L を選択し Shift を押しながら D_lowerLeg.L を選択する。 Ctrl + Shift + C > 回転コピーを選択する。 回転コピーの使用空間を両方ローカルにする。 残りの複製したボーンも同様に D_* ボーンに回転コピーをつける。
IK ターゲットの設定
エディットモードで IK_lowerLeg.L から押し出しで T_leg.L を作る。 親子づけを解除(Alt + P > 親子関係をクリア)しデフォームを無効にする。
IK_lowerLeg.L に IK を設定する。 ポーズモードで T_leg.L と IK_lowerLeg.L を選択し、 Shift + I > アクティブボーンを選択する。 IK の チェーンの長さは 2 にする。
ここまでで IK が動作するようになる。
脚と足は別々にコントロールできることが望ましい。 しかし現状では脚を動かしただけで足のボーンも回転してしまっている。 これを防ぐために D_foot.L と IK_foot.L の回転を継承のチェックを外す(Shift + W > 回転を継承)。
ポーズモードで IK_foot.L にチャイルドコンストレイントをつけることで、足の回転を T_leg.L で制御する。T_leg.L と IK_foot.L とを選択し、Ctrl + Shift + C > チャイルドを選択する。 ボーンが変な向きを向くときは「プロパティパネル > ボーンコンストレイント > チャイルド > 逆補正を設定」を押す。
ここまでで脚と足のおおまかな動作が可能になる。
足の回転軸用ボーンの設定
足は足先や指先、かかとで回転できると便利だ。そこで回転させたい位置にボーンを設置しコントロールできるようにする。
エディットモードで IK_toe.L から上方向へ押し出して M_pivotToe.L を作成する。IK_foot.L から上方向へ押し出して M_pivotFoot.L を作成する。かかとあたりに M_pivotAnkle.L を作成する。それぞれ親子づけを解除しデフォームを無効にする。
エディットモードで親子づけをする。 親から子の順番に M_pivotAnkle.L, M_pivotToe.L, M_pivotFoot.L, T_leg.L。 アウトライナでは以下のように表示される。
これらの pivot ボーンは以下のような動作になる。
足の動きの作成
足の動きは複雑なので、単純なコンストレイントでは制御できない。 そこで足の動きをアクションとして作成し、そのアクションをアクションコンストレイントとボーンとでコントロールする。
ドープシートのアクションエディタで新しいアクションを作成する。 フレーム1に初期位置で3つの pivot ボーンと IK_toe.L の回転のキーを打つ(I)。
フレーム 10 に移動し M_pivotFoot.L を60度回転する IK_toe.L を逆方向に 60度回転する。 M_pivotFoot.L と IK_toe.L の rotation のキーを打つ。
フレーム 1 から 30 は地面を蹴り、つま先から着地する動作を表現している。
フレーム 20 に移動しすべてのボーンの回転を解除する。 M_pivotToe.L を 70 度回転させる。 M_pivotToe.L と M_pivotFoot.L、IK_toe.L の回転のキーを打つ。
フレーム 30 に移動しフレーム1のキーをコピー(Shift + D)する。 フレーム1のドープシート概要のキーをクリックすればそのフレームのすべてのキーを選択できる。
フレーム 40 に移動し M_pivotAnkle.L を 45 度上に回転させる。 M_pivotAnkle.L の回転のキーを打つ。
これはかかとまわりの回転をコントロールするために使われる。
アクションをコントロールするボーンの設定
エディットモードでかかとから後ろ向きへボーン FootRoll.L を作る。デフォームを無効にする。
ポーズモードで FootRoll.L と M_pivotToe.L とを選択し、 M_pivotToe.L にアクションコンストレイントをつける(Ctrl + Shift + C > アクション)。
アクションコンストレイントを設定する。 アクションに:を kickGround(先ほど作成したアクション)にする。 ターゲットから:を X 回転、ローカルにする。 ターゲット範囲:を 0 から 45 にする。 アクション範囲:を 1 から 30 にする。 これらを M_pivotFoot.L と IK_toe.L にも同様に設定する。
FootRoll.L と M_pivotAnkle.L とを選択し、M_pivotAnkle.L にアクションコンストレイントをつける。アクションコンストレイントを同様に設定し Range を以下のように変更する。 ターゲット範囲:を 0 から -45 にする。 アクション範囲:を 30 から 40 にする。
ターゲット範囲:はボーンの可動範囲をきめる。この例では 45 度ですべてのアニメーションを再生し終える。アクション範囲:は再生するフレームの範囲をきめる。
FootRoll.L を回転させると以下のような動作ができる。
ポールターゲットと親子づけ
アニメーターが IK を操作するときに使うボーン Foot.L を作成する。足の下に足ぐらいのの大きさで作るのがいいだろう。この Foot.L のデフォームを無効にする。M_pivotAnkle.L と FootRoll.L と Foot.L とを選択し、Foot.L を親として親子づけ(オフセットを保持)する。
膝の先にポールターゲットとなるボーン P_leg.L を作成する。デフォームを無効にする。IK のターゲットにする。ポールの角度を 90(膝の先にくるよう)にする;反転する場合は -90。P_leg.L と Foot.L とを選択し、Foot.L を親として親子づけ(オフセットを保持)する。