【UE5】Unreal Insightsを使ってみた

記事執筆時Unreal Engineバージョン:5.2

はじめに

はじめまして、OX ENGINEER STUDIOでクライアントエンジニアをしている山崎です。
初めて触るUE5で四苦八苦している中、作っている処理について「fpsに影響与えてないですよね?」と聞かれ「分からないです…」とも答えられないのでUnrealEngineに搭載されているプロファイラーツール「Unreal Insights」を使ってみた記事になります。
本記事ではUE初心者が右も左も分からない中、「Unreal Insights」で試してみたことを記載していきます。

Unreal Insightsとは

いわゆるプロファイラーツールです。どの処理で負荷がかかっているのかを見つけるために使ったりします。
Unreal Insightsに限らずこの手のツールは有用なのですがドキュメントが乏しく具体的に何かをやろうとすると試行錯誤するしかない気がしています。

参考:Unreal Insights

https://docs.unrealengine.com/5.2/ja/unreal-insights-in-unreal-engine/

簡単な使い方

Unreal InsightsはUE4から利用可能になったそうです。
使う場合はTraceするチャンネルをコマンドライン引数で指定してゲームを実行、Traceファイルが作成されるのでそれをUnreal Insightsで開いて確認する、という流れになります。
基本的にはインストール先フォルダの
「Epic Games\UE_X.X\Engine\Binaries\Win64\UnrealInsights.exe」を開いて利用するのですが、UE5.0からはEditor上部の「Tools > Run Unreal Insights」で開けるようになりました(便利!)
ですがUE5.2からは場所が変わりEditor下部の「Trace > Run Unreal Insights」から開くようになります(Verでいろいろ違うよ!)
Traceチャンネルに関してもおそらくUE5.2からはコマンドライン引数を利用することなくポチポチクリックするだけでOKなようになっているようです(楽ちん!)

とりあえず触ってみる

とりあえずいろいろ触ってみます。
Traceデータの取得はUE5.2から楽になったので10秒ほどTraceデータを取得。チャンネルは用途次第ですがGpuとCpuを一旦取ってみます。
Unreal Insightsを開くとこんな感じの画面でTraceデータが日付順に並んでいるため、直近のデータである一番下のTraceデータを選択します。

Traceデータを開きました。全く分からないのでいろいろいじってみます。

詳細な使い方は公式ドキュメントを参照していただくとして、いろいろクリックしたり拡大したりしていても仕方ありません。
画面右側の「Timers」タブで検索をかけられるようなので今回私が実装した敵AI、EQS関連の処理を検索してみます。ブループリントの名前で検索してもうまく引っかかってくれなかったのでもっと根幹の処理内容として「Query」や「EQS」で試してみます。
するといくつかHitするものがありました。拡大しないとどれくらい処理に時間がかかっているのか分からないので拡大していきます。検索でCountが出ているものに対して右クリック「Highlight Event」をつけるとグラフ上でも対象の処理がハイライトされて見やすくなります。
軽く見る限りでは現時点でさほど大きな影響を与えているようには見えません。ただ、敵AIの評価が複雑化して様々なオブジェクトを参照するようになると処理が重くなる可能性は非常に高そうです。

その他分かりやすいところでいくと「Timers」のタブで「Count」では処理を呼んだ回数、「Incl」では処理全体にかかった時間が見れます。
Countではもう少し処理の選択範囲を広げてみると1秒当たりの処理回数が分かったりするため、今回のケースだと「敵Actorを50体出してビヘイビアツリーのEQS呼び出しが0.5秒毎なので秒間100回の呼び出し」であることを確認し不要な呼び出しを行っていないか、Tick処理全体との割合を見て問題ないか見ていたりします。
(親部分に当たるTick処理をもっと追いかけると各Componentが結構処理負荷かけていたりするのが分かったりしますが今回実装した部分ではないので割愛)

所感

ということで簡単ではありますがUnreal Insightsを使ってみた記事でした。
細かい内容を記載すると文量が膨大になる&私の知識が足りていないためかなり省略しましたが、ブループリントなどで組んだ処理を見る程度であればこのくらいで事足りるかなと思います。実際の検証作業はブループリントだけで組んだ敵AIとビヘイビアツリー+EQSで組んだ敵AIでFrameレートを比較したりしていてなかなか時間がかかっています。
ゲーム制作に限らないですが負荷軽減は常に求められるので臨機応変にツールを利用していきたいですね。

山崎

非ゲーム業界のエンジニアからゲーム業界に転身したばかり、UE5を勉強中の駆け出しひよっこエンジニア。

関連記事

  1. 【UE5】プロジェクトのビルドは通るのに、プラグイン単体のパッケージ化が通らない時

    2024-04-18

  2. 【UE5】プレビューを停止すると「Assertion failed: bRegistered」とエラーメッセージが出てエディタが強制終了する現象

    2024-02-08

  3. 技術ブログ開始のご挨拶

    2023-10-17

  4. 【UE5】Live Codingでビルドする際の注意点

    2023-12-01

ABOUT

OX ENGINEER STUDIO

OX ENGINEER STUDIO並びにC&R CREATIVE STUDIOSの紹介サイトです。
本サイトでは、ゲーム開発や弊社スタジオに関する様々な情報を発信しています。

運営:
OX ENGEINEER STUDIO

所属:
C&R Creative Studios

カレンダー

2024年3月
 123
45678910
11121314151617
18192021222324
25262728293031
ページ上部へ戻る