Networking Insights の概要

ネットワーク パフォーマンス プロファイル ツールの Networking Insights の概要

Choose your operating system:

Windows

macOS

Linux

Unreal Insights には、ネットワーク トラフィックの解析、最適化、デバッグを行う Networking Insights が含まれています。以下の機能を使って、トレース情報を記録してネットワークの挙動を視覚化することができます。

  • 記録されているネットワーク セッション中に表示可能なマシンを画面に出力する Game Instance (ゲーム インスタンス) コントロール

  • 発信または着信データを視覚化する Connection Mode (接続モード) コントロール

  • ゲーム中に送受信されるパケットのタイムライン (およびサイズ) を表示するパケット概要パネル

  • パケット コンテンツ パネルは、レプリケートされたオブジェクト、プロパティ、リモート関数コールなどパケットのコンテンツを表示します。

  • Net Stats パネルは、パケットの合計サイズ、最大サイズ、平均排他 (または包括) パケットサイズに関する統計など、選択されたパケットのトレース イベントを表示します。

NetworkingInsightsHero.png

セットアップ

設定に進む前に Unreal Insights が実行されていることを確認してください。

Networking Insights を使用する

データを解析するには、以下のコマンドライン オプションでプロジェクト インスタンスを開始します。

-NetTrace=[VerbosityLevel] -trace=net

VerbosityLevel はゼロより大きい値に設定します。たとえば、ゲーム インスタンスが -NetTrace=1 で始まる場合、Unreal Insights は Unreal Instights でセッションを開きて、解析用にネットワーク トレース データを収集およびレポートします。

エディタはトレース データ用に独自のデータ ストアを実行します。つまり、エディタでの実行中にネットワーク トレース データを収集するために、トレースホストを指定する必要があります。トレースホストを指定するには、-NetTrace=1 -tracehost=localhost -trace=net を使用します。

Networking Insights ウィンドウ

Networking Insights ウインドウでネットワーク セッション データを見つけることができます。

その他のコマンド、その他の Unreal Insights ウィンドウの情報については、「リファレンス」を参照してください。

Overview of the entire Networking Insights window.

Networking Insights ウィンドウには、パケット概要パネル (1)、パケット コンテンツ パネル (2)、Net Stats パネル (3)、接続選択パネル (4) があります。

パケット概要パネル

パケット概要パネルには、送受信される各パケットのサイズ (ビット) を示すバー グラフが表示されます。詳細な調査が必要な大きいパケットの特定に便利です。バーを左クリックしてパケットを選択します。

各パケットのレポート サイズは圧縮前のサイズなので、通信上の実際のデータはレポートの値よりも小さくなる場合があります。

PacketOverviewPanel.png

パケット上にマウスをかざすと情報が表示されます。こうした情報には以下が含まれます。

  • Packet Index (パケット インデックス)

  • Sequence Number (シーケンス番号)

  • Content Size in bits (ビコンテンツ サイズ (ビット))

  • Total Size in bytes, with unused bits (サイズ合計 (未使用))

  • A timestamp for when the packet was sent or received (パッケージ送信時/受信時のタイムスタンプ)

  • The packet's current status (delivered or undelivered) (現在のパケットの送受信ステータス)

  • The connection state in which the packet was received (パケット受信の接続状態)

  • Engine frame number of when the packet was sent or received (パケット送受信時のエンジン フレーム番号)

複数のパケットを選択するには、最初のパケットをクリックして選択し、Shift キーを押しながら他のパケットをクリックします。選択解除したパケットは赤で表示されます。

パケット コンテンツ パネル

パケット コンテンツ パネルには、現在選択されているパケットの中身が表示されます。パケットの中身は、左側からビット 0 で始まる階層のイベント グラフとして表示されます。このメイン ツールを使って、各パケットに含まれるデータ内容をプロパティ レベルまで調査します。

PacketContentPanel.png

パケットに含まれるデータの束を表示するパケット コンテンツパネル。レプリケートされたオブジェクトとプロパティに関する情報が含まれています。

最初のレベルには、パケットに含まれるグループが表示されます。それぞれのグループには、属するチャンネルの名前が付いています。報告されたグループにデバッグ名が設定されている場合は channelname ではなく debugname を使って追加コンテンツ (あれば) の指定をします。

2 番目のレベルには通常、そのブループに含まれるレプリケートされたオブジェクトが表示されます。イベントに割り当てられた NetId(NetGUID) がある場合は、その ID も表示されます。

イベント階層の下の方には、レプリケートされたプロパティ (書き込みバイト数など) が表示されます。

イベント上にマウスを当てると、イベントのすべての情報が表示されます。

パネルは、パケットの検索、または特定の NetId に属するイベントの検索も制御します。

キーボードを使ってパケット コンテンツ パネルとパケット概要パネルに移動することができます。上下の矢印キーでレベル間を移動します。左右の矢印キーで同じレベルのイベント間を移動します。CTRL キーと CMD キーを押したまま、左右の矢印キーを押すと、パケット間を移動します。

接続選択パネル

パケット概要パネルの上の部分でユーザーを表示日付を選択できます。

connection-drop-down-list

接続ドロップダウン リストはパケット概要パネルの上部にあります。この例は、サーバー ゲーム インスタンスで受信データが選択された状態のプレイヤー0 の接続を示しています。

接続選択パネルでは 3 種類のドロップダウン リストを使用することができます。

ドロップダウン リスト

説明

Game Instance (ゲームインスタンス)

記録セッション中に観察されたそれぞれの一意の NetDriver に対して作成されたゲーム インスタンスを表示します。たとえば PIE を使用する場合は、サーバーと各クライアント用のインスタンスは別々になります。

Connection (接続)

特定の接続を選択し、選択したゲームインスタンスのセッション中に観察された各接続を表示します。

Connection Mode (接続モード)

送受信データを可視化するかどうかを指定します。

Net Stats パネル

Net Stats パネルには、Packet Overview パネルで選択されたパケット範囲に対するすべてのトレース イベントがリスト表示されます。

close-up-of-the-net-stats-panel-displaying-multiple-levels-of-data

レベルごとにイベントをグループ化した Net Stats パネル

このリストは、選択範囲に基づいてデータを集計するだけでなく、アクティブな列の値で昇順または降順にソートすることもできます。並べ替え順序を変更したり、列をアクティブまたは非アクティブにするには、リスト内の任意の場所を右クリックします。 以下の列を利用できます。

  • Type

  • Level

  • Instance Count

  • Total Inclusive Size (ビット)

  • Max Inclusive Size (ビット)

  • Total Exclusive Size

  • Max Exclusive Size

名前で絞り込むには、「search net events or groups (ネットイベントまたはグループを検索)」フィールドを使用します。これらのイベント タイプごとにグループ分けできます。

グループ名

説明

Level

1 レベルにつき 1 グループを作成します。

Flat

単一のグループを作成します。すべてのネットイベントを含みます。

Name

1 文字につき 1 グループを作成します。

レベルごとにグループ化すると同じ名前が別々のレベルに表示されるので、データが見やすくなります。これらのレベルを説明したのが以下の表です。

レベル

説明

0

チャンネル名を使用するグループをすべて表示する、一般的なチャンネル情報です。

1

レプリケートされたオブジェクト (アクタ)、このレベルのほとんどのイベントはシリアライズされたオブジェクトを表示します。

2

プロパティ レプリケーションまたは RPC が元となるイベントを報告します。

3

プロパティをシリアライズ化する時にイベントを報告します。

4

プロパティ、配列コンテンツなどをシリアライズ化する時に追加のイベントを報告します。

Net Stats パネルには、選択範囲にデータのないイベントをフィルタ処理する !0 トグルが付いています。

サンプル データ

ネットワーク パケット コンテンツ トレース マクロについては、「Unreal Insights のリファレンス」を参照してください。

Networking Insights が視覚化するデータの理解を深めるために、以下の例を用意しています。

レプリケートされたオブジェクト

Initial replication of a new Actor

新しい Actor--ReplicationGraphDebugActor, NetGUID 10 の最初のレプリケーションです。

新しいアクタを含むグループの前に、新しいアクタからエクスポートされたすべてのリファレンス (NetGUIDS など) を含む NetGUID グループがあります。

RPC

Example of an RPC called ClientAckGoodMove, which is part of a Character's movement system

ClientAckGoodMove という名前の RPC で、NetGUID 14 で PlayerPawn_C をターゲットとします。

GUID はマッピングされなければなりません。

グループを分割する

分割されたグループを送信して生成されたイベント データは、分割されたグループを受け取ると最初の部分を報告します。すべてを受信すると、イベントは最後の部分を報告します。

Example of an outgoing bunch.

分割された送信されるグループです。

次のいくつかのパケットはこのようになります。

Example of a packet providing the rest of the data for the split bunch.

イベントは最後の部分的なグループを報告するしますが、受信される分割グループは逆のパターンを示しています。

SubObjects

Example of sub-objects sharing the same bunch as their owner

SubObject の例です。留意すべき点は、BotPawn_C の後の 2 つめのアクタが同じグループを共有することです。