リギング の概要
リギングとは、キャラクターオブジェクトを動かすための骨格と、ポリゴンオブジェクトを骨格と関連づけて動かす仕組みを作ることです。
1. スケルトン・ジョイント・ボーン・コントロールリグ
キャラクターのアニメーションでは、動かす方法に応じて2通りのリグの作り方があります。
ひとつは、骨格を動かすためのコントローラーオブジェクトを設置し、そのコントローラーを移動・回転させてキーフレーム を設定する方法です。 操り人形を動かすようなイメージです。 この場合、骨格以外にコントロールオブジェクトも必要になります。
もうひとつは、モーションキャプチャーシステムを使って作成したモーションデータを読み込み、その動きをキャラクターオブジェクトのスケルトンに移植(リターゲット )する方法です。 この場合はコントロールオブジェクトは必要なく、オブジェクトに関連づけられたスケルトン(骨格)があればアニメーションを作成することが可能です。
モーションキャプチャ したFBXファイルを使ってアニメーションを作成するモーションのリターゲットの概要についてはPDFファイル「リギングからモーションのリターゲット 概要」を参照してください。
また、詳しいリターゲット 方法については、こちら「 14.キャラクタ定義とモーションのリターゲット」を参照してください。
スケルトン = ジョイント + ボーン
下図は、キャラクターオブジェクトに合わせたスケルトン(骨格)を作成した様子です。
下図はスケルトンだけを標示しています。
スケルトンは「ジョイント」と「ボーン」で構成されます。
重要なのは「ジョイント」の位置(丸い部分)です。 「ボーン」はジョイントとその子である次のジョイントとの親子関係を示しているだけです。
したがって、末端のジョイントには子ジョイントがないので、ボーンもありません。
コントロール・リグ
キーフレーム アニメーション制作においてはジョイントを直接移動・回転させることはしません。 必ずコントロールリグを作成し、これを要所のジョイントに関連づけ(コンストレイント)、コントロールリグをあやつり人形のように操作してキャラクターを動かします。
下の動画では腕の付け根に設置したコントロールリグの回転、ヒップ、脚のコントロールリグの移動を行なっています。
コントロール・リグは、一般的に円や四角形などのカーブオブジェクトで作成します。 カーブオブジェクトはレンダリングされないので、コントロールオブジェクトとしては都合が良いからです。
しかし、Mayaのクイックリグでリグを作成した場合は、[ Effector ] という名称のコントロール・リグが自動的に作られるので、大変便利です。
2. FK とIK
ジョイントは関節なので、動きの基本は「回転」です。 ジョイントをアウトライナで展開してみると分かりますが、[ Hip ]が全ての親であり、[ Spine(スパイン=背骨) ] ➡︎ [ Neck(ネック=首) ] ➡︎ [ Head(ヘッド= 頭) ] など 親子関係の階層構造になっています。 親のジョイントを動かすとその子階層のジョイント全てが追従して動きます。 逆に子階層のジョイントを動かしても親は影響されません。 頭の向きを回転させる場合などは、頭だけ操作すれば良いことになります。
このように親子の階層に準じた回転による動きの仕組みを「FK = フォワード・キネマティクス」と呼びます。
頭を回転させたり、手首を曲げる程度ならFKだけでも問題ありませんが、歩くために腿、ひざ、足首、つま先を連携させて動かしたり、手を伸ばして物を掴むなどの複雑なアニメーションをさせる場合は大変な作業量になってしまいます。
このようなアニメーションに対応するのが、「IK = インバース・キネマティクス」という仕組みです。
IKは、FKとは反対に先端の子ジョイントだけを移動します。例えば、[ LeftUpLeg(太ももの付け根)]ジョイントから[ LeftFoot (足首)]ジョイントへIKを設定すると、足首にIKハンドルが作られます。この足首のIKハンドルを移動するだけで、設定した親ジョイントまでの中間のジョイント[ LeftLeg (ひざ)]ジョイントが連動して動かせるようになります。 正にあやつり人形のような操作感でアニメーションを作成することが可能です。
このように、IKは、先端のハンドルを移動するだけで、親階層のジョイントを自動的に移動・回転できるのが特長です。
Mayaのクイックリグと Human IKは、このようなIKの仕組みも自動的に設定してくれるので、作業時間の短縮になります。
3. スキニング
リギングの最後の工程がスキニングです。 スケルトンを組んだだけでは、キャラクタ−オブジェクトを動かすことはできません。
下図のように、この段階ではスケルトンとオブジェクトは何も関連付けられていないからです。
スケルトンの各ジョイントにキャラクターオブジェクトのポリゴン頂点を関連付ける行程を「スキニング」と呼びます。そして、スケルトンに関連付けられたオブジェクトを「スキン オブジェクト」と呼んでいます。
スキニングによって始めてキャラクターオブジェクトを動かすことが可能になります。これらの全ての行程を総称して「リギング」または「リグを組む」などと称しています。
本来、ジョイントの作成や親子付けや名前付けからスキニングまで、それぞれのツールを使って手作業でリギングしますが、クイックリグを使うことで一連の作業をひとつのパネルの設定で完了することができます。
クイックリグの設定パネル最後の項目にスキニング がありますが、スキニング をしてしまうとジョイントの追加や修正が必要な場合、かえって手間がかかってしまいます。 指や髪の毛、その他人体の基本骨格以外のジョイントをカスタマイズする場合は、スキニング は後回しにするようにしてください。
4. リギングの準備
モデリングが完全に完了し、UV編集が済んでからリギングを行います。
クイックリグを使う場合、手作業でリグを作成する場合、いずれの場合も準備として次のことを忘れないようにしてください。
- 中心点(マニュピレータ)を接地点へ移動
- トランスフォームのフリーズ
- ヒストリの削除
中心点(マニュピレータ)を接地点へ移動
キャラクターオブジェクトを選択、Dキーを押しながらさらにVキーを押して、移動ツールのYハンドルをキャラクターの足元へスナップ移動してください。
もしマニュピレータがグリッド原点に合っていない場合は、さらにオブジェクトごと原点にXキーを押しながらスナップ移動させてください。
トランスフォームのフリーズ
クイックリグ でリグを組み込む前に、モデリングの作業過程で行なった移動、回転、スケールなどの見かけ上の数値を初期状態に戻す必要があります。
この作業を忘れると、後でオブジェクトとリグがずれてしまうなどの不具合が起こります。
この見かけ上の数値を初期状態にする命令を「トランスフォームのフリーズ」と呼びます。
オブジェクトを選択し、チャネルボックスでトランスフォームの数値を確認してください。 特にマニュピレータを移動してからオブジェクトを移動した場合などは、「移動Y:」の値が 0 ではなく数値が入っているはずです。
トランスフォームのフリーズは、オブジェクトが選択されている状態で、 メインメニューの 修正 > トランスフォームのフリーズ を選択してください。
または、下図のアイコンをクリックするだけでトランスフォームのフリーズが可能です。
結果としてビューポートでは変化ありませんが、チャネルボックスの「移動Y:」の値が 0 に変更されています。
これで見かけ上は「移動していない」状態になりました。
ヒストリの削除
まだ準備が必要です。
チャネルボックスの「入力」という項目の下にはたくさんのヒストリが表示されています。
これらは、オブジェクトに対して実行された命令の記録です。 これもクイックリグ を実行する上で不具合を起こす原因となるので削除しておきます。
削除するためには、「ヒストリの削除」を使います。
では、オブジェクトを選択し、 メインメニューの 編集 > 種類ごとに削除 > ヒストリ を選択してください。
または、下図のアイコンをクリックするだけで、ヒストリの削除が可能です。
チャネルボックス で確認すると「入力」項目が削除されています。
これでクイックリグ の準備完了です。
クイックリグ を適用する前に必ず実行してください。
続いての作業クイックリグを使用したリギングについては、こちらのページ「クイックリグ」を参照してください。