This document is about: FUSION 2
SWITCH TO

FusionStats

概要

Fusion Statsは、ネットワーク・テレメトリを監視するためのUIコンポーネントで構成されています。FusionStats コンポーネントは、テレメトリ UI エレメントの階層を生成、初期化、制御するための主要コンポーネントです。

Fusion Statsは、基本的なUnityEngine.UIコンポーネントを使用しており、ビルド時に統計情報をスクリーンオーバーレイとして表示したり、3D空間のオブジェクトにアタッチしたりすることができます。

基本的な使い方

Fusion Statsをシーンに追加する方法

  • Unity EditorメニューをFusion > GameObject > Add Fusion Statsの順に実行する; または、
  • Hierarchy、またはHierarchy内のGameObjectを右クリックし、Fusion > Add Fusion Statsの順に選択する
add fusion stats
Add Fusion Stats to a GameObject.
  • GameObjectが選択されている場合: FusionStats のデフォルトは StatsCanvasType.GameObject で、統計情報はそのオブジェクトの3D空間にレンダリングされます。
  • GameObjectが選択されていない場合: FusionStats のデフォルトは StatsCanvasType.Overlay となり、統計情報はスクリーン空間にレンダリングされます。

また、このメニューは自動的にFusionStatsBillboardコンポーネントをオブジェクトに追加します。FusionStats.CanvasTypeGameObjectに設定されている場合、FusionStatsBillboardコンポーネントは自動的にGameObjectをカメラ方向に回転させます。

ランタイム機能

シミュレーションの実行中に、利用できる追加機能がいくつかあります。ここでは、FusionGraphのランタイム中に利用できる様々な「隠された」機能を紹介します。

ビューオプション

FusionGraphのタイトルをクリックすると、そのグラフの表示オプションのドロップリストが表示されます。

selecting alternate graph methods.
グラフメソッド方法の選択

平均化オプション

実行時に FusionGraph の値フィールドをクリックすると、現在のデータソースで利用可能な平均化オプションが切り替わります。

  • 秒あたりの平均
  • ティック毎の平均
  • サンプルあたりの平均
selecting alternate averaging options.
平均化オプションの選択

Ping送信

統計パネルの一番上にある NetworkRunner の名前をクリックすると、階層にある FusionStats コンポーネントに ping を送ります。GameObjectが選択されていない場合、このアクションを行うとインスペクタでFusionStatsコンポーネントを選択します。

pinging fusionstats game object.
FusionStatsゲームオブジェクトのPing送信

FusionStats コンポーネント

FusionStatsは、全てのFusion Statsの主要なルートコンポーネントです。子コンポーネントであるCanvasやUIコンポーネントを生成し、実行時にこれらの遠隔測定コンポーネントを NetworkRunnerNetworkObject データソースに接続します。

再描画間隔

UI の更新がこの値ごとに 1 回以上起こらないように制限します。この値が高いほどパフォーマンスが向上します。

レイアウトセクション

一般的にFusionStatsキャンバスのレイアウトに影響を与えるレイアウトコントロールです。

キャンバスの種類

キャンバスには以下の2つのモードがあります。

  • GameObject:キャンバスを3D空間にレンダリング。
  • Overlay:キャンバスをスクリーン空間でレンダリング。

GameObject Rect / Overlay Rect

これらの2つのRectは編集可能で、UI.Canvas上でスタッツ要素がレンダリングされる場所を定義します。

CanvasTypeGameObjectに設定されている場合、GameObjectRectが使用され、スタッツはオブジェクトの中心からオフセットされます。

CanvasTypeOverlayに設定されている場合は OverlayRectが使用され、画面上のどの位置にスタッツが表示されるかを指定します。FusionGraphコンポーネントは、Rect領域を埋めるために必要に応じて拡大縮小されます。

Rectは、インスペクタでシミュレーションされたキャンバスの領域をクリックしてドラッグすることで描くことができます。

角をドラッグする場合は、必ず Rectドローワを展開してください。

collapsed gameobject rect
Collapsed Normalized Rect Drawer aligned to upper right corner.
gameobject rect
Expanded Normalized Rect Drawer, aligned to upper right corner.
gameobject stats
Stats accordingly constrainted to the upper right corner of canvas.

Fusion Graphsレイアウトセクション

FusionGraphコンポーネント(Fusion Statsキャンバスの下部)のレイアウトに影響を与えるレイアウトコントロールです。

デフォルトレイアウト

子コンポーネントである FusionGraph コンポーネントが Auto に設定されている場合、このレイアウト設定が使用されます。Autoに設定されている場合、各グラフの現在の幅/高さに基づいてレイアウトが選択されます。

テキストのオーバーラップなし

この設定により、Fusion Graphのレイアウトオプションが、グラフのUIテキストがグラフシェーダー(縦方向のテレメトリバー)とオーバーラップしないようになります。テキストが文字化けするような場合にこの設定を使用してください。一般的には、VRのようにキャンバスがカメラに向かって完全にビルボード化されていない場合に使用します。

グラフの列数

グラフのカラム数は、FusionStats.GraphColumnCount設定で手動で設定できます。FusionStats.GraphColumnCountを0に設定すると、FusionStats.GraphMaxWidthの値が使用され、キャンバスの幅がその値を超えると自動的に新しいカラムが作成されます。

グラフの最大幅

FusionGraph要素が展開される最大幅です。この幅を超えて拡張されると、必要に応じて新しいカラムが追加されます。

ネットワークオブジェクト統計セクション

ルートの NetworkObject コンポーネントに固有のオプションです。 これらは、NetworkObjectを持つGameObjectにFusionStatsを追加した場合のみ有効です。

オブジェクトの統計情報の有効化

ルートNetworkObjectコンポーネントのUI要素と遠隔測定処理を有効にします。

オブジェクトタイトルの高さ

GameObject名のラベルエリアの高さ。

オブジェクトIDの高さ

NetworkObject IDとプレイヤー権限を表示する部分の高さ。

オブジェクトメーターの高さ

横のメーターバーセクションの高さ。

データセクション

どのデータソースを使用し、どのテレメトリを表示するかのオプション。

ランナー

すべてのテレメトリデータには NetworkRunner 関連付けが必要です。これはネットワークランナーが起動すると自動的に見つかります。

接続先

Multi-Peerモードでは複数のランナーが存在することがあります。これらのSimulationModesフラグとFusionStats.EnforceSingleを併用することで、いくつのPeerが動作していても、このFusionStatsのインスタンスは1つしか存在しません。

含まれる統計情報

各テレメトリ項目は、レンダリングされる FusionGraph セットに含めることも除外することもできます。利用可能な遠隔測定データはエンジンの3つの部分から提供され、それに応じてグループ化されます。

  • Net Stats: ラウンドトリップタイム(rtt)や送受信データの合計などのネットワークトランスポートレイヤーの統計。
  • Sim Stats: 再シミュレーション回数、スナップショットサイズ、補間/予測の仕様などの SimulationNetworkRunner の統計情報。
  • Obj Stats: RPC カウント、ネットワーク状態の値が使用する帯域幅など、NetworkObject 固有のテレメトリ。

ライフサイクルセクション

FusionStats GameObjectインスタンスのシングルトンと自己破壊に影響するオプションです。

自動破棄

Trueにすると、NetworkRunner が切断された時に FusionStats GameObjectは破棄されます。

Enforce Single

true の場合、同じ FusionStats.GUID を持つ NetworkStatsGameObject インスタンスを繰り返し破棄します。これはMulti-Peerモードで、各Peerに1つずつではなく、1つのFusionStatsオブジェクトのインスタンスだけが存在する場合に便利です。これを FusionStats.ConnectTo と組み合わせて使用すると、どのピアタイプを監視するかを制御できます。

GUID

FusionStats.EnforceSingleと組み合わせて使用し、Multi-Peerモードで同じStatsオブジェクトの複数のインスタンスを識別します。

Back to top