ヒューマノイドアニメーションのリターゲティング
Mecanim の最も強力な機能の 1 つは、ヒューマノイドアニメーションをリターゲティングできることです。つまり、同じアニメーションセットを異なるキャラクターモデルに適用できます。リターゲティングは、アバターが設定されたヒューマノイドモデルに対してのみ可能です。設定されたアバターには、モデルのボーン構造に対応する機能が備わります。
推奨する階層構造
Mecanim アニメーションで作業するとき、シーンに以下の要素があるはずです。
- インポートされて、アバターのあるキャラクターモデル。
- Animator Controller アセットを参照している Animator コンポーネント。
- Animator Controller から参照されている一群のアニメーションクリップ。
- キャラクターのスクリプト。
- Character Controller など、キャラクター関連のコンポーネント。
プロジェクトは、別の有効なアバターのあるキャラクターモデルを持つ必要があります。
キャラクターモデル間でリターゲティングを行うには、以下の手順を実行します。
- キャラクター関連のコンポーネントを含む階層にゲームオブジェクトを作成します。
- モデルをゲームオブジェクトの子オブジェクトとして、アニメーターコンポーネントとともにおきます。
- アニメーターを参照するスクリプトが、ルートではなく子でアニメーターを探すようにします。これを行うには、
GetComponent<Animator>() の代わりに GetComponentInChildren<Animator>() を使用します。
別モデルで同じアニメーションを再利用するには以下が必要です。
- 元のモデルを無効化します。
- 希望するモデルをドラッグ&ドロップしてゲームオブジェクトの別の子オブジェクトにします。
- 新しいモデルの Animator Controller プロパティが同じコントローラーアセットを参照していることを確認します
- トップのレベルにあるゲームオブジェクトの、キャラクターコントローラー、Tranform、他のプロパティを調整して、新しいモデルでアニメーションが滑らかに動くことを確認します。