# Mecanim アニメーションシステム

> Learn how clips, controllers, avatars, and the Animator component work together.

Mecanim アニメーションシステムは[アニメーションクリップ](/engine/6000.0/manual/animation-section/animation-overview/animation-clips.md)に基づいています。アニメーションクリップには、キャラクターやゲームオブジェクトで時間経過とともに位置、回転、その他のプロパティがどのように変化するか、についての情報が含まれています。それぞれのアニメーションクリップは 1 つのレコーディングと考えることができます。外部ソースからのアニメーションクリップは、Autodesk® 3ds Max® や Autodesk® Maya® などのサードパーティ製のソフトウェアを使用してアーティストやアニメーターが作成したものです。

複数のアニメーションクリップを、[アニメーターコントローラー](/engine/6000.0/manual/animation-section/animation-overview/class-animator-controller.md)と呼ばれる構造化されたフローチャートのようなシステムに整理することができます。アニメーターコントローラーは[ステートマシン](/engine/6000.0/manual/animation-section/animation-overview/class-animator-controller/animation-state-machines.md)として機能し、再生中のアニメーションクリップを追跡したり、次のアニメーションクリップを再生するタイミングの基準を維持したりします。

例えば、簡単なアニメーターコントローラーであれば、回転やバウンスする回収可能な 1 つのアイテムに対して 1 つのアニメーションクリップしか含まれていないことがあります。ドア用のアニメーターコントローラーには、2 つのアニメーションクリップが含まれている場合があります。1 つはドアを開けるため、もうひとつはドアの閉めるためのものです。

より高度なアニメーターコントローラーには、アイドル、ターン、ウォーキング、ジョギングなど、キャラクターのアクションごとに 12 個のヒューマノイドアニメーションが含まれている場合があります。このアニメーターコントローラーは、[ブレンドツリーを](/engine/6000.0/manual/animation-section/animation-overview/class-animator-controller/animation-state-machines/class-blend-tree.md)使用して複数のアニメーションクリップをブレンドし、プレイヤーがシーン内を移動するときに滑らかな動きが出るようにすることとがあります。

Mecanim アニメーションシステムには、ヒューマノイドキャラクターを処理するための特別な機能があります。あるソースから別のソースへアニメーションを[リターゲット](/engine/6000.0/manual/animation-section/animation-overview/avatar-creationand-setup/retargeting.md)したり、キャラクターが正しく変形するように[マッスル定義を](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/models/importing/class-fbximporter/fbximporter-rig/muscle-definitions.md)調整する機能などです。例えば、サードパーティ製のアニメーションライブラリからアニメーションを独自のキャラクターにリターゲットし、その可動範囲を調整できます。これらの特別な機能は、ヒューマノイドキャラクターを共通の内部形式にマッピングする Unity の[アバター](/engine/6000.0/manual/animation-section/animation-overview/avatar-creationand-setup.md)システムを通じて利用できます。

アニメーションクリップ、アニメーターコントローラー、アバターは、[Animator コンポーネント](/engine/6000.0/manual/animation-section/animation-overview/class-animator.md)によって 1 つのゲームオブジェクトにまとめられます。このコンポーネントは、アニメーターコントローラーを参照し、（必要な場合は）モデルのアバターも参照します。アニメーターコントローラーもアニメーションクリップを参照します。


**Mecanim アニメーションシステムのパーツの接続方法:**
![](/api/media?file=/engine/6000.0/media/images/MecanimHowItFitsTogether.jpg)

上の図は、以下のワークフローを示しています。

1. アニメーションクリップは[外部ソースからインポート](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/models/importing/class-fbximporter/class-animation-clip.md)されるか、Unity 内で作成されます。この例では、[インポートされたヒューマノイドアニメーション](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/models/importing/configuringthe-avatar.md)を示しています。
2. アニメーションクリップがアニメーターコントローラーに配置されます。これは Animator ウィンドウ内のアニメーターコントローラーを示しています。ステート (アニメーションやネストになったサブステートマシンなどを表します) は、線で結ばれたノードとして表示されます。このアニメーターコントローラーは、Project ウィンドウでアセットとして存在します。
3. リグを設定したキャラクターモデルである宇宙飛行士 `Astrella` は、Unity の[アバター](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/models/importing/class-fbximporter/fbximporter-rig/class-avatar.md)形式にマップされた固有のボーン構造を持っています。このマッピングは、アバターアセットとして、インポートされたキャラクターモデルの一部として保存され、Project ウィンドウにも表示されます。
4. キャラクターモデルをアニメーション化するときに、Animator コンポーネントがアタッチされます。Inspector ウィンドウでは、[Animator コンポーネント](/engine/6000.0/manual/animation-section/animation-overview/class-animator.md)に[アニメーターコントローラー](/engine/6000.0/manual/animation-section/animation-overview/class-animator-controller.md)と[アバター](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/models/importing/class-fbximporter/fbximporter-rig/class-avatar.md)が割り当てられています。アニメーターはこれらを一緒に使用してモデルをアニメーション化します。アバターの参照は、ヒューマノイドキャラクターをアニメーション化するときにのみ必要です。[その他のアニメーションの種類](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/models/importing/generic-animations.md)では、アニメーターコントローラーのみが必要です。

以下のトピックでは、Mecanim アニメーションシステムについて詳しく説明します。

* [アニメーションクリップ](/engine/6000.0/manual/animation-section/animation-overview/animation-clips.md)
* [ヒューマノイドアバター](/engine/6000.0/manual/animation-section/animation-overview/avatar-creationand-setup.md)
* [Animator コンポーネント](/engine/6000.0/manual/animation-section/animation-overview/class-animator.md)
* [アニメーターコントローラー](/engine/6000.0/manual/animation-section/animation-overview/class-animator-controller.md)
* [アニメーターオーバーライドコントローラー](/engine/6000.0/manual/animation-section/animation-overview/animator-override-controller.md)
* [Playable API](/engine/6000.0/manual/animation-section/animation-overview/playables.md)
* [パフォーマンスおよび最適化](/engine/6000.0/manual/animation-section/animation-overview/mecanim-peformanceand-optimization.md)
* [Mecanim の FAQ](/engine/6000.0/manual/animation-section/animation-overview/mecanim-faq.md)
