Animator Override Controller は、今ある Animator Controller の拡張を可能にするアセットです。使用する特定のアニメーションを置き換えますが、元データの構造やパラメータ、ロジックは維持します。
これによって、基本のステートマシーンから複数のバリエーションを作成することができますが、それぞれで使用されるアニメーションセットは個別のものとなります。例えば、ゲーム内にさまざまなタイプの NPC がいて、どのタイプ(ゴブリン、オーガ、エルフ等)も、歩く、止まる(アイドリング)、座るなど、それぞれ独自のアニメーションを持っているような場合に便利です。
全 NPC タイプ用のロジックを持つ “base” Animator Controller を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 コンポーネントを扱えるようになります。