Animator Override Controller (アニメーターオーバーライドコントローラー) は、今ある Animator Controller (アニメーターコントローラー) の拡張を可能にするアセットです。使用する特定のアニメーションを置き換えますが、元データの構造やパラメーター、ロジックは維持します。
これによって、基本のステートマシーンから複数のバリエーションを作成することができますが、それぞれで使用されるアニメーションセットは個別のものとなります。例えば、ゲーム内にさまざまなタイプの NPC がいて、どのタイプ (ゴブリン、オーガ (鬼)、エルフ等) も、歩く、止まる (アイドリング)、座るなど、それぞれ独自のアニメーションを持っているような場合に便利です。
全 NPC タイプ用のロジックを持つ “基本” のアニメーターコントローラーを 1 つ作成することによって、その後、各タイプ向けにオーバーライドを作成し、それぞれのアニメーションファイルに使用することができます。
例として、以下の典型的なアニメーターコントローラーがあるとします。
これは、ブレンドツリーを伴うシンプルなステートマシンを持つアニメーターコントローラーです。4 つの方向を向くアニメーションとアイドル状態のアニメーションを制御します。
この一般的な NPC ステート マシンを拡張して、例えばオーガのタイプのキャラクターにのみ適用される独自のアニメーションを使用するには、AnimatorOverrideController を作成し、オーガのアニメーション クリップを元のアニメーションクリップの代わりとしてドロップします。オーガは、アイドリングと動き回る方法が異なる可能性があり、おそらくゆっくりとした重く、力強い動きをします。ただし、Animator Override Controller を使用すると、動きの状態の間の遷移とブレンド方法の基本的なロジックが、異なるアニメーションセットを持つ異なるキャラクター間で共有が可能であるため、ステート マシン自体の構築と変更に必要な作業を減らすことができます。
Animator Override Controller を作成します。 Assets -> Create メニューや、プロジェクトビューの Create ボタンから Animator Override Controller を選択してください。
Animator Override Controller は、Animator Controller のアイコンと良く似ており、“▶” の表記が “+” へと変わっただけです。
新規で作成した Animator Override Controller を選択したとき、インスペクターでは、まだ何も割り当てられていません。
Override Controller を使い始めるにあたり、インスペクター内で元のコントローラーアセットを新規の Override Controller に適用する必要があります。適用後、元のコントローラーで使用されていたアニメーションすべてが、Override Controller のインスペクターにリストアップされます。
オリジナルのクリップを上書きするためのアニメーションクリップを割り当てることができます。例えば、以下の画像ではすべてのアニメーションが “Ogre” バージョンのアニメーションで上書きされています。
Override Controller は、まるで Ogre キャラクターのゲームオブジェクトの Animator Controller かのように Animator コンポーネントを扱えるようになります。