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 コンポーネントを扱えるようになります。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.