Version: 2023.1
言語: 日本語
ブレンドシェイプの操作
ヒューマノイドアニメーションのリターゲティング

Animator Override Controller

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 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 が使用されている
ブレンドシェイプの操作
ヒューマノイドアニメーションのリターゲティング