ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
この記事の要点
- Unreal Insights は UE5 同梱のパフォーマンス解析ツール。CPU / GPU / フレーム時間 / メモリ / ロード状況を時系列で可視化できる
- Trace Store + Insights ビューアの 2 段構成。ゲームから
.utraceを出力し、ビューアで開く - 起動は
Editor 下部の Trace ステータスバー、またはUnrealInsights.exeを直接実行 - よく使うビューは Timing Insights(フレーム/CPU/GPU)・Memory Insights・Asset Loading Insights
- 計測手順:
Trace.Start→ 数十秒プレイ →Trace.Stop→ 生成された.utraceを Insights で開く
1Unreal Insights とは
Unreal Insights は、Unreal Engine 5(UE4 後期から搭載)に同梱されている専用のパフォーマンス解析ツールです。ゲーム実行中のフレーム時間・CPU 各スレッドの処理内訳・GPU タスク・メモリ確保/解放・アセットロードなどを時系列のトレースとして記録し、後から GUI で詳細に可視化できます。「フレームレートが急に落ちる」「特定シーンで Hitch が出る」といったボトルネックの原因特定に欠かせません。
従来 stat unit や stat scenerendering といったコンソールコマンドで部分的に見ていた情報を、1 つの統合タイムライン上で串刺しに観察できるのが最大の特徴です。
2Unreal Insights の構成
| 要素 | 役割 |
|---|---|
| Trace System | ゲーム実行時に各種イベント (CPU/GPU/Memory) を記録する仕組み |
| Trace Store | .utrace ファイルを保管・一覧する常駐サーバ |
| Unreal Insights (Viewer) | .utrace を読み込みタイムライン解析する GUI ツール |
3起動方法
Unreal Editor から起動
Editor の下部ステータスバーにある Trace / Insights Status Bar Widget をクリックし、Open Unreal Insights を選択します。バックグラウンドで Trace Store が起動し、ビューアが立ち上がります。
直接実行する場合
UE5 のインストールフォルダ直下、Engine\Binaries\Win64\UnrealInsights.exe を直接実行できます。複数 PC でリモート計測する場合はこちらを使います。
# Windows でのパス例
"C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\Win64\UnrealInsights.exe"
4トレースを取得する基本フロー
- Trace Store / Unreal Insights を先に起動しておく
- ゲーム(Editor の PIE でも実機ビルドでも可)を起動
- 計測したいシーンの少し前で
Trace.Startをコンソールに入力 - 数十秒プレイ
Trace.Stopでトレースを終了- Insights のホーム画面に新しい
.utraceが表示されるのでダブルクリックで開く
# UE のコンソール (~) で実行
Trace.Start cpu,gpu,frame,bookmark,memory
Trace.Stop
# 旧来の utrace 取り方 (stat startfile/stopfile)
stat startfile
stat stopfile
# → Saved/Profiling/UnrealStats フォルダ配下に .ue4stats が生成される
パッケージビルドで取得する
起動引数に -trace=cpu,frame,bookmark -tracehost=127.0.0.1 を付けると、起動時から Trace Store にデータが流れ込みます。リモート計測する場合は -tracehost に Insights を実行しているマシンの IP を指定します。
5主要ビューと使いどころ
| ビュー | 分かること |
|---|---|
| Timing Insights | フレーム毎の Game Thread / Render Thread / GPU の使用時間と関数コール内訳 |
| Memory Insights | アロケーション量、リーク疑い、メモリ使用ピーク |
| Asset Loading Insights | 非同期ロードのキュー / 完了タイミング、Stall の発見 |
| Networking Insights | レプリケーションのパケットサイズ・頻度 |
| Slate Insights | UMG/Slate の更新コストとリビルド回数 |
6Timing Insights の見方
Timing Insights を開くと上から順に Frames(1 フレームごとの色帯)・Timing Tracks(GameThread / RenderThread / RHIThread / GPU など)・Logs・Counters が並びます。フレーム時間が長い帯を選択 → 下の関数コール一覧でどの処理に時間がかかっているかを一目で確認できます。
- Game Thread の
UWorld::Tick配下が太い → ゲームロジック・Tick が重い - Render Thread の
DrawSceneが太い → 描画コマンド数や Visibility が重い - GPU の
BasePassが太い → シェーダ・マテリアルが重い、ポストプロセスを疑う
7ボトルネックを特定する典型パターン
| 症状 | 疑うべき場所 | 対処の方向性 |
|---|---|---|
| Game Thread が CPU バウンド | Blueprint Tick / Animation Update | Tick 間引き、Tick Group 見直し、ロジックの C++ 化 |
| Render Thread が遅い | 大量の Draw Call、Instancing 未使用 | HLOD、Instanced Static Mesh、Nanite 化 |
| GPU バウンド | マテリアル、ポストプロセス、解像度 | マテリアル簡素化、Lumen / Nanite の品質調整、解像度スケーリング |
| 急な Hitch | 非同期ロード、ガベージコレクト | 事前ロード、GC 間隔調整、PreloadAtRuntime |
| メモリ増加 | Spawn しっぱなしのアクター、未開放テクスチャ | Object Pool、参照切れ、テクスチャ Streaming Pool |
8Bookmark でシーン境界を打つ
計測中に TRACE_BOOKMARK(TEXT("LevelLoad End")) を呼ぶか、コンソールから Trace.Bookmark "名前" を実行すると、タイムライン上に縦線で目印が打てます。「ロード完了直後」「ボス出現時」など、後で振り返るシーンの境界を明示しておくと解析が大幅に楽になります。
9運用上のコツ
- Development ビルドで計測する。Shipping だと Trace が外れているチャンネルがある
- 一度に有効化するチャンネルが多いと Trace ファイルが肥大化する。
cpu,frame,bookmarkから始めて必要に応じて追加する - Editor の PIE と実機ではボトルネックが大きく違うことがある。最終確認は必ず実機ビルドで行う
- 計測中のVSync を OFF(
r.VSync 0)にすると、隠れた余力やボトルネックがはっきり見える - Memory Insights を使う場合は
-trace=memory,memtagを有効化
10まとめ
Unreal Insights は UE5 のパフォーマンス改善における事実上の標準ツールです。stat unit で「Game Thread が重そう」と当たりを付けた後、Insights でどの関数のどの呼び出しが重いかを関数粒度で特定できるので、当てずっぽうの最適化を防げます。早期から計測する習慣を付けることで、出荷直前の大規模リファクタを避けられます。
11関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Scratch 作品の公開方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?