UE5でUnrealInsightsが使いやすくなっている!
今回はUnrealInsightsが使いやすくなっているので、
そちらの使用方法を細かく紹介していこうと思います。
公式ドキュメントはこちらになります。
Unreal Engine における Unreal Insights の概要 | Unreal Engine ドキュメント
https://docs.unrealengine.com/5.0/ja/timing-insights-in-unreal-engine-5/※UE5.0.2で確認しています。
※今回の方法についてはC++でUnrealInsightsプロジェクトをビルドしないで使用するの方法になります。
UnrealInsightsって何でしょうか?
UnrealInsightsとはUnrealEngine側で用意されている、
GPUやCPU・メモリなどの動きを解析してくれるツールになります。
これを使用することによりどこで負荷がかかっているかを確認することができます。
Pluginの初期化やTickなどの処理情報なども保存されます。
※使用方法やどこにどのような負荷がかかっているかを後述していきます。
実際にUnrealInsightsを使用する
実際にUnrealInsightsを使用していきます。
UE5からエディタ上からの起動が可能になっているので、
メニューのツールのUnreal Insightsの実行を選択してUnrealInsightsを起動します。
※UE_5.0\Engine\Binaries\Win64内にUnrealInsightsのExeがあるのでこちらからも実行できます。
起動するとUnreal Insights Session Browserが表示されます。
TraceStoreタブ → 保存された情報を選択するタブ
Connectionタブ → NetworkInsights用の設定を行うタブ
※今回はNetworkInsightsの話をしないのでConnectionタブの説明は省きます。
●TraceStoreタブ上での設定
▽Trace Store Directory
→ スタンドアロンで起動した際の情報が保存されてるディレクトリの情報
▽各プロファイルのリスト
→ 保存したプロファイル情報がリストで表示されます。
ダブルクリックするとプロファイルの情報が見れます。
▽フッターの設定
→ 自動でセッションを行うかのチェックや、
プラットフォーム・アプリ名などで検索する枠などがあります。
右端のボタンはメニュー設定が開き、自動でテストするかなどの設定を変更できます。
UnrealInsightsSessionBrowserの説明は以上です。
それでは実際に情報を収集してみたいと思います。
収集する方法は簡単でスタンドアロンとしてゲームを起動するだけです。
実際に収集する流れを動画にしてみました。
TimingInsightsの確認方法について
それではプロファイルしたデータを実際に見ていきましょう。
公式でこんな画面でこんな風に見ますよというのが紹介されています。
こちらも併せて確認してみるとより理解が深まるかと思います。
※UE4.25ですがUE5でも表示に大きな差があるというわけでありません。
まず実際に画面を開いてみましょう。
データを開くとUnrealInsightsで記録した画面が出てきます。
記録した画面は主に4つの区切りでで表示されます。
※処理時間詳細部分はだいぶ省略して一つの枠組みとして言っています・・・
◎FrameRateグラフについて
FrameRateグラフではどのタイミングでFPSが落ちているかを確認できます。
FrameRateが落ちている箇所をクリックすると、
各処理の横棒グラフが連動して該当箇所を示してくれます。
FrameRateグラフの操作方法は以下になります。
・マウスホイール → グラフの拡大・縮小
・Shift+マウスホイール → FrameRateグラフの表示最大値の変更
◎各処理の動作グラフについて
バックグラウンドの処理・キャラクターの操作などゲーム上の処理全般を、
確認することができるようになっています。
ぱっとみだと何をやっているか全然分かりませんが、
実際にズームするとキャラクターアニメーションやカメラの動きが表示されています。
各処理の動作グラフは表示される情報が多彩なので、
グラフ左上の項目タブ欄から表示する情報を指定したり選択できます。
まずは「All Tracks」になります。
これは各処理の動作グラフに表示する処理の項目を選択できます。
チェックされている項目のみを表示する動作となっています。
その隣にあるGPU/CPUタブはGPUとCPUのトラック・スレッドごとに切り替えます。
※左:All Tracksタブでの選択項目 右:GPU/CPUタブでの選択項目
その他にもOtherやPluginsがあります。
OtherはFile動作グラフトラックなどの表示切替ができ、
PluginsはUnrealInsights用プラグインで表示されるもの表示切替ができます。
※左:Otherタブでの選択項目 右:Pluginsタブでの選択項目
最後のViewModeはその名の通り表示を変更することが可能です。
◎処理情報のログについて
処理情報のログについては文字通り各処理のログが格納されます。
警告やエラーも残るので表示したい項目を指定してログを確認することも可能です。
こちらもVerbosityThresholdたぶやCateGory Filterタブや検索窓が用意されていて、
ほしい情報をカテゴリ分けしたり項目分けしたりすることが可能です。
※左:Verbosity Thresholdの項目分け 右:CategoryFilterのカテゴリ項目
◎処理時間の詳細について
一番右にある部分はTimersタブとCountersタブがあります。
TimerパネルはFrameRateのグラフ画面で指定しタイミングの各処理の時間や、
インスタンス数などを表示してくれます。
もっと細かい見方を知りたいという方はこちらをぜひご確認ください!
Unreal Engine 5 の Timing Insights | Unreal Engine ドキュメント
その他のInsightsについて
今回やった以外にもPluginであったり追加の起動パラメータなどで、
ほかの情報をプロファイルすることが可能になっていたりします。
私が確認した中では追加の起動パラメータで「-Trace=memory」を設定すると、
MemoryInsightsとしてメモリ情報をトラックしたりすることが可能です。
ほかにもプラグインが用意されているのでいろいろ試したら追記していきます。
以上で説明は以上になります。
ゲームを作っている最中にボトルネックが発生した場合に確認するとよいと思います。