Networking Insights の概要

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

Choose your operating system:

Windows

macOS

Linux

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

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

  • Game Instance はネットワーク セッションの記録中に可視のマシンの表示を制御します。

  • Connection Mode は送受信データを可視化します。

  • Packet Overview パネルは、ゲーム中に送受信されるパケットのタイムライン (およびサイズ) を表示します。

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

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

NetworkingInsightsHero.png

設定

Unreal Insights

データを解析するには、Unreal Insights を有効にしてトレース情報を記録します。トレース レコーダーがアクティブになった後、以下のコマンドライン オプションでゲーム インスタンスを開始します。

-NetTrace=[VerbosityLevel] -trace=net

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

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

Networking Insights ウィンドウ

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

Unreal Insights のリファレンス

NetworkInsightsOverview.png

Networking Insights ウィンドウには、Packet Overview パネル (1)、Packet Content パネル (2)、Net Stats パネル (3)、Connection Selection パネル (4) があります。

Packet Overview パネル

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

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

PacketOverviewPanel.png

パケット上にマウスをかざすと情報が表示されます

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

Packet Content パネル

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

PacketContentPanel.png

最初のレベルには、パケットに含まれるグループが表示されます。それぞれのグループには、属するチャンネルの名前が付いています。報告されたグループにデバッグ名が設定されている場合は channelname ではなく debugname を使って追加コンテンツ (あれば) の指定をします。2 番目のレベルには通常、そのブループに含まれるレプリケートされたオブジェクトが表示されます。イベントに割り当てられた NetId(NetGUID) がある場合は、その ID も表示されます。イベント上にマウスを当てると、イベントのすべての情報が表示されます。イベント階層の下の方には、レプリケートされたプロパティ (書き込みバイト数など) が表示されます。

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

接続ドロップダウン リスト

Packet Overview パネルの上の部分でユーザーを表示日付を選択できます。

ConnectionDropdownLists.png

ドロップダウン リストは [Packet Content] パネルで使用できます。

ドロップダウン リスト

説明

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

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

Connection (接続)

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

Connection Mode (接続モード)

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

Net Stats パネル

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

NetStatsPanel.png

レベルごとにイベントをグループ化した 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

  • Flat

  • Name

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

レベル

説明

0

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

1

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

2

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

3

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

4

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

!0

サンプル データ

Unreal Insights のリファレンス

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

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

ReplicatedObjects.png

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

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

RPC

RPCs.png

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

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

グループを分割する

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

SplitBunches_1.png

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

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

SplitBunches_2.png

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

SubObjects

SubObjects.png

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

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