Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4.25で追加されるアニメーションプロファイラー

UE4.25が絶賛Preview 4の状態で公開中です。色んな機能が追加されているので、ぜひフォーラムから情報を追ってみてください。

forums.unrealengine.com

今回はこの中で追加された"Animation Insights"についてと、ひっそり追加された"Hierarchilcal Profiler"についても解説します。

Animation Insightsの起動前の準備

Animation Insightsは既にあるUnreal Insightsのアニメーション版かと思われるような内容となっていますが、実際にはアニメーション以外も計測が可能で、Unreal Insightsとは違いUE4エディターと同じプロセスで動作します。起動するためにはプラグインをいくつか有効化しておく必要があります。

f:id:alwei:20200329185839p:plain

"Animation Insights"、"lInsights Data Source Filters"、"Trace Data Filtering"の3つをオンにしてからエディターを再起動します。

f:id:alwei:20200329185948p:plain

"ウィンドウ"→"デベロッパーツール"→"Animation Insights"と"Trace Data Filtering"を選択してそれぞれのウィンドウを開いて配置が完了すれば準備完了です。

f:id:alwei:20200329190147p:plain

では実際に使ってみましょう。

プロファイリング方法

プロファイリングする前にプレイを行い、アニメーションが実行される状態にしておきます。

f:id:alwei:20200329190653p:plain

プロファイリングが始まるので、そのまましばらく実行を続けます。プロファイリングが完了したら、チェックを外すかAnimationのボタンを選択を押すことで終了します。

f:id:alwei:20200329190931p:plain

プロファイリングが完了後、Animation Insightsウィンドウを開いて、計測が必要なアニメーショントラックだけを表示させるようにします。

f:id:alwei:20200329191346p:plain

上部タイムラインから負荷が見たい位置を選択すると下部タイムライン上に詳細情報がでます。

f:id:alwei:20200329191804p:plain


Unreal Insightsと比べると非常にお手軽に利用可能なので、個々のスケルタルメッシュをもつアクターがどの程度負荷をもっているかを知るのには非常に便利でしょう。

Hierarchilcal Profiler

もうひとつ紹介するHierarchilcal Profilerはアニメーション自体の負荷を測定するというよりも、こちらはネイティブなアニメーション処理にかかった負荷を調べるプロファイラーです。アニメーション単体の負荷を計測することはできませんが、ローレベルにアニメーションがどの程度になっているかを調べることが可能です。

こちらの機能は"Control Rig"プラグインに内蔵されており、Animation Insightsと同様にプラグインをオンにしてからエディターを再起動します。"ウィンドウ"→"デベロッパーツール"→"Hierarchilcal Profiler"で起動します。

f:id:alwei:20200329193435p:plain

使い方は簡単で計測したい時間を決めてから"Record"ボタンを押すだけです。

f:id:alwei:20200329194349p:plain

計測完了後にネイティブなC++コード上でどこが重くなっているか、どれだけ呼び出されているかがわかります。具体的にどのノードが使われているのかもわかるので、よりアニメーション用のノードや処理を作っている際に負荷が知りたいという時には非常に有効です。

アニメーションのプロファイリングが非常に楽に

これまでもプロファイリングでアニメーションの負荷を調べることができましたが、"Animation Insights"により、アニメーションアセットの負荷、"Hierarchilcal Profiler"でネイティブアニメーション処理の負荷がそれぞれ簡単にわかるようになりました。

Unreal Insightsとの違いはあくまでもエディター上で動作するので、実機レベルのプロファイリングはできませんが、それでもおおよその負荷を知ることはできるでしょう。実機の負荷が知りたい場合にはUnreal Insightsを使うことをお勧めします。