(当記事では、MechaStudioの拡張機能である拘束(コンストレイント)の作成機能を使用しています。)
目次
脚のリグの概要
脚のリグは、「足」のコントローラーで脚のIKハンドルと足首を操作し、「かかと」のコントローラーでかかとの回転を操作する仕組みになります。
各コントローラーの作成
腰や腕のコントローラーと同じ要領で、各ジョイントの位置にコントローラー用の立方体オブジェクトを作り、ポリライン表示にします。
「LeftAnkle」(左足首)ジョイントの位置には、サイズ「10、10、25」の「LeftFootBox」(左足)コントローラーを作ります。
腰のコントローラーの要領でポリゴンの頂点を移動させ、足首から先のジョイントが収まるようにし、地面に対する位置が見やすいようにコントローラーの底部をシーンの原点あたりに合わせます。
「LeftBall」(左足の指の付け根)ジョイントの位置には、サイズ「5、5、25」の「LeftHeelBox」(左かかかと)コントローラーを作ります。
ポリゴンの頂点を移動させ、指の付け根のジョイントが収まるようにし、地面に対する位置が見やすいようにコントローラーの底部をシーンの原点あたりに合わせます。
さらに、「LeftFootBox」(左足)コントローラーの前方「100」上方「25」あたりの位置に、IKの極ベクトル用の「LeftFootPoleVector」(左足極ベクトル)ヌル オブジェクトを配置します。
各コントローラを配置したら、オブジェクト パネルで階層位置を修正します。
「LeftFootBox」(左足)コントローラーは、全てのコントローラの親である「Base」(ベース)コントローラーの子の階層とします。
「LeftHeelBox」(左かかかと)コントローラーと「LeftFootPoleVector」(左足極ベクトル)ヌル オブジェクトは、その子の階層とします。
(sakura_rigged2_7.toy)
脚のIKハンドルの作成
IKによってひざの曲がる向きを指定するため、オブジェクト ウィンドウ(Ctrl+Q)の「全般」タブで「LeftKnee」(左ひざ)ジョイントの「回転」を「20、0、0」にセットすることで、左ひざを「20」度ほど曲げておきます。
この状態で、ツール バーの「IKハンドル ツール」(I)をクリックして、
①「LeftPelvis」(左脚の付け根)ジョイント、②「LeftAnkle」(左足首)ジョイントをクリックしてIKハンドルを作成し、オブジェクト ウィンドウ(Ctrl+Q)で「LeftAnkleIK」(左脚首IK)とリネームしておきます。
続けて、①「LeftAnkle」(左足首)ジョイント、②「LeftBall」(左足の指の付け根)ジョイントをクリックしてIKハンドルを作成し、オブジェクト ウィンドウ(Ctrl+Q)で「LeftBallIK」(左足の指の付け根IK)とリネームしておきます。
オブジェクト パネルで、作成した「LeftAnkleIK」(左脚首IK)IKハンドルを「LeftHeelBox」(左かかと)コントローラーの子の階層に配置します。
「LeftBallIK」(左足の指の付け根IK)IKハンドルは「LeftFootBox」(左足)コントローラーの子の階層に配置します。
「位置拘束」を利用したオブジェクトの位置合わせ
IKハンドルを作成する際に、IKハンドルとコントローラーとの位置がズレてしまっているので、ここで調整しておきます。
ここでは、「位置拘束」を使って、IKハンドルの位置を修正してみます。ツール バーの「位置拘束 ツール」をクリックし、
ツール ウィンドウ(Ctrl+T)の「位置の差分をオフセットにする」がOFFになっているのを確認し、
①「LeftBallIK」(左足の指の付け根)IKハンドルと②「LeftHeelBox」(左かかと)コントローラーをクリックし、さらに③「LeftAnkleIK」(左足首IK)IKハンドルと④「LeftFootBox」(左足)コントローラーをクリックします。
すると右図のように、各IKハンドルの位置が、「位置拘束」によってそれぞれのコントローラーの原点位置に移動しました。
最後に、各IKハンドルについて、オブジェクト ウィンドウ(Ctrl+Q)の「位置拘束」タブの「削除」ボタンをクリックすることで、位置拘束を削除します。
(sakura_rigged2_8.toy)
つま先のIKハンドルの作成
ツール バーの「IKハンドル ツール」(I)をクリックして、
①「LeftBall」(左足の指の付け根)ジョイント、②「LeftToe」(左つま先)ジョイントをクリックしてIKハンドルを作成し、オブジェクト ウィンドウ(Ctrl+Q)で「LeftToeIK」(左つま先IK)とリネームしておきます。
オブジェクト パネルで、「LeftBallIK」(左足の指の付け根IK)IKハンドルと同じく、「LeftFootBox」(左足)コントローラーの子の階層に配置します。
IKの極ベクトル ターゲットのセット
オブジェクト ウィンドウ(Ctrl+Q)の「IK拘束」タブで、「LeftAnkleIK」(左足首IK)IKハンドルの「極ベクトル ターゲット」のチェックをONにし、「LeftFootPoleVector」(左足極ベクトル)ヌル オブジェクトを選択します。
脚のリグの仕組み
これで脚のリグが完成しました。各コントローラーの動作を確認してみます。
「LeftFootBox」(左足)コントローラーを移動させることで、ひざの曲がり具合と足首の位置を操作することができます。
「LeftAnkleIK」(左足首IK)IKハンドルの親である「LeftHeelBox」(左かかと)コントローラーや、「LeftToeIK」(左つま先IK)IKハンドルは「LeftFootBox」(左足)コントローラーの子になっているためです。
「LeftHeelBox」(左かかと)コントローラーを回転させることで、つま先の方向を維持したまま、足首の回転を操作することができます。
「LeftAnkleIK」(左足首IK)IKハンドルは「LeftHeelBox」(左かかと)コントローラーの子であるためその影響を受けますが、
「LeftToeIK」(左つま先IK)IKハンドルは「LeftHeelBox」(左かかと)コントローラーの子ではなく、その親である「LeftFootBox」(左足)コントローラーの直接の子であるため、その影響を受けないためです。
「LeftFootBox」(左足)コントローラーを回転させることで、足首の回転とひざのねじれ方向を操作することができます。
「LeftAnkleIK」(左足首IK)IKハンドルの親である「LeftHeelBox」(左かかと)コントローラーや、「LeftToeIK」(左つま先IK)IKハンドルは「LeftFootBox」(左足)コントローラーの子になっているためです。
さらに、「LeftAnkleIK」(左足首IK)IKハンドルの極ベクトル ターゲットである「LeftFootPoleVector」(左足極ベクトル)ヌル オブジェクトも「LeftFootBox」(左足)コントローラーの子になっているため、「LeftFootBox」(左足)コントローラーが回転すると「LeftAnkleIK」(左足首IK)IKハンドルの極ベクトルが変化するためです。
このリグの仕組みによって、「足」と「かかと」の2つのコントローラーによって脚全体を簡単に操作することができます。
(sakura_rigged2_9.toy)