ボーンひとつで足をコントロールするリグを組む―Blender リグ

カテゴリ:blender

これは Reverse Foot Rig を組む をより複雑にしたものだ.ただしボーンひとつで踵立ちからつま先立ちまでコントロールできる.

リグのサンプル
ボーンひとつで足の動きをコントロール

上の動画のような,単純な Constraint では組めないような動きは Action Constraint を使うといい. これは Action に記録された動きをボーンやオブジェクトの位置回転スケールでコントロールできる.

デフォーム用ボーン

以下のような典型的な脚のボーンを用意する.

脚の初期ボーン
デフォーム用ボーン

Edit モード で D_lowerLeg.L と D_foot.L と D_toe.L を複製して IK_lowerLeg.L, IK_foot.L, IK_toe.L を作る. これは IK FK スイッチ を作るときに必要になる.

頭の D_ はメッシュの頂点を動かすデフォーム用ボーンを意味しており, このボーンに直接キーを打つべきではない. 後から変更される可能性が高いし,リグを再利用しにくい.

複製したボーンはすべてデフォームを無効(Pose モードで Shift + w > Deform)にする.

IK_* のボーンの動きを D_* ボーンがそのままコピーするよう,デフォーム用ボーンに Copy Rotation をつける. Pose モードで IK_lowerLeg.L を選択し Shift を押しながら D_lowerLeg.L を選択する; Ctrl + Shift + C > Copy Rotatioin を選択する. Copy Rotation の Space: を両方 Local Space にする. 残りの複製したボーンも同様に D_* ボーンに Copy Rotation をつける.

Copy Rotation の設定
Copy Rotation の設定

IK ターゲットの設定

Edit モードで IK_lowerLeg.L から押し出しで T_leg.L を作る. 親子づけを解除(Alt + P > Clear Parent)しデフォームを無効にする.

IK_lowerLeg.L に IK を設定する. Pose モードで T_leg.L と IK_lowerLeg.L を選択し, Shift + I > To Active Bone を選択する. IK の Chain Length: は 2 にする.

IK の設定
IK の設定

ここまでで IK が動作するようになる.

IK の動作テスト
IK の動作テスト

脚と足は別々にコントロールできることが望ましい; しかし現状では脚を動かしただけで足のボーンも回転してしまっている. これを防ぐために D_foot.L と IK_foot.L の Inherit Rotation のチェックを外す(Shift + W > Inherit Rotation).

Pose モードで IK_foot.L に Child of をつけることで,足の回転を T_leg.L で制御する. T_leg.L と IK_foot.L とを選択し,Ctrl + Shift + C > Chilf of を選択する. ボーンが変な向きを向くときは Properties パネルから Bone Constraints > Child Of > Set Inverse を押す.

ここまでで脚と足のおおまかな動作が可能になる.

足のテスト
IK をコントロールするボーンの動作テスト

足の回転軸用ボーンの設定

足は足先や指先,かかとで回転できると便利だ. そこで回転させたい位置にボーンを設置しコントロールできるようにする.

Edit モードで IK_toe.L から上方向へ押し出して M_pivotToe.L を作成する. IK_foot.L から上方向へ押し出して M_pivotFoot.L を作成する. かかとあたりに M_pivotAnkle.L を作成する. それぞれ親子づけを解除しデフォームを無効にする.

pivot ボーンの位置
pivot ボーンの位置

Edit モードで親子づけをする. 親から子の順番に M_pivotAnkle.L, M_pivotToe.L, M_pivotFoot.L, T_leg.L. アウトライナでは以下のように表示される.

pivot ボーンの階層
pivot ボーンの階層

これらの pivot ボーンは以下のような動作になる.

pivot ボーンの動作テスト
pivot ボーンの動作テスト

足の動きの作成

足の動きは複雑なので,単純な Constraint では制御できない. そこで足の動きを Action として作成し,その Action を Action Constraint とボーンとでコントロールする.

Dope Sheet の Action Editor で新しいアクションを作成する. フレーム1に初期位置で3つの pivot ボーンと IK_toe.L の rotation のキーを打つ(I).

フレーム1
フレーム1

フレーム 10 に移動し M_pivotFoot.L を60度回転する IK_toe.L を逆方向に 60度回転する. M_pivotFoot.L と IK_toe.L の rotation のキーを打つ.

フレーム 1 から 30 は地面を蹴り,つま先から着地する動作を表現している.

フレーム10
フレーム10

フレーム 20 に移動しすべてのボーンの回転を解除する. M_pivotToe.L を 70 度回転させる. M_pivotToe.L と M_pivotFoot.L,IK_toe.L の rotation のキーを打つ.

フレーム20
フレーム20

フレーム 30 に移動しフレーム1のキーをコピー(Shift + D)する. フレーム1の Dope Sheet Summery のキーをクリックすればそのフレームのすべてのキーを選択できる.

フレーム30
フレーム30

フレーム 40 に移動し M_pivotAnkle.L を 45 度上に回転させる. M_pivotAnkle.L の rotation のキーを打つ.

これはかかとまわりの回転をコントロールするために使われる.

フレーム40
フレーム40

アクションをコントロールするボーンの設定

Edit モードでかかとから後ろ向きへボーン FootRoll.L を作る. デフォームを無効にする.

Pose モードで FootRoll.L と M_pivotToe.L とを選択し, M_pivotToe.L に Action をつける(Ctrl + Shift + C > Action).

Action Constraint を設定する. To Action を kickGround(先ほど作成したアクション)にする. From Target: を X Rotation,Local Space にする. Target Range: を 0 から 45 にする. Action Range: を 1 から 30 にする. これらを M_pivotFoot.L と IK_toe.L にも同様に設定する.

地面を蹴るアクションの設定
地面を蹴るアクションの設定

FootRoll.L と M_pivotAnkle.L とを選択し,M_pivotAnkle.L に Action をつける. Action を同様に設定し Range を以下のように変更する. Target Range: を 0 から -45 にする. Action Range: を 30 から 40 にする.

かかとコントローラーの設定
かかとコントローラーの設定

Target Range: はボーンの可動範囲をきめる;この例では 45 度ですべてのアニメーションを再生し終える. Action Range: は再生するフレームの範囲をきめる.

FootRoll.L を回転させると以下のような動作ができる.

アクションの動作テスト
アクションの動作テスト

ポールターゲットと親子づけ

アニメーターが IK を操作するときに使うボーン Foot.L を作成する. 足の下に足ぐらいのの大きさで作るのがいいだろう. この Foot.L のデフォームを無効にする. M_pivotAnkle.L と FootRoll.L と Foot.L とを選択し,Foot.L を親として親子づけ(Keep Offset)する.

膝の先にポールターゲットとなるボーン P_leg.L を作成する. デフォームを無効にする. IK のターゲットにする. Pole Angle を 90(膝の先にくるよう)にする;反転する場合は -90. P_leg.L と Foot.L とを選択し,Foot.L を親として親子づけ(Keep Offset)する.

IK の設定
IK の設定
リグの完成図
完成図
ボーン階層
ボーン階層

関連記事
Blender 記事の目次