トレース チャンネル
トレースは、大量のデータを放出することができます。チャンネルは、トレース時にデータレートを制御できることを保証します。各イベントタイプは 1 つ以上のチャンネルに関連付けられています。必要なチャンネルが有効になっていない場合、イベントはトレース ストリームに送信されません。
チャンネル プリセットは多くのチャンネルをグループ化し、シナリオベースのエントリ ポイントを提供します。ユーザーは、[Trace.ChannelPresets] カテゴリに追加するコンフィグ ファイルを使用して、独自のプリセットを定義できます。
使用可能なトレース チャンネルを以下の表に示しています。このチェンネルのリストで、各チャンネルの ファイル パス、サポートされるプラットフォーム、および 備考 に関する詳細を確認できます。
チャンネル備考 | サポートされるプラットフォーム | ファイル パス | |
---|---|---|---|
Log | メッセージをログに記録します。 | Runtime\Core\Private\Logging\LogTrace.cpp |
|
BookMark | 重要な遷移を示す低頻度のマーカーで、ユーザーに簡単な概要を提供します。たとえば、レベルのローディングやエンジンのブートフェーズなどです。 | Runtime\Core\Private\ProfilingDebugging\MiscTrace.cpp |
|
Frame | ゲームとレンダリングのフレーム。 | Runtime\Core\Private\ProfilingDebugging\MiscTrace.cpp |
|
Stats | 統計カウンター。これは Stats システムに基づいています。 | Runtime\Core\Private\Stats\StatsTrace.cpp |
|
Counter | 汎用カウンター。時間の経過に伴う値 (浮動小数点、整数) のトレースを許可します。Counters Trace API です。また、CSV プロファイラ トレースも有効にします。 | Runtime\Core\Private\ProfilingDebugging\CountersTrace.cpp |
|
CPU | 名前付き CPU タイマー。 -statnamedevents コマンドライン引数を使用すると、タイマーを追加できます。 |
Runtime\Core\Private\ProfilingDebugging\CpuProfilerTrace.cpp |
|
ContextSwitch | コンテキスト スイッチ イベントをトレースします。Windows では、ゲーム / エディタのランタイムは「管理者として実行」する必要があります。 |
|
Runtime\Core\Private\ProfilingDebugging\PlatformEvents.cpp |
Task | タスク グラフ トレース チャンネル。 | Runtime\Core\Private\Async\TaskTrace.cpp |
|
GPU | 名前付きの GPU タイマー。GpuProfiler データに基づいています。 | Runtime\RHI\Private\GpuProfilerTrace.cpp |
|
RHICommands | RHI コマンド用の Cpu/Gpu 名前付きタイマー。 | Runtime\RHI\Private\RHICommandList.cpp |
|
RenderCommands | レンダリング スレッドで実行されるコマンドの Cpu/Gpu 名前付きタイマー。 | Runtime\RenderCore\Private\RenderingThread.cpp |
|
File | ファイル I/O トレース チャンネル (Open、ReOpen、Read、Write、Close イベント)。 |
|
Runtime\Core\Private\ProfilingDebugging\PlatformFileTrace.cpp |
LoadTime | Asset Loading Insights トレース チャンネル。パッケージのロード時間 (特定のトレース イベント) + パッケージのロードに固有の名前付き CPU タイマー。これには「CPU」チャンネルが必要です。また、これは「LoadPackageInternal」CPU タイミングイベント (メタデータ付き) も追加します。SCOPED_LOADTIMER および SCOPED_CUSTOM_LOADTIMER マクロの使用法を参照してください。 | Runtime\Core\Public\ProfilingDebugging\LoadTimeTracker.h Runtime\Core\Private\Serialization\LoadTimeTrace.cpp |
|
SaveTime | パッケージ保存に固有の名前付き CPU タイマー。これには「CPU」チャンネルが必要です。「UPackage_Save_」プレフィックスで指定された CPU タイマーを追加します。詳細については、SCOPED_SAVETIMER マクロの使用法を参照してください。 | Runtime\CoreUObject\Private\UObject\SavePackage\SavePackageUtilities.h / .cpp |
|
Cook | クックに固有の名前付き CPU タイマーを表示します。これには「CPU」チャンネルが必要です。「CookByTheBook」CPU タイミング イベントを追加し、「SaveCookedPackage」CPU タイミングイベント (メタデータ付き) を追加します。 | Editor\UnrealEd\Private\Cooker\CookProfiling.h/.cpp |
|
Net | ネットワーク トレース チャンネル。これには -NetTrace=1 が必要です (「Frame」チャンネルを有効にします)。 | Runtime\Net\Core\Private\Net\Core\Trace\Reporters\NetTraceReporter.cpp |
|
Module | モジュールのロード情報 | Runtime\Core\Private\ProfilingDebugging\ModuleDiagnostics.cpp |
|
Callstack | コールスタックの説明。割り当てをコールスタックに関連付けることができます。 |
Runtime\Core\Private\ProfilingDebugging\CallstackTrace.cpp |
|
MemAlloc | メモリの割り当て。モジュールとコールスタックを使用します。 | Runtime\Core\Private\ProfilingDebugging\MemoryAllocationTrace.cpp |
|
MemTag | メモリ タグの統計。タグごとのメモリ使用量のスナップショットを通常の速度でトレースします。トレースは LLM サブシステムに依存します。「-llm」を示します。これは、Init() の後に使用できます。 | Runtime\Core\Private\HAL\LowLevelMemTracker.cpp |
|
VisualLogger | Visual Logger がファイルへのレコーディングを開始します。 | Runtime\Engine\Private\VisualLogger\VisualLoggerTraceDevice.cpp |
|
Physics | Chaos Visual Debugger。 | Runtime\Experimental\Chaos\Private\ChaosVisualDebugger\ChaosVisualDebuggerTrace.cpp |
|
Animation | Animation Insights(GameplayInsights/RewindDebugger) プラグイン。 | Runtime\Engine\Private\Animation\AnimTrace.cpp |
|
Object | GameplayInsights/RewindDebugger プラグイン。UObject クラス、ワールド、インスタンス、およびイベントです。 | Runtime\Engine\Private\ObjectTrace.cpp |
|
ObjectProperties | GameplayInsights/RewindDebugger プラグイン。 | Plugins\Animation\GameplayInsights\Source\GameplayInsights\Private\ObjectPropertyTrace.cpp |
|
NetworkPrediction | Network Prediction Insights プラグイン。 | Plugins\Runtime\NetworkPrediction\Source\NetworkPrediction\Private\NetworkPredictionTrace.cpp |
|
RDG | RDG Insights プラグイン。 | Runtime\RenderCore\Private\RenderGraphTrace.cpp |
|
Slate | Slate Insights プラグイン。 | Runtime\SlateCore\Private\Trace\SlateTrace.cpp |
|
Niagara | Niagara プラグイン。 | Plugins\FX\Niagara\Source\Niagara\Private\NiagaraTrace.cpp |
|
Messaging | UDP Messaging プラグイン。 | Plugins\Messaging\UdpMessaging\Source\UdpMessaging\Private\UdpMessagingTracing.cpp |
|
TraceSourceFilters | Trace Source Filtering プラグイン。 | Plugins\Developer\TraceSourceFiltering\Source\SourceFilteringTrace\Private\SourceFilterTrace.cpp |
|
PoseSearch | PoseSearch プラグイン。 | Plugins\Experimental\Animation\PoseSearch\Source\Runtime\Private\Trace\PoseSearchTraceLogger.cpp |
|
Concert | Concert プラグイン。 | Plugins\Developer\Concert\ConcertMain\Source\ConcertTransport\Private\ConcertLogGlobal.cpp |
|
LevelSnapshots | Level Snapshots プラグイン。 | Plugins\VirtualProduction\LevelSnapshots\Source\LevelSnapshots\Private\LevelSnapshotsLog.cpp |
一部のプラグインまたはランタイムコードは、チャンネルを自動的に有効または無効にします。そのような動作を行うものを以下の表に示します。
プラグイン | チャンネルの説明 |
---|---|
Gameplay Insights/ Rewind Debugger | Play in Editor (PIE) の開始時に Object チャンネルを切り替え、レコーディングの開始時に ObjectProperties、Animation、および Frame を切り替えます。 |
TraceSourceFiltering | プラグインを有効にすると、TraceSourceFilters チャンネルがオンになります。 |
NetworkPrediction | プラグインを有効にすると、NetworkPrediction チャンネルがオンになります。 |
PoseSearch | プラグインを有効にすると、Pose Search チャンネルがオンになります。 |
Visual Logger | レコーディング中、Visual Logger チャンネルがオンになります。 |
-NetTrace=1 | コマンドラインから有効にすると、Net チャンネルと Frame チャンネルがオンになります。 |
ランタイムを制御する
マクロ
マクロとコマンド オプションでプロジェクト出力をカスタマイズすることで、Unreal Insights と一緒にシッピングされた多くの機能を活用できます。さらに、マウス入力とキーボード入力を使用すると効率よく Insights ウィンドウを開くことができます。 下記の表を参照して、Unreal Insights Tool で表示するデータに基づいて調整するマクロを決定します。
マクロ名 | デフォルト ステート | ソース ファイル | 領域の説明 |
---|---|---|---|
UE_TRACE_ENABLED |
On | Engine/Source/Runtime/TraceLog/Public/Trace/Config.h |
システム全体のマスター コントロールです |
UE_TASK_TRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/Async/TaskTrace.h |
タスク グラフ イベントのトレースを制御します。 -trace=default,task |
LOGTRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/Logging/LogTrace.h |
ログメッセージを UnrealInsights に報告するかどうかを制御します。 -trace=log |
MISCTRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/ProfilingDebugging/MiscTrace.h |
ブックマーク、フレーム、スレッド、スレッド グループのトレースを制御します。-trace=bookmark,frame |
CPUPROFILERTRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/ProfilingDebugging/CpuProfilerTrace.h |
CPU タイマーおよびタイミング イベントのトレースを制御します。-trace=cpu |
LOADTIMEPROFILERTRACE_ENABLED |
On | Engine/Source/Runtime/CoreUObject/Public/Serialization/LoadTimeTrace.h |
アセットのロードに関連するイベントのトレースを制御します。-trace=loadtime |
STATSTRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/Stats/StatsTrace.h |
統計カウンターのトレースを制御します。-trace=stats |
PLATFORMFILETRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/ProfilingDebugging/PlatformFileTrace.h |
ファイルを開く、閉じる、読み取る、書き込むなどのファイル アクティビティのトレースを制御します-trace=file |
PLATFORM_SUPPORTS_PLATFORM_EVENTS |
On | Engine/Source/Runtime/Core/Private/ProfilingDebugging/PlatformEvents.h |
プラットフォーム イベント (コンテキスト スイッチ イベント) をサポートするプラットフォームの場合にオンになります。-trace=ContextSwitch |
GPUPROFILERTRACE_ENABLED |
On | Engine/Source/Runtime/RHI/Public/GpuProfilerTrace.h |
GPU のタイマーおよびタイミング イベントを制御します。-trace=gpu |
UE_NET_TRACE_ENABLED |
On | Engine/Source/Runtime/Net/Core/Public/Net/Core/Trace/NetTrace.h Engine/Source/Runtime/Net/Core/Public/Net/Core/Trace/Config.h |
ネットワーク パケット コンテンツのトレースを制御します。-trace=net |
UE_MEMORY_TAGS_TRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/ProfilingDebugging/TagTrace.h |
タグ スコープのトレースを有効にします。無効にした場合、トレースされた割り当てにはタグが関連付けられません。 -trace = memtag |
UE_CALLSTACK_TRACE_ENABLED |
On | Engine/Source/Runtime/Core/Public/ProfilingDebugging/CallstackTrace.h |
コールスタックのトレースを有効にします。無効にした場合、トレースされた割り当てにはコールスタックが含まれません。-trace=callstack |
UnrealInsights.exe のコマンドライン オプション
コマンドライン オプション | 使用方法 | 説明 |
---|---|---|
-OpenTraceId |
-OpenTraceId=id |
Unreal Insights に [Viewer mode] で指定した ID の解析を開始させます。 |
-OpenTraceFile |
-OpenTraceFile=file.utrace |
Unreal Insights に [Viewer mode] で指定したファイルの解析を開始させます。 |
-Store |
-Store=address:port |
指定したトレース ストアとブラウザを接続します。-StoreHost=address と -StorePort=port も使用可能です。 |
コンソール コマンド
|コマンド | 説明 | |---|---| |Trace.Send <Host> [ChannelSet]
|`トレース ストアへのトレースを開始します。Trace.File [<File>] [ChannelSet] |
イベントのファイルへのトレースを開始します。ファイル パスが指定されていない場合、utrace ファイルのデフォルトのパス ディレクトリは次のとおりです。YourProject/Saved/Profiling .名前が指定されていない場合、utrace ファイルの名前は現在のタイムスタンプに基づいて自動的に生成されます。遅延接続をサポートしています。使用例:
|
Trace.Start[ChannelSet] |
デフォルトで有効なチャンネルを保持します。 |
Trace.Stop |
プロファイリング イベントのトレースを停止します。 |
Trace.Enable[ChannelSet] |
一連のチャンネルを有効にします。 |
Trace.Disable[ChannelSet] |
一連のチャンネルを無効にします。チャンネルセットが指定されていない場合、すべてのチャンネルが無効になります。 |
Trace.Pause |
現在イベントを送信しているすべてのトレース チャンネルを一時停止します。 |
Trace.Resume |
以前に一時停止されたトレースを再開します (プッシュされたチャンネルを再度有効にします)。 |
Trace.Status |
トレース ステータスをコンソールに出力します。 |
Unreal Insights を制御する
コマンドライン オプション
マクロを組み合わせることで、次のコマンドライン オプションはトレース データを有効にします。
コマンドライン オプション | 説明 |
---|---|
-trace -trace=<channel1> |
名前付きグループにイベントを分類することで生成するトレース データ量の管理ができるようになります。-trace=cpu,frame,bookmark は CPU プロファイラ イベント、フレームマーカー、およびブックマークを有効にします。 |
tracehost=<ip> |
指定された IP アドレスにトレースを送信します。デフォルトではローカルホスト アドレスになります。-tracehost については、「Unreal Insights」を参照してください。 |
-tracefile, -tracefile =<filename> |
「Write To」ファイル トレース制御コマンドを実行します。これにより、tracede fault コマンドが実行されます。 |
-tracefiletrunc |
|
-tracetailmb= N |
N で、MiB のトレーステール バッファのサイズを指定します。トレーステール バッファのデフォルトサイズは 4MiB です。 |
-notraceserver |
指定した場合、ゲームまたはエディタはローカルトレース サーバーを起動しません。 |
-statnamedevents |
stat の名前付きイベントのトレース データをログに記録します。GCycleStatsShouldEmitNamedEvents = 1; 、またはコンソール コマンドとして「Stat NamedEvents」を呼び出すことで有効にできます。 |
-verbosenamedevents |
verbose の名前付きイベントのトレース データをログに記録します。`GCycleStatsShouldEmitVerboseNamedEvents = 1;、またはコンソール コマンドとして「Stat VerboseNamedEvents」を呼び出すことで有効にできます。verbose サイクルのステータスの例:"CPU Stall - [...]", "Other TaskGraph Stalls", "FQueuedThread::Run.WaitForWork"。 |
キーボード入力ショートカット
Timing Insights ウィンドウ
次のマウス コマンドとキーボード コマンドを使用すると、Timing Insights を効率的に開くことができます。
Frames パネル
キーボード入力のショートカット | 機能 |
---|---|
マウスの左クリック | フレームを選択します。 |
マウスの右クリック | コンテキスト メニューが開きます。 |
左/右マウスを押してドラッグ | 水平ズーム |
マウスホイール | 水平ズーム |
Shift + マウスホイール | 垂直ズーム |
Timing パネル
入力のショートカット | 機能 |
---|---|
左 / 右マウス ドラッグ | 水平または垂直パン |
Ctrl を押しながらマウス 左 / 右ドラッグ | 水平パン |
Shift を押しながらマウス 左 / 右ドラッグ | 垂直パン |
マウス ホイール | ズーム |
Ctrl を押しながらマウス ホイール | 水平スクロール |
Shift を押しながらマウス ホイール | 垂直スクロール |
マウス右クリック | コンテキスト メニューを開く |
Timing Event をマウスで左クリック | タイミング イベントを選択 |
空いている領域でマウスを左クリック | 選択項目を消去 |
Ctrl を押しながらマウスを左ダブルクリック | 選択したタイミング イベントの時間範囲を選択 |
左/右 マウスを押しながらタイム ルーラー上をドラッグ | 時間範囲を選択 |
Ctrl を押しながら F | クイック検索メニューの切り替え |
F | 最後に選択したものをフレーミングして、時間範囲またはタイミング イベントのフレーミングを交互に行います。 |
G | グラフ トラック、レンダリング フレームの可視性を切り替えます (Counter シリーズ用のプレースホルダーを含む)。 |
Y | GPU タイミング トラックの可視性を切り替えます。 |
U | CPU タイミング トラックの可視性を切り替えます。 |
I | I/O Overview と Activity トラックの可視性を切り替えます。 |
O | I/O Activity トラックのファイル アクティビティのバックグラウンド イベントの表示を切り替えます。 |
L | Asset Loading トラックの表示を切り替えます。 |
C | 通常モードとコンパクト モードを切り替えて、タイミング イベントの表示を調整します。 |
V | 空のタイムラインを自動的に非表示にします。 |
X | イベント深度制限を、Single Lane (単一レーン)、4 Lanes (4 レーン)、Unlimited (無制限) から選択します。 |
B | ブックマークの表示を切り替えます。 |
M | タイム マーカーの表示を切り替えます (ブックマークのみではなくすべてのトレース ログ) |
**-/+ | ズーム |
Ctrl を押しながら 左 / 右 / 上 / 下 矢印 | 水平および垂直パン |
左 / 右 / 上 / 下 矢印 | 前または次の兄弟 / 親 / 一番大きい子であるタイム イベントを選択します。 |
Enter | 選択したタイミング イベントの時間範囲を選択 |
Networking Insights ウィンドウ
次のマウス コマンドとキーボード コマンドを使用すると、Networking Insights を効率的に開くことができます。
入力ショートカット | 機能 |
---|---|
パケット上でマウスを左クリック | それぞれのパケットを選択 |
異なるパケット上で Shift を押しながらマウスの左クリック | パケットの範囲を選択 |
Ctrl + A | すべてのパケットを選択 |
左/右向き矢印 | 前/次のパケットを選択 |
Shift を押しながら左/右向き矢印 | 選択範囲 (複数のパッケージ) を左 / 右側に拡大 |
Ctrl と Shift を押しながら左/右向き矢印 | 選択範囲 (複数のパッケージ) を左 / 右側に縮小 |
イベントをダブルクリック | その他すべてのイベントをマスクして、[Packet Content (パケット コンテンツ)] ビューにイベントを含むすべてのパケットを強調表示 |