Animator Override Controller (アニメーターオーバーライドコントローラー) は、今ある Animator Controller (アニメーターコントローラー) の拡張を可能にするアセットです。使用する特定のアニメーションを置き換えますが、元データの構造やパラメーター、ロジックは維持します。
これによって、基本のステートマシーンから複数のバリエーションを作成することができますが、それぞれで使用されるアニメーションセットは個別のものとなります。例えば、ゲーム内にさまざまなタイプの NPC がいて、どのタイプ (ゴブリン、オーガ (鬼)、エルフ等) も、歩く、止まる (アイドリング)、座るなど、それぞれ独自のアニメーションを持っているような場合に便利です。
全 NPC タイプ用のロジックを持つ “基本” のアニメーターコントローラーを 1 つ作成することによって、その後、各タイプ向けにオーバーライドを作成し、それぞれのアニメーションファイルに使用することができます。
例として、以下の典型的なアニメーターコントローラーがあるとします。
これは、ブレンドツリーを伴うシンプルなステートマシンを持つアニメーターコントローラーです。4 つの方向を向くアニメーションとアイドル状態のアニメーションを制御します。
汎用 NPC のステートマシーンを拡張して、オーガタイプのキャラクターに独自のアニメーションを適用するために、Animator Override Controller を作成し、オーガのアニメーションクリップで元のアニメーションクリップを置き換えることができます。ひょっとするとオーガは、汎用とは異なり鈍くて重く、より力強いアイドリングや動作するかもしれません。 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 コンポーネントを扱えるようになります。