アニメーション
アニメーションクリップ

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

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

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

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

Unity のアニメーションシステムは、アニメーションクリップのコンセプトに基づいています。アニメーションクリップには、特定のオブジェクトの位置や角度その他のプロパティーが時間経過とともにどのように変化させるかの情報が含まれています。ひとつひとつのクリップを一つのリニアレコーディングと考えることができます。外部ソースのアニメーションとは、アーティストやアニメーターによって Max や Maya などのサードパーティ製ツールで作成されたり、モーションキャプチャースタジオで撮影されたものです。

インポートされたアニメーションクリップは、アニメーターコントローラーと呼ばれる、構造化された、フローチャートのようなシステムに落とし込まれます。Animator Controller は、現時点でどのクリップが再生されていなければならないか、またアニメーションがどの時点で変化したりブレンドされたりしなければならないかを記録する、“アニメーションステートマシン”として機能します。

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

Unity のアニメーションシステムは、ヒューマノイドのキャラクター用に多くの特殊機能を搭載しています。これにより、あらゆるソース(例:モーションキャプチャー、アセットストア、その他サードパーティのアニメーションライブラリーなど)のヒューマノイドアニメーションを ヒューマノイドアニメーションのリターゲティング して任意のキャラクターモデルに適用したり、マッスルの設定を調整したりすることができます。これらの特殊機能は、Unity の アバターシステムによって可能となっています。アバターシステムでは、ヒューマノイドのキャラクターが通常の内部形式にマッピングされます。

アニメーションクリップアニメーターコントローラーアバター はすべて、Animator コンポーネントを通してゲームオブジェクトと繋がります。このコンポーネントは特定のひとつの アニメーターコントローラーや、(必要な場合は)そのモデルのアバターに参照されます。アニメーターコントローラーも、同様に、その使用している アニメーションクリップ への参照を持っています。

アニメーションシステムの各部分の繋がりを示した図
アニメーションシステムの各部分の繋がりを示した図

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

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

Unity のアニメーションシステム(「 Mecanim 」)には、さまざまな概念や専門用語が伴います。用語などの意味を調べたい場合は、アニメーションと Mecanim 用語を参照してください。

旧アニメーションシステム

多くの場合 Mecanim の使用が推奨されますが、Unity では Unity 4 以前からある旧アニメーションシステムも維持しており、Unity 4 以前に作成された古いコンテンツを扱う場合はこれを使用しなければならない事もあります。旧アニメーションシステムについての詳細は、旧アニメーションシステムを参照してください。

Unity では、ワークフローを Mecanim に統合することによって、すべての旧アニメーションシステムの使用を徐々に廃止していく予定です。

アニメーション
アニメーションクリップ