トレース

Unreal Insights でトレース ログ フレームワークを使用する方法の概要です。

トレース (Trace) は、実行中のプロセスからインストルメンテーション イベントをトレースするための構造化されたログ フレームワークです。このフレームワークでは、高頻度でトレースされるイベントのストリームを生成します。これらは自己記述型で、簡単に消費して共有することが可能です。TraceLog および TraceAnalysis は、このフレームワークの主要な構成モジュールです。

Unreal Insights の主要なコンポーネントは、トレース イベント、アプリケーションからのトレースを記録および保存する Unreal Trace Server、およびデータを分析および視覚化する UnrealInsights で構成されます。

保存されたトレース セッションは自己記述型でエンジンのバージョンと互換性があります。「.utrace」ファイルに保存されています。生成されたコンパニオン データは、トレース ファイルの横の「.ucache」ファイルに保存されます。

トレースの概要

Unreal では、「Engine/Binaries/Win64」ディレクトリ フォルダに保存されているサーバー プロセス実行可能ファイル「UnrealTraceServer.exe」によってトレースが起動します。

この実行可能ファイルは、Unreal トレース セッション ブラウザから接続を確立する際に Unreal Editor ビルドによって自動的に起動します。 Unreal Trace サーバー は単一のサーバー インスタンスとしてバックグラウンドで実行され、複数のプロジェクトまたはブランチ間で共有することができます。

これは、パフォーマンスへの影響が最小限で、ユーザー インターフェースを持たない軽量のプログラムです。プロセスを手動でシャットダウンする場合は、システムのタスク マネージャーにアクセスしてシャットダウンできます。

システム タスク マネージャーの [プロセス] タブに表示されている実行中のサーバー トレース。

このプログラムでは、複数のソースからデータを同時に受け取って記録することができます。単一のインスタンスとしてバックグラウンドで実行され、新しいバージョンを起動するにあたって既存のインスタンスを停止する必要はありません。

現在、Unreal Trace Server を実行しているマシン 1 台に対して 1 人のユーザーのみをサポートします。複数のユーザーが同時にログインすると、トレースは最初のユーザーのトレース ディレクトリに格納されるため、その他のユーザーはアクセス不可能になります。

ランタイムをトレースする

1. Unreal Insights を実行します。

Engine\Binaries\Win64 folder and double-click UnrealInsights.exe へ移動します。

unreal-insights-executable-in-binaries-folder

2. Insights セッション ブラウザ:

Unreal Insights セッション ブラウザ を起動すると、現在利用できるライブ セッションがないことに気が付きます。

InsightsSessionBrowser.png

3. ゲーム プロジェクトを実行する:

オペレーティング システムから コマンド プロンプト を起動してプロジェクトを実行します。

cd C:\MyEngineInstallLocation\

Samples\Games\Binaries\Win64\YourProject.exe

ローカルのインストール場所と一定するようにファイル ディレクトリ パスを変更する必要な場合があります。

テール トレーシング

テール トレーシング では、バッファ サイズに応じて過去数秒間のイベントをトラックするため、あらゆるマシンで下準備となる要素を表示できます。

デフォルトのバッファ サイズは「4MB」ですが、これを変更または無効にする場合は、コマンドラインに次のコマンドを入力します。

    `-tracetailmb=x` 

X」の部分を「0 MB」に置き換えるとトレーシングが無効になり、その他の値に置き換えると、その値に応じてバッファ サイズが変更されます。

遅延接続の改善点

以前のバージョンの Unreal Insights では、Insights プログラムへの接続が遅延した場合に、接続を確立する前に一度限りのイベント (Important イベント) が見過ごされてしまうことがありました。

現行のバージョンでは Important イベント が Unreal Engine のクライアント側にキャッシュされるため、接続の際にこれらが遅延接続のマシンに送られるようになりました。

Insights では、そのローカル UI インスタンスから (そのローカル マシンを実際に使用することなく)、リモートで実行されている Unreal Engine インスタンスに対して、リモート トレース サーバーに接続するよう指示することができます。

遅延接続は、Unreal Insights[Connect (接続)] を使用するか、エディタのコマンド コンソール に次のコマンドを入力することで開始できます。

    `"trace.send [ip]" / "trace.start [filename]"

    -trace.start[file][channelSet] -tracehost=[ip]      

    -tracefile = [filepath]

Unreal Insights にはファイルベースのキャッシュ システムが備わっており、これによってアプリケーションでトレースに追加情報をアタッチすることができます。これを使って以前の計算結果をすばやく取得したり、このシステムなしでは失われるデータ (シンボルなど) を格納したりできます。キャッシュは、トレース ファイルと同じ名前の .ucache ファイルに格納されます。

トレース開発ガイド

Unreal Insights で独自のトレースを開発することができます。詳細については「トレース開発ガイド」を参照してください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル