既存のキャラクターに別のキャラクターと同じ動きをさせる「リターゲット」の概要と実演をAutodesk Mayaを例に解説します。

リグ(リギング)とは
3Dモデルをアニメーションさせるための準備をする工程です。
3Dモデルにスケルトン(人型ボーン)を適用し、スキニング(表面のメッシュをスケルトンに合わせて変形する作業)を行います。
そして、リグ(アニメーションのためのコントローラー)を作成することで、効率的にアニメーションを行うことができます。
リターゲットとは
2つのキャラクターをボーンの種類毎にコンストレイント(親子関係にする)することで、同じ動きを再現させる技術です。
異なるキャラクターに同じ動きをさせたい場合が多いゲームなどでは必須の技術となります。
HumanIKの使用
今回はMayaのHumanIKという機能を使いリターゲットします。
HumanIKとはMayaに標準搭載されている人型リグツールです。
半自動的にリグを組んだり、リターゲットを行う際に使用します。
HumanIKの表示
HumanIKのパネルを開きます


画面右上の人型アイコン、または画面右側のHumanIKタブ(赤枠の箇所)をクリックすると、画面のようなパネルが表示されます。今回はこちらを使用します。
キャラクタの定義
サンプルを読み込む

画面下部の「HumanIKサンプルの読み込み」をクリックします。

画面に簡易的なキャラクターオブジェクトが表示されました。
HumanIKパネルに緑色のボーンが確認できます。
このサンプルが既にHumanIKのボーンの設定が完了していることを表しています。
キャラクタ名を変更する

HumanIKサンプルは現在「Dummy_Char」という名前で設定されています。
元の名前が長いので短く変更します。
Man1に変更します。
ソースを設定する
ソースの設定する場所

キャラクター:動かしたいキャラクター
ソース:モーションデータを持つキャラクター
キャラクター:が定義された状態です(名前が変更されMan1に変わりました)
今からソース:に適応するモーションを持ったボーンオブジェクトを読み込みます。
コントロールリグを読み込む
Man1にリグのついたボーンをリターゲットしてみましょう。

キャラクタ:Man1
ソース:コントロールリグ

コントロールリグがリターゲットされます。
黄色いボーンがコントロールリグのボーンで赤いハンドルがリグのコントローラーになります。

HumanIKのリグは様々な機能に対応しています。
例えばフルボディIKを選ぶことも出来ます(左側がフルボディIKのアイコン)

コントロールリグの解除
キャラクタ:Man1
ソース:なし

ソース:から「なし」を選択するとリグがMan1から解除されます。
アニメーション(ソース)を設定する
ソースの読み込む(コンテンツブラウザ)
Man1にモーションのついたボーンをリターゲットしてみましょう。
コンテンツブラウザからモーションファイルを選択します。

ウィンドウ>コンテンツブラウザ
を開きます。

コンテンツブラウザのウィンドウから
Examples/Animation/Motion_Capture/FBX/
Flip.fbx(バク中のモーション)
をダブルクリックします。

Flip.fbx(手前のボーン)が読み込まれました。

Flip.fbxをHumanIKの「キャラクター」に設定します。
設定の際の名前はFlip1となります。
HumanIKパネルに緑色のボーンが確認できます。
Flip.fbxも同様に既にHumanIKのボーンの設定が完了していることを表しています。

Flip1(バク中)を再生します。このモーションをMan1にリターゲットしていきます。
モーションのリターゲットを行う
ソースへの定義

キャラクタ:Man1
ソース:Flip1
に設定します。

Man1がFlip1の骨の位置に移動し、同じポーズをとりました。
モーションの再生(リターゲットの確認)

再生します。Man1がFlip1のモーションを再現するのを確認できました。リターゲット成功です。
キャラクター定義を消去する
キャラクター定義を消去する場合、キャラクター:で消去したい名前を選択した状態で
定義タブのごみ箱アイコンをクリックします。

コンテンツブラウザのキャラモデルを読み込む
先程はHumanIKのサンプルキャラクターを読み込みましたが、コンテンツブラウザのキャラクターもHumanIKのキャラクタとして読み込むことが出来ます。

コンテンツブラウザのウィンドウから
Examples/Animation/Rigs/
M4Y4_B07.maをダブルクリックします。こちらのHumanIK登録時の名前はM4Y4_B07:M4Y4_rigです。
HumanIKに移動します。

キャラクタ:M4Y4_B07:M4Y4_rig
ソース:Flip1
キャラクタ:M4Y4_B07:M4Y4_rigを選択します。
定義状況の確認
リターゲットの状況を確認します。先ほどの人型のキャラクターと異なる大きさ、比率のキャラクターですが、
Flip.fbxのポーズを維持していることが確認できます。

The left arm doesn’t seem to be parallel to the X axis.
再生ボタンで確認します。

大きさや比率の異なるキャラクターにおいてもリターゲットが可能であることが理解出来ました。
モーションデータのベイク
リターゲットの状態は、ボーンごとにリターゲットしているだけなので、
M4Y4_B07:M4Y4_rigにはアニメーション情報がついていません。
ベイクすることでM4Y4_B07:M4Y4_rigにモーションデータをコピーできます。

M4Y4_B07をキャラクタに設定した状態で
HumanIKのアイコン > ベイク処理 > スケルトンへベイク処理
を選択します。

M4Y4_B07のボーンにモーションがベイクされました。
これでリターゲット解除してもアニメーションが再生できます。
まとめ
既存のキャラクターに別のキャラクターと同じ動きをさせる「リターゲット」の概要と実演をAutodesk Mayaを例に解説しました。
- リターゲットについて理解しました。
- HumanIKの機能について理解しました。
- キャラクタを定義しました。
- ソースを定義しました。
- リターゲットを行いました。
- コンテンツブラウザのキャラモデルを読み込みました。
- モーションデータをベイクしました。
次回はご自身のキャラクターをHumanIKに定義する方法を解説します。
