Animation Insights は、視覚的にレンダリングされたトレース データを使って、リアルタイムでプロジェクトのゲームプレイとアニメーション システムのパフォーマンスを監視してプロファイルするために使用できる Unreal Engine の プラグイン です。トレース情報を PIE (プレイ イン エディタ) シミュレーション中にレコーディングすることで、プロジェクトのパフォーマンス ボトルネックをフレームレート ターゲットと関連して監視して、最適化できる領域を見つけることができます。

Animation Insights プラグインには、経時的な変数やブレンド値などのアニメーション ステートおよびライブ動作の更新に加えて、ゲームプレイとアニメーション システムのパフォーマンスの監視に使用できるパフォーマンス グラフが含まれます。Animation Insights では、プロジェクトのデータをトレースすることでデータ値の変化をトラックし、プロジェクトのデバッグと最適化に使用できる色付けされたトラックにその情報を埋め込みます。
プロジェクトのデータにおける変化を監視するためのトレース レコーディングは、次のデータ タイプに対応しています。
- アニメーション ポーズ、カーブ、ブレンド ウェイト、モンタージュ、アニメーション通知、
showdebug animation
システムを置き換える、ライブ更新を含む概略 アニメーション グラフ ビュー。
トレース データ フィルタリング を使用することで、レコーディングされたデータ セットに書き込まれた特定のトレース データ タイプを選択できます。また、ソース フィルタリング を使って、トレース データを出力する個別のゲームプレイ オブジェクトを選択することもできます。
前提条件
- 以下の プラグイン を有効にします。メニュー バー から [Edit (編集)] > [Plugins (プラグイン)] に移動して、[Insights (インサイト)] セクションで Animation Insights プラグイン、Insights Data Source Filters プラグイン、Trace Data Filtering プラグインをそれぞれ見つけるか、検索バー を使って検索します。**これらのプラグインを有効にして、エディタを再起動します。

Animation Insights を使用する
プラグインのインストール後に、[Animation Insights] パネルと [Trace Data Filtering (トレース データ フィルタリング)] パネルをそれぞれ開きます。メニュー バー から [Tools (ツール)] > [Profile (プロファイル)] に移動して、[Animation Insights] と [Trace Data Filtering] の両方のオプションを選択します。

[Trace Data Filtering] パネルで トレース チャンネル フィルタ を有効にすると、対応するデータが [Animation Insights] パネルのグラフにリアルタイムで取り込まれます。

Animation Insights では、このデータをコンピュータのアプリケーション データに含まれる .utrace
ファイルに格納します。これらのトレース ファイルには、メニュー バー の [Tools (ツール)] > [Launch Unreal Insights (Unreal Insights を起動)] からエディタとともに起動できる Unreal Insights アプリケーション を使ってアクセスできます。
.utrace ファイルは膨大なサイズになる可能性があるため、デバッグと最適化を行っていない場合は、アニメーション トレースを有効にしたままにしないようにすることが重要です。
トレース データ フィルタリング
[Trace Data Filtering] パネルを開いたら、選択したデータ タイプをリアルタイムで記録または無視するように、トレース チャンネルのステートを個別に切り替えることができます。これらのデータ タイプは PIE 時とそれ以外のときに [Animation Insights] パネルでトラックされて記録され、経時的なデータの変化の監視に使用できるグラフとしてレンダリングされます。
有効にするチャンネルの数とそれらを有効にしておく期間については、慎重に選択することが大切です。選択的なチャンネル フィルタリングにより、プロジェクトのパフォーマンス オーバーヘッドと格納されている .utrace
ファイルのサイズを制限して、コンピュータのディスク容量を節約することができます。
トレース チャンネルを選択したら、[Filter Presets (フィルタ プリセット)] ドロップダウン メニューから [Save User Preset (ユーザー プリセットを保存)] を選ぶことで、それらのチャンネルの組み合わせをフィルタ プリセットとして保存できます。

プリセット を有効にしたら、トレース チャンネルのリストのヘッダ部分にある プリセット ボタン を使って、それらのプリセットをすばやく切り替えることができます。

デフォルトで、プロジェクトのアニメーション データのトラッキングに最も関連するトレース チャンネルを有効にする Animation (アニメーション) フィルタ プリセットがあります。この Animation フィルタ プリセットには、オブジェクト、アニメーション、そして フレーム のトラッキングが含まれます。Animation フィルタ プリセットを有効にするには、[Filter Preset (フィルタ プリセット)] ドロップダウン メニューから [Animation] を選択します。

デバッグと最適化のワークフローでのデータ タイプのトレースについては、「Unreal Insights」ドキュメントを参照してください。
トレース ソース フィルタ
トレース ソース フィルタリングを使用して、トレース データを出力可能なゲームプレイ オブジェクトを切り替えることができます。これは、特定のレベルに多数の アクタ と コンポーネント が同時に含まれる大規模なプロジェクトをデバッグまたはプロファイルする際に特に便利です。トレース ソース フィルタリングを使用することで、トレース データを記録してその出力情報を整理したいアクタとコンポーネントを選択し、パフォーマンス オーバーヘッドを制限することで、記録するデータ量を削減してコンピュータのディスク容量を節約できます。
[Trace Source Filter (トレース ソース フィルタ)] ウィンドウを開くには、[Animation Insight] パネルのツールバーにある [Source Filters (ソース フィルタ)] ボタンをクリックします。

クラス フィルタ
[Trace Source Filtering] パネルの [Class Filters (クラス フィルタ)] セクションでは、トレース レコーディングを有効なフィルタのみに制限するためのフィルタを、プロジェクトの ブループリント クラス に基づいて作成できます。新しいクラス フィルタを作成するには、[Class Filters] セクションの [+ Add Filter (+ フィルタを追加)] を選択します。次に、トレース データの記録元のブループリントまたはゲーム オブジェクトを選択します。このフィルタが [Class Filters] セクションに表示されます。

フィルタを作成したら、これを左クリックして [Include derived classes (派生クラスを含める)] を選択することで、このフィルタで元のゲーム オブジェクトまたはブループリントから派生した他のすべてのゲーム オブジェクトのトレース データを記録するように任意で設定できます。

[Remove Filter (フィルタを削除)] でフィルタを削除することもできます。
ユーザー フィルタ
独自のカスタム フィルタ ブループリントを作成してトレース データを記録することもできます。[User Filters (ユーザー フィルタ)] セクションの [+ Add Filter (+ フィルタを追加)] を選択して、プロジェクトのファイル構造内の、このブループリントを保存する場所に移動します。[Name (名前)] フィールドに新しいブループリントの名前を入力して [Save (保存)] をクリックします。新しいブループリントが作成されて、これを使ってカスタム仕様のトレース収集ロジックを作成できます。

カスタム仕様のソース フィルタ ブループリントを作成したら、[Trace Source Filters] パネルの [User Filters] セクションでこのフィルタを 右クリック してコンテキスト メニューを表示し、このフィルタでどのようにトレース データを記録するかを定義できます。

次の表では、このコンテキスト メニューに含まれる各オプションとそれらの機能について説明します。
オプション | 説明 |
---|---|
Open Filter Blueprint (フィルタ ブループリントを開く) | カスタム仕様のフィルタ ブループリントを ブループリント エディタ で開きます。 |
Filter Enabled (フィルタが有効) | プロジェクトから記録されたトレース データのフィルタリング時に、フィルタの機能を切り替えます。 |
Remove Filter (フィルタを削除) | 現在選択しているカスタム仕様のソース フィルタを [Trace Source Filter] パネルから 削除 します。 |
AND | カスタム仕様のフィルタを他の ユーザー フィルタ に 加えて 実行するように設定します。 |
OR | カスタム仕様のフィルタを他の ユーザー フィルタ プリセットの 代わりに 実行するように設定します。 |
NOT | カスタム仕様のフィルタを使ってトラックされるオブジェクトのトレース レコーディングを 除外 するようにフィルタを設定します。 |
ワールド フィルタ
[World Filter (ワールド フィルタ)] セクションでは、プロジェクトの異なるレベルでのトレース レコーディングのコンテキストを設定できます。プロジェクトの PIE (プレイ イン エディタ) シミュレーション時、実際のゲーム操作時、エディタのコンテキスト内でのトレース レコーディングの実行を切り替えることができます。これらのコンテキストでのトレース レコーディングを切り替えるには、[Filter By World Type (ワールド タイプでフィルタ)] プロパティの隣にあるそれぞれのボタンを使用します。

マルチプレイヤー プロジェクトやネットワークベースのプロジェクトのネットワーク操作時に実行するトレース レコーディングを制御することもできます。[Filter by World Net Mode (ワールド ネット モードでフィルタ)] プロパティで、プロジェクトの クライアント (Client)、サーバー (Server)、スタンドアローン (Standalone) のそれぞれのレンダリングごとに、フィルタリングされたソースのトレース レコーディングを有効にできます。

Unreal Engine のトレース レコーディング ワールド フィルタの詳細については、「Channel Filtering (チャンネル フィルタリング)」ドキュメントを参照してください。
Animation Insights を使用する
Animation Insights は以前からの showdebug
アニメーション機能を拡張するもので、内部のアニメーション ランタイム データを表示します。この情報を視覚化して分析する機能により、アニメーションの不規則性や不適切なパフォーマンス動作の潜在的な原因を検出して特定できるようになります。
showdebug
アニメーション システムではテキスト ログが画面のみに出力されるため、デフォルトの showdebug
アニメーション機能は限定的と言えます。Animation Insights を使用することで、ユーザーはログ データをレビューしながら、記録されたアニメーションやゲームプレイのセクションを再生しつつ、期待にそぐわないアニメーション システム動作が含まれるフレーム範囲を記録することができます。

一連のトレース ソース フィルタを有効にしたら、プロジェクトを実行して経時的なアニメーション データの変化を記録できます。これらのデータは、[Animation Insights] パネルのタイムラインに水平方向に配置される各トラックに整理されます。それぞれのトラックには一連のユニークなデータが表示されます。これらが表示されるのは、対応するトレース ソース フィルタが有効である場合のみです。
それぞれのトラックの表示は、[Animation Insights] パネルのツールバー メニューにある [All Tracks (すべてのボタン)] ボタンを使って切り替えることができます。

トラックの調査
Animation Insights グラフでは、それぞれのトラックの経時的なデータを視覚化して表示することができます。また、トラックを調査することで数値データを表示することも可能です。それぞれのトラックには異なるデータが含まれるため、トラックの調査はそのトラックが監視しているデータ タイプに応じて異なります。トラックに含まれるデータは、トラックの左側にあるトラック タイトルを右クリックして、コンテキスト メニューに表示される利用可能な展開オプションを選択することで展開できます。

[View Properties (プロパティを表示)] や [View this Graph (このグラフを表示)] などの展開オプションを選ぶと、Animation Insights タイムラインの再生ヘッドが占有している時点でのトラック データを含む補助パネルが開きます。
トラック タイプ
Animation Insights の各データ トラックには、そこに含まれるデータ タイプに関連するコンテキスト データと、関連するデータ展開オプションとプロパティが含まれます。
次の表では、共通する Animation Insights のトラックと、それらに含まれるデータ タイプに関する説明を示しています。
トラック名 | 説明 |
---|---|
Notifies | Notifies トラック には、トレースされたキャラクターのアニメーションに含まれる アニメーション通知 と 同期マーカー のプレゼンスとステートが表示されます。トラックの一番上の行には、アニメーション ティックなどのフレームごとのイベント、オーディオ キューやエフェクトといった通知イベント、さらに同期マーカーが表示されます。その他の行にはアクティブな通知ステートが表示されます。トラックを 右クリック して [View Properties (プロパティを表示)] を選択すると、現在のフレームでアクティブな通知が表示されます。 |
Curves | Curves トラック には、現在のフレームでアクティブだったすべてのアニメーション カーブが表示されます。トラックを 右クリック して [View Properties] を選択すると、選択したフレームでアクティブだったカーブ値のログが展開されて表示されます。 |
Pose | Pose トラック では、選択したフレームのアクティブなアクタ ポーズを表示または非表示にします。トラックを 右トラック して、選択したフレームの中の ポーズ または スケルトン のデバッグ描画を有効にできます。 |
Graph | Graph トラック にはトレースしたグラフの更新が表示されます。更新は、対応する時間の範囲内に垂直のバーで示されます。トラックを 右クリック して [Debug this Graph (このグラフをデバッグ)] を選択すると、[Animation Blueprint Debugger (アニメーション ブループリント デバッガ)] パネルを開いてそのトラックに接続できます。開いた [Animation Blueprint Debugger] パネルでは、タイムラインをスクラブ再生して、対応する時点でのグラフのデータ更新を確認できます。[Animation Blueprint Debugger] パネルには、ポーズ リンク ウェイト、ステート マシンのステート、アセット プレイヤー位置、ブレンドスペース サンプル データが含まれます。[View this graph] を選択すると、アニメーション グラフの概略ツリー ビューが表示されます。 |
Montage | Montage トラック には、ブレンド ウェイト や セクション ステートとトランジション データを含むアニメーション モンタージュ アセット が表示されます。 |
Blend Weights | Blend Weights トラック には、特定のフレームでアクティブだったすべてのアセットと、それらの有効なブレンド ウェイトが表示されます。トラック内を 右クリック すると、選択したフレームでの、グラフに対応するアニメーション グループリント内のノードに移動できます。また、再生時間やブレンドスペース座標など、他のトラック データも表示されます。 |
Animation Insights コントロールのリファレンス
次の表は、[Animation Insights] パネルで作業する際に、アニメーション デバッグ データの監視に使用できるホットキーとショートカットのリスです。
入力ショートカット | 機能 |
---|---|
Ctrl + マウスの左ボダン | グラフ ヘッダの タイム ルーラー をスクラブ再生して現在の時間を制御します。このときに、時間の経過とともに値が概略ビューで評価されて、ポーズはビューポート内でアニメートされます。 |
G キー | グラフ の可視性を切り替えます。 |
V キー | 現在のビューポートでタイミング イベントのないすべてのトラックを自動的に非表示にします。 |
I キー | I/O (ファイル入力) 概要 と アクティビティ トラック の可視性を切り替えます。 |
L キー | アセット ロード トラック の可視性を切り替えます。 |
Y キー | GPU トラック の可視性を切り替えます。 |
U キー | CPU スレッド (およびすべての CPU スレッド グループ) トラック の可視性を切り替えます。 |
R キー | フレーム トラック の可視性を切り替えます。 |