Version: 2022.3
言語: 日本語
アニメーション
アニメーションにおける回転

アニメーションシステム概要

Unity には、多機能で洗練されたアニメーションシステムがあり (Mecanim と呼ばれることも有ります)、以下を提供しています。

  • オブジェクト、キャラクター、プロパティを含む Unity のすべての要素に簡単なワークフローと設定で対応しています。
  • インポートされたアニメーションクリップ と Unity 内で作成されたアニメーションをサポートします。
  • ヒューマノイドアニメーションの リターゲティング (特定のキャラクターモデルのアニメーションを別のキャラクターモデルに適用すること)が可能です。
  • アニメーションクリップの配置を簡単なワークフローで行います。
  • アニメーションクリップ、遷移、それらの相互作用を簡単にプレビューできます。これによりアニメーション専門スタッフはプログラマーから独立して作業しやすくなり、ゲームのコードと連動させる前に、アニメーションのプロトタイプ作成やプレビューを行うことができます。
  • ビジュアルプログラミングツールでアニメーションの複雑な相互作用を管理します。
  • 様々なボディパーツを異なるロジックでアニメーション化できます。
  • レイヤーとマスクの機能を備えています。
Animator ウィンドウでの、アニメーションステートマシンの典型的な見え方
Animator ウィンドウでの、アニメーションステートマシンの典型的な見え方

アニメーションのワークフロー

Unity のアニメーションシステムは アニメーションクリップ のコンセプトに基づいています。このアニメーションクリップには、特定のオブジェクトの位置、回転、その他のプロパティの経時的な変化に関する情報が含まれています。各クリップは 1 つの直線的レコーディングと考えることができます。外部ソースからのアニメーションクリップは、Autodesk® 3dsMax® や Autodesk® Maya® などのサードパーティ製のツールを使用してアーティストやアニメーターが作成したものや、モーションキャプチャースタジオやその他のソースから作成されたものです。

アニメーションクリップは アニメーターコントローラー と呼ばれる構造化されたフローチャートのようなシステムに整理されます。アニメーターコントローラーは「ステートマシン」のような働きをし、現在再生中のクリップの追跡や、アニメーションの変更やブレンドのタイミングの追跡を行います。

ごく簡単なアニメーターコントローラーであれば、1–2 個のクリップしか含まれないこともあります。例えば回転と弾みのパワーアップの制御や、正確な時間に開閉する扉のアニメーション用などです。より高度なアニメーターコントローラーになると、メインキャラクターの全アクション用のヒューマノイドアニメーションが何十個も含まれていたり、プレイヤーがシーン内を動き回るときに滑らかな動きが出せるように複数のクリップ間で同時にブレンドが行われたりすることもあります。

Unity のアニメーションシステムには、ヒューマノイドキャラクターを処理するための数多くの特別な機能があり、ヒューマノイドアニメーションをあらゆるソース (モーションキャプチャー、アセットストア、その他のサードパーティーのアニメーションライブラリーなど) から自身のキャラクターモデルに リターゲット できます。マッスルの定義 の調整も行います。これらの特別な機能は Unityの アバター システムで可能であり、このシステムでは、ヒューマノイドキャラクターは共通の内部形式にマッピングされます。

アニメーションクリップ、アニメーターコントローラー、アバターの各オブジェクトは、Animator コンポーネント を通してゲームオブジェクトにまとめられます。このコンポーネントはアニメーターコントローラーへの参照と、(必要な場合は) このモデルのアバターを持っています。アニメーターコントローラーには、使用するアニメーションクリップへの参照が含まれています。

アニメーションシステムのさまざまな部分が関連している様子
アニメーションシステムのさまざまな部分が関連している様子

上記の図は、下記を示しています。

  1. アニメーションクリップは 外部ソースからインポート、または Unity 内で作成されます。この例では、[インポートされモーションキャプチャされたヒューマノイドアニメーション](Configuring theAvatar) です。
  2. アニメーションクリップがアニメーターコントローラーに配置されます。これは Animator ウィンドウ内のアニメーターコントローラーのビューの一例です。ステート (アニメーションや ネストになったサブステートマシンなどを表します) は、線で結ばれたノードとして表示されます。このアニメーターコントローラーは、Project ウィンドウ上でアセットとして存在します。
  3. リグを設定したキャラクターモデル (ここでは Astrella という宇宙飛行士) は固有のボーン構造を持っており、それが Unity の一般的な アバター 形式にマッピングされています。このマッピングは、アバターアセットとして、インポートされたキャラクターモデルの一部として保存されており、図のように Project ウィンドウにも表示されます。
  4. キャラクターモデルをアニメーション化するとき、Animator コンポーネントがアタッチされます。上の Inspector ビューには、アニメーターコントローラーアバター の両方が割り当てられた Animator コンポーネント が表示されます。アニメーターはこれらを一緒に使用してモデルをアニメーション化します。アバターの参照は、ヒューマノイドキャラクターをアニメーション化するときにのみ必要です。その他のアニメーションの種類 では、アニメーターコントローラーのみが必要です。

Unity のアニメーションシステムには多くの概念と用語があります。用語の意味を調べる必要がある場合は、アニメーション用語集 を参照してください。

非推奨の古いアニメーションシステム

大抵の場合、Mecanim の使用を推奨しますが、Unity には Unity 4 より前から存在する古いアニメーションシステムがあります。Unity 4 より前に作成された古いコンテンツを扱う場合、古いアニメーションシステムを使用する必要がある場合があります。古いアニメーションシステムに関する情報は、このセクション を参照してください。

アニメーション
アニメーションにおける回転