Unreal Insights には、ネットワーク トラフィックの解析、最適化、デバッグを行う Networking Insights が含まれています。ユーザーは、次の機能を使ってトレース情報を記録し、ネットワークの動作を視覚化できます。
- 記録されているネットワーク セッション中に表示可能なマシンを画面に出力する Game Instance (ゲーム インスタンス) コントロール
- 発信または着信データを視覚化する Connection Mode (接続モード) コントロール
- ゲーム中に送受信されるパケットのタイムラインとサイズを表示するパケット概要パネル
- レプリケートされたオブジェクト、プロパティ、リモート関数呼び出しなど、パケットのコンテンツを表示するパケット コンテンツ パネル
- 選択したパケットのトレース イベントを表示する [Net Stats (ネット統計)] パネル。これには、合計、最大、および平均の排他的または包括的なパケット サイズに関する統計が含まれます。
設定
次に進む前に、Unreal Insights を実行していることを確認してください。
Networking Insights を使用する
データを解析するには、以下のコマンドライン オプションでプロジェクトのインスタンスを開始します。
-NetTrace=[VerbosityLevel] -trace=net
VerbosityLevel
は 0 よりも大きい値に設定します。たとえば、ゲーム インスタンスが -NetTrace=1
で始まる場合、Unreal Insights では、Unreal Instights のセッションを開き、解析用にネットワーク トレース データを収集して報告します。
エディタでは、トレース データ用に独自のデータ ストアを実行します。つまり、エディタでの実行中にネットワーク トレース データを収集するために、トレースホストを指定する必要があります。トレースホストを指定するには、-NetTrace=1 -tracehost=localhost -trace=net
を使用します。
UE_NET_TRACE_PACKET_STATSCOUNTER
マクロと UE_NET_TRACE_FRAME_STATSCOUNTER
マクロを使用して、ネットワーク トレース データに関連付けられたシンプルな統計情報をトレースできるようになりました。これらのいずれかのマクロを使用してトレースされたデータは [NetStatsCounters (ネット統計カウンタ)] タブに表示されます。
[Networking Insights] ウィンドウ
[Networking Insights (ネットワーキング インサイト)] ウィンドウにはネットワーキング セッション データが表示されます。
その他のコマンドやヒント、Unreal Insights の他のウィンドウの情報については、「Unreal Insights のリファレンス」ドキュメントを参照してください。
[Networking Insights] ウィンドウには、接続選択パネル (1)、パケット概要パネル (2)、パケット コンテンツ パネル (3)、そして [Net Stats (ネット統計)] パネル (4) が含まれています。
パケット概要パネル
パケット概要パネルには、送受信される各パケットのサイズをビット単位で示すバー グラフが表示されます。詳細な調査が必要な大きいパケットの特定に便利です。パケットを選択するにはバーを左クリックします。
各パケットの報告サイズは圧縮前のサイズであるため、通信上の実際のデータはレポートされた値よりも小さくなる場合があります。
パケット上にカーソルを乗せると、以下を含む情報が表示されます。
- パケット インデックス (Packet Index)
- シーケンス番号 (Sequence Number)
- ビット単位でのコンテンツ サイズ (Content Size)
- 未使用のビット数を含む、バイト単位の合計サイズ (Total Size)
- パケット送受信時のタイムスタンプ (Timestamp)
- パケットの現在の配信済み/未配信ステータス (Status)
- パケットを受信した接続のステート (Connection State)
- パケット送受信時のエンジン フレーム番号 (Engine Frame Number)
選択解除したパケットは赤色で表示されます。複数のパケットを選択するには、最初のパケットをクリックして選択し、Shift キーを押しながら他のパケットをクリックします。パケット ビュー内のイベントを強調表示できるようになり、パケット内で特定のイベントが使用しているビット数を確認しやすくなりました。 これにより、他のデータと比較してイベントがどれくらいの帯域幅を使用しているかをすばやく確認できるようになりました。
以下のいずれかを強調表示するよう選択できます。
- イベントのすべてのインスタンスの集計ビットカウント
- 単一イベントで使用され最大ビットカウント
パケット コンテンツ パネル
パケット コンテンツ パネルには、現在選択しているパケットの実際のコンテンツが表示されます。パケットのコンテンツは、左側からビット 0 で始まる階層的なイベント グラフとして表示されます。これが、各パケットに含まれるデータ コンテンツをプロパティ レベルまで調査するためのメイン ツールです。

パケットに含まれる一連のデータを表示するパケット コンテンツ パネル。これには、レプリケートされたオブジェクトとプロパティに関する情報が含まれます。
最初のレベルには、パケットに含まれるデータ グループが表示されます。それぞれのグループには、属するチャンネルに関連した名前が付けられています。報告の際に、報告されたグループにデバッグ名が設定されている場合は、追加のコンテキスト (存在する場合) を提供するために、channelname
ではなく debugname
を使用します。
2 番目のレベルには通常、グループに含まれるレプリケートされたオブジェクトが表示されます。イベントに割り当てられた NetId(NetGUID) がある場合は、その ID も表示されます。
イベント階層の下位にあるイベントでは、レプリケートされた各プロパティ (それらが書き込んだバイト数も含む) が表示されます。
イベントにカーソルを乗せると、そのイベントのすべての情報が表示されます。
このパネルには、パケットや特定の NetId に属するイベントを検索するためのコントロールも備わっています。
パケット コンテンツ パネルとパケット概要パネルでは、キーボードを使った操作も可能です。上下の矢印キーでレベル間を移動し、左右の矢印キーで同じレベル内のイベント間を移動します。Ctrl キーまたは cmd キーを押したまま左右の矢印キーを押すと、パケット間を移動します。
接続選択パネル
パケット概要パネルの上部には、表示するデータをユーザーが選択できるコントロールが用意されています。

接続ドロップダウン リストはパケット概要パネルの上部にあります。この例では、受信データが選択された状態の、サーバー ゲーム インスタンスにおけるプレイヤー 0 の接続を示しています。
接続選択パネルには、以下に示す 3 つドロップダウン リストが含まれます。
ドロップダウン リスト | 説明 |
---|---|
Game Instance (ゲーム インスタンス) | レコーディング セッション中に検知されたそれぞれのユニークな NetDriver に対して作成されたゲーム インスタンスを表示します。たとえば、PIE を使用する際は、サーバーと各クライアント用のインスタンスは別々になります。 |
Connection (接続) | このドロップダウンでは特定の接続を選択し、選択したゲーム インスタンスのセッション中に検知されたすべての接続を表示します。 |
Connection Mode (接続モード) | このドロップダウンでは、送受信データを視覚化するかどうかを指定します。 |
[Net Stats] パネル
[Net Stats (ネット統計)] パネルには、パケット概要パネルで選択したパケット範囲のすべてのトレース イベントがリスト表示されます。
レベルごとにイベントがグループ化された [Net Stats] パネル
このリストは、選択範囲に基づいてデータを集計するだけでなく、アクティブな列の値で昇順または降順に並べ替えることもできます。並べ替え順序を変更したり、列をアクティブ/アクティブにするには、リスト内を右クリックします。 次の列を使用できます。
- Type (型)
- Level (レベル)
- Instance Count (インスタンス数)
- Total Inclusive Size (bits) (ビット単位での総包括サイズ)
- Max Inclusive Size (bits) (ビット単位での最大包括サイズ)
- Total Exclusive Size (総排他サイズ)
- Max Exclusive Size (最大排他サイズ)
名前でフィルタリングするには、「search net events or groups (ネットイベントまたはグループを検索)」と表示された検索フィールドを使用します。ユーザーは、これらのイベント タイプごとにグループ化できます。
グループ名 | 説明 |
---|---|
Level (レベル) | 各レベルに 1 つのグループを作成します。 |
Flat (フラット表示) | 単一のグループを作成します。すべてのネット イベントが含まれます。 |
Name (名前) | 1 文字につき 1 つのグループを作成します。 |
レベルごとにグループ化すると、同じ名前が別々のレベルに表示されるため、データを把握しやすくなります。以下の表では、これらのレベルについて説明しています。
レベル | 説明 |
---|---|
0 | 通常は、チャンネル名を使用するデータ グループをすべて表示するチャンネル情報です。 |
1 | レプリケートされたオブジェクト (アクタ)。このレベルのほとんどのイベントでは、シリアル化されたオブジェクトが表示されます。 |
2 | プロパティ レプリケーションまたは RPC に由来するイベントを報告します。 |
3 | プロパティのシリアル化の際にイベントを報告します。 |
4 | プロパティや配列コンテンツなどをシリアル化する際に追加のイベントを報告します。 |
[Net Stats] パネルには、選択範囲にデータのないイベントをフィルタリングする !0 トグルが備わっています。
NetStatsCounters
[NetStatsCounters (ネット統計カウンタ)] タブには、選択したパケット、または指定した範囲内のパケットのレプリケーション システムに関連する統計カウンタが表示されます。
統計には、次の 2 つの異なるカテゴリがあります。
-
FrameStats (フレーム統計):フレーム全体の統計カウンタ。これは通常、ネットワークの構築に関連する統計カウンタを報告するために使用されます。これは、すべての接続間で共有される処理が対象となります。たとえば、このフレームで現在更新されているオブジェクトの数などです。
-
PacketStats (パケット統計):特定のパケットそれぞれに関連する統計カウンタ。たとえば、シリアル化がスケジュールされているオブジェクトの数や、パケットに実際に該当した数などです。
サンプル データ
Networking Insights によって視覚化されるデータに関して理解を深めるために、以下の例を用意しています。
レプリケートされたオブジェクト

新しいアクタ、ReplicationGraphDebugActor、NetGUID 10 の最初のレプリケーションです。
新しいアクタを含むデータ グループの前に、新しいアクタからエクスポートされたすべての参照 (NetGUIDS など) を含む NetGUID データ グループがあります。
RPC

これは ClientAckGoodMove という名前の RPC で、NetGUID 14 で PlayerPawn_C をターゲットとしています。
GUID はマッピングされている必要があります。
データ グループを分割する
分割されたデータ グループの送信によって生成されたイベント データは、最初の部分を報告します。分割されたデータ グループを受け取ると、最初にその他の部分が報告され、すべての部分を受け取ると、イベントが最後の部分とともに報告されます。
これは、分割された送信データ グループです。データ グループに含まれるイベントは、そのデータ グループよりも大きくなることに注意してください。
次のいくつかのパケットは以下のようになります。

SubObject

SubObject (サブオブジェクト) の例です。BotPawn_C の後の 2 つ目のアクタが同じデータ グループを共有することに留意してください。