Unreal Engine には、キャラクターやオブジェクトのランタイム アニメーション システム、レンダリング済みシネマティック コンテンツ、新しいアニメーション コンテンツを、エンジン内で直接制作するための一連のアニメーション ツールとエディタが付属しています。それらはリアルタイムで機能するため、すべての変更内容を即座に確認できます。
Maya ユーザーにとって、Unreal Engine は、状態駆動型ロジックを使用してゲームに合わせたインタラクティブ コンテンツ、および再生されるだけでなくユーザーによって「プレイされる」インタラクティブなエクスペリエンスにより、リアルタイム環境でアニメーションにアプローチするものになっています。 Unreal Engine の環境は、このタイプの開発に合わせられていますが、このタイプのエクスペリエンスにする必要があるということではありません。 オフライン ワークフローを、共同作業およびライティングとマテリアルに対する即時フィードバックを重視する完全リアルタイム環境に適応させることができ、シーンをレンダリングする長いターンアラウンド時間なしで選択を行うことができるため、効率が向上します。
このセクションでは、Maya と Unreal Engine の概念を比較しながら、Unreal Engine におけるアニメーションの主な構成要素を紹介します。また、エンジン内でアニメーションを作成するワークフローや、外部からインポートしたコンテンツを活用する手順の概要を説明し、あわせて活用できる追加のアニメーションツールについても紹介します。
主要な概念の比較
Maya の概念とそれに相当する Unreal Engine の概念を以下に示します。
| Maya | Unreal Engine |
|---|---|
ジョイントとスケルトン | スケルトン |
リギング | スケルトン |
スキニング | スケルタルメッシュ |
キーフレーム アニメーション | インポートされたアニメーション アセット |
アニメーションのエクスポート (OBJ、FBX など) | アニメーションシーケンス |
ブレンド シェイプとドリブン キー | モーフ ターゲット、ブレンド スペース、アニメーション カーブ |
アニメーション レイヤー/ノンリニア アニメーション (NLA) | アニメーションレイヤー |
グラフ エディタ | シーケンサー カーブとアニメーション グラフ |
IK、FK、HumanIK | コントロールリグ、リアルタイム IK、非リアルタイム IK リターゲティング |
Trax エディタ (ノンリニア編集) | アニメーション モンタージュとシーケンサー |
物理/ダイナミクス | 物理ベースのアニメーション システム |
アニメーション コンポーネント
オブジェクトをアニメートし、エディタでインポートするか作成したアニメーションのために使用する、Unreal Engine のさまざまなコンポーネントのリストを以下に示します。
| Unreal Engine コンポーネント | 説明 |
|---|---|
スケルトンとスケルタルメッシュ | スケルトンは、スケルタルメッシュ (スキン メッシュ) 内でボーン (ジョイントと呼ばれることもある) を定義するために使用されます。 ボーンは、いろいろな意味で、その位置は実際の生物学的な骨格を模倣しており、キャラクターのメッシュがどのように変形するかを制御します。 スケルトンは、アニメーション データ、全体的なスケルタル階層、およびアニメーション シーケンスを格納および関連付けるために使用されます。 スケルトンは、さまざまなスケルタルメッシュやアニメーションの間で共有することができます。 スケルタルメッシュには、スケルトンを使用して、アニメートするために使用されるボーン データを格納する、キャラクターまたはオブジェクトのビジュアル メッシュが入っています スケルタルメッシュは、アニメーションを再生し、キャラクターの動作をリアルタイムで制御するためのロジックを構築します。 詳細については、以下のトピックを参照してください。 |
アニメーション シーケンス | スケルタルメッシュ上で再生してアニメートできるアニメーション データが入っているアニメーション アセットです。 アニメーション シーケンスには、特定の時点でスケルタルメッシュに割り当てられているスケルトンの位置、回転、スケールを指定するキーフレームが入っています。 順次再生時にキーフレーム間でブレンドすることによって、スケルトンの動きによってキャラクターがアニメートされます。 アニメーション シーケンスは特定のスケルトン アセットに結び付けられているため、同じスケルトン アセットを使用するスケルタルメッシュ間でアニメーションを共有することができます。 詳細については、以下のトピックを参照してください。 |
ブレンド スペース | 複数のアニメーションまたはポーズを 1 次元または 2 次元のグラフにプロットすることによって、それらをブレンドできるようにするアセットです。 ゲームプレイ入力または他の変数でブレンドを制御できるアニメーション ブループリント内で、このグラフを参照することができます。 ブレンド スペースを使用すると、実質的にどのようなタイプのブレンド配置でもアニメーションで使用できます。 ブレンド スペースは、ビジュアル グリッドを使用して、入力に基づいてアニメーション間を滑らかに補間する、インタラクティブ スライダーまたはドリブン キーと考えることができます。 ブレンド スペースは、アイドル状態/歩行/走行のサイクル アニメーション間の滑らかなブレンドによく使用されますが、速度と方向を考慮することもできます。 詳細については、「ブレンド スペース」を参照してください。 |
コントロールリグ | エンジン内で直接キャラクターをリギングおよびアニメートするための一連のアニメーション ツールであり、外部ツールでリギングおよびアニメートする手間を省くことができるようになります。 コントロールリグを使用すると、キャラクター上にカスタム コントロールを作成およびリギングし、シーケンサー内でアニメートし、他のさまざまなアニメーション ツールを使用してワークフローを支援することができます。 詳細については、「コントロールリグ」を参照してください。 |
モジュラー コントロールリグ | モジュールと呼ばれる、一連の事前ビルド済みコントロールリグ アセットを組み合わせることによって作成されたデジタル アニメーション リグです。 モジュールは、キャラクターのボディの一部 (腕、脚、脊椎など) を表すコントロールリグ コンポーネントであり、これを使用すると、コントロールのセットを自動的に作成してボディのパーツをリギングし、アニメーション データを受け取ることができるようになります。 モジュールを互いに接続して、関節でスケルトンを駆動するための完全なアニメーション リグを形成することができます。 詳細については、「モジュラー コントロールリグ」を参照してください。 |
カーブ エディタ | このエディタを使用して、アニメートしたオブジェクトのキーフレームを変更および微調整することができます。 カーブ エディタのグラフでは、既存のキーフレームの編集、新規キーフレームの作成、接線の編集を行うことができ、その組み込みツールを使用してアニメーション カーブを調整することもできます。 カーブ アセットは、エンジンの他のエディタ (Niagara など) でも使用できますが、アニメーションを操作するためにシーケンサーで広く使用されています。 |
シーケンサー | キャラクター、カメラ、プロパティ、その他のアクタを時間の経過に合わせてアニメートするためのシネマティック エディタです。 トラックとキーフレームをタイムラインに沿って作成および変更できる、ノンリニア編集環境を備えています。 詳細については、以下のトピックを参照してください。 |
アニメーション モード | レベル エディタは、テレインのスカルプティングやペイント、ジオメトリのモデリング、アニメートなどの別の用途で機能するように、別のモードにすることもできます。 レベル エディタのアニメーション モードは、シーケンサーを使用してレベル アクタやコンポーネントをレベル内で直接アニメートする手段を提供し、すべてが、WYSIWYG であるリアルタイム環境で動作します。 アニメーション モードには、コントロールリグ用の以下のツールがあります。
詳細については、以下のトピックを参照してください。
|
アニメーション ブループリント | シミュレーション時またはゲームプレイ時にスケルタルメッシュのアニメーションを制御する特別なブループリントです。 アニメーション グラフをアニメーション ブループリント エディタ内で編集することで、アニメーションのブレンド、スケルトンのボーンの制御、フレームごとに使用されるスケルタルメッシュの最終的なアニメーション ポーズを定義するロジックの作成を行うことができます。 詳細については、以下のトピックを参照してください。 |
ステート マシン | 再生できる特定のアニメーションおよび再生できるタイミングを定義するために、アニメーション ブループリント内で構築できるモジュラー システムです。 このタイプのシステムは主に、アイドル状態、歩行、走行、ジャンプといったキャラクターの動作の状態 (ステート) にアニメーションを関連付けるために使用されます。 これを使用すると、それぞれの時間に再生するアニメーションによって定義された「ステート」を作成でき、さまざまなタイプの遷移を作成して、他のアニメーション ステートに切り替えるタイミングを制御することができます。 これにより、過度に込み入ったアニメーション グラフを使用しなくても、複雑なアニメーション ブレンドの作成を単純化できるようになります。 詳細については、「ステート マシン」を参照してください。 |
その他のアニメーション ツール
Unreal Engine には、エンジン内でプロジェクトを完全にアニメートできるようにするための多数のツールとシステムが付属しています。 その他のツール、システム、および Unreal Engine でアニメートする際に考慮すべきことをいくつか以下に取り上げています。
アニメーションのリターゲティング
アニメーション リターゲティングとは、同じスケルトン アセットを使用しているがプロポーションが大きく異なる複数のキャラクターの間で、アニメーションを再利用できる機能です。 これにより、複数のアニメーション間でアニメーション アセットを共有できるため、まったく新しいアニメーションを作成する必要がなくなります。
アニメーションのリターゲティングを使用するには次の 2 つの方法があります。
リターゲティングしているキャラクターのスケルトンで、アニメーションの作成対象と同じスケルトン アセットを使用する
リターゲティングしているキャラクターのスケルトンで、同じスケルトン アセットを使用せず、 代わりに、リグを使用して、そのスケルトンのボーン情報を他のキャラクターに渡す
次の例では、同じスケルトン アセットを使用している 3 つのキャラクターがありますが、プロポーションは互いにすべて異なっています。 リターゲティング前は、スケルトンはそれぞれのプロポーションに関係なく、同じスケルトンに変形されています。 リターゲティング後は、それぞれのキャラクターで、キャラクターのプロポーションが維持されています。
詳細については、以下のトピックを参照してください。
物理ベース アニメーション
UE では、物理シミュレーション (ラグドール、クロス、動的ヘア) を使用して、リアリティを高められます。
Maya の通常のワークフローよりもロボット的な機能であるキーフレーム アニメーションを使用して、シームレスにブレンドできます。
物理駆動型アニメーションでは、シミュレーションの結果が、キーフレーム化されたアニメーションとともにブレンドされて、「ラグドール」エフェクトが現れる必要があるキャラクターや、キーフレーム化されていない要素 (ヘア、クロス、チェーンなど) があるキャラクターに対して、特別にアニメートされることなく自然にシミュレートされた雰囲気が作り出されます。
機能別サンプルのサンプル プロジェクトでの、物理ベースのアニメーションの例
物理ベースのアニメーションでは、各キャラクターに対して物理アセットを設定する必要があり、コリジョンが設定されている他のサーフェスに反応できるようになります。
詳細については、以下のトピックを参照してください。
レイヤー コントロール リグ
レイヤー コントロールリグは、他の多くのワークフローの上にあるコントロールリグを利用するシステムであり、キャラクターを編集するためにデータをベイクする必要がありませんが、変更を加えていくにつれ、結果として破壊的ワークフローになる可能性があります。 レイヤー コントローラーによって、シーケンサー内でさまざまなコントロールリグをまとめてブレンドおよびレイヤー化でき、コントロールリグのバックワード ソルブをシーケンサー内のクリップにライブで追加できるようになります。 以前は、アニメーションを編集するには、コントロールリグをシーケンサー内のスケルタルメッシュに割り当て、キーをベイクし、それをライブで再生する必要がありました。
詳細については、EDC ラーニング コース「Layered Control Rigs - Deep Dive」を参照してください。 また、機能別サンプル プロジェクトは Fab からダウンロードできます。 レベル「Animation_ControlRig」には、レイヤー コントロール リグのいくつかのデモンストレーションと使用例が含まれています。
コントロール リグのバックワード ソルブ
コントロール リグは、ソルブの方向と呼ばれる複数の方法で評価されます。 これらはコントロールリグ グラフに作成され、リグのロジックを複数のソルブの方向 (またはソルバ) に分割し、リグに入力されるデータを拡張することができます。 その結果、リグを共有したり、アニメーションをデベロッパーの制御下に戻したり、動作をデバッグしたりするためのワークフローを可能にします。
バックワード ソルブの主な使用目的は、Unreal Engine 内でアニメーションをさらに変更できるよう、アニメーション シーケンスをコントロール リグにベイクすることにあります。 バックワード ソルブは、エンジンにインポートした既存のアニメーションやモーション キャプチャ データに微調整を加え、その変更をベイクする際も役立ちます。
詳細については、「ソルブの方向」セクションの「バックワード ソルブ」を参照してください。
Animation Kit プラグイン
Animator Kit は、アニメーターに使いやすいデフォーマーとユーティリティ リグをプロジェクトに追加するプラグインです。 シーケンサーを通してコントロール リグを追加するのと同じ要領で追加できます。
このプラグインはメインメニューの [Edit (編集)] > [Plugins (プラグイン)] で「Animator Kit」と検索すると有効になります。
このプラグインには、シーケンサーで使用される以下のコントロール リグが含まれています。
ユーティリティ リグ
BlendParent
3Node
ChainSim
SingleCim
SplinePath
デフォーマー
スカルプト デフォーマー
ラティス デフォーマー (2x2x2、3x3x3、4x4x4)
カメラ スペース ラティス
このプラグインとデフォーマーの使用方法の詳細については、EDC ラーニング コースの「Getting Started with Deformers」を参照してください。
Unreal Engine におけるアニメーションに関する追記
Root Motion
Unreal Engine では、キャラクターは多くのコンポーネントで構成され、動きはキャラクターの Movement コンポーネントで処理されることが多く、アニメーションの再生は、動きの視覚的なフィードバックを伝えるために、その上にレイヤー化されます。 ルート モーション アニメーションを使用すると、アニメーション データを使ってキャラクターの動きを駆動できるようになり、レベル内でより地に足の着いた動きを実現できます。 ルート モーションを使用するアニメーションの例としては、前方や後方にジャンプしたり、剣のコンビネーション技のような複雑なアクションを行ったりするなど、キャラクターをルート ポジションから遠ざけるようなものがあります。
詳細は、「ルート モーション」を参照してください。
アニメーションの圧縮
アニメーション全体のファイル サイズとメモリ コストを下げるために、アニメーション シーケンス アセットからアニメーション データを変換するプロセスです。 圧縮により、プロジェクトのパフォーマンスが犠牲になります。特に仕様の異なる複数のハードウェア ターゲットにプロジェクトをスケーリングする場合にパフォーマンスの低下が顕著になります。 動きの多いアニメーションではクオリティの低下が顕著になるため、動きの少ないアニメーションで使用するとメリットが大きいと言えます。 プロジェクトで許容できる品質の損失のタイプに基づき、実装する圧縮のタイプをカスタマイズすることが重要です。
詳細は、「アニメーションの圧縮」を参照してください。
ライブリンク
Maya などの外部ソースから Unreal Engine にアニメーション データをストリーミングして使用するための共通インターフェースを提供するために使用される これを使用すると、Unreal Engine 内での作業のプレビューをリアルタイムで表示しながら、アニメーションを外部で編集できるようになります。 モーション キャプチャのシステムやワークフローで非常に有用です。
詳細については、「Live Link」を参照してください。
次のページ
Unreal Engine のシネマティックスとシーケンサーを使用する (Maya ユーザー向け)
Maya ユーザー向けの Unreal Engine のシネマティック ツール シーケンサーの概要です。