ブレンドシェイプ
ヒューマノイドアニメーションのリターゲティング

Animator Override Controller

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 Controller(左)と Animator Override Controller(右)
アイコンの比較: Animator Controller(左)と Animator Override Controller(右)

新規で作成した Animator Override Controller を選択したとき、インスペクターでは、まだ何も割り当てられていません。

Animator Controller の割り当てられていない Animator Override Controller
Animator Controller の割り当てられていない Animator Override Controller

Override Controller を使い始めるにあたり、インスペクター内で元のコントローラーアセットを新規の Override Controller に適用する必要があります。適用後、元のコントローラーで使用されていたアニメーションすべてが、Override Controller のインスペクターにリストアップされます。

コントローラーを Animator Override Controller のインスペクターへとドラッグ
コントローラーを Animator Override Controller のインスペクターへとドラッグ

オリジナルのクリップを上書きするためのアニメーションクリップを割り当てることができます。例えば、以下の画像ではすべてのアニメーションが “Ogre” バージョンのアニメーションで上書きされています。

Override Controller で新しいクリップが割り当てられている
Override Controller で新しいクリップが割り当てられている

Override Controller は、まるで Ogre(鬼)キャラクターのゲームオブジェクトの Animator Controller かのように Animator コンポーネントを扱えるようになります。

ゲームオブジェクトの Animator コンポーネント内で Override Controller が使用されている
ゲームオブジェクトの Animator コンポーネント内で Override Controller が使用されている
ブレンドシェイプ
ヒューマノイドアニメーションのリターゲティング