This document is about: FUSION 2
SWITCH TO

Fusion Statistics 2.1

RELEASE DLLでのパフォーマンスの影響を避けるため、Fusion StatisticsはDEBUG DLL使用時のみ統計データを収集します。

概要

Fusion Statisticsは、Fusionの有用なテレメトリー(収集データ)を監視するためのUIコンポーネントで構成されています。FusionStatisticsコンポーネントは、テレメトリーのUI要素の生成・初期化・制御を行う主要なコンポーネントです。

Fusion Statisticsは、標準的なUnityEngine.UIコンポーネントを使用しているため、スクリーンオーバーレイや、3D空間のオブジェクトにアタッチして統計情報を表示することができます。

Fusion Statistics Example
Fusion Statisticsの使用例

基本的な使用方法

Fusion Statisticsを開始するには、

  • 起動前にNetworkRunnerオブジェクトにFusionStatisticsコンポーネントを追加する
  • Network Runner Controlsウィンドウの「Statistics」ボタンをクリックする
  • NetworkRunnerインスタンスの拡張メソッドNetworkRunner.SetupStatistics()を呼び出す

備考:「Statistics」ボタンを再クリックするか、拡張メソッドNetworkRunner.RemoveStatistics()を呼び出すことで、Statisticsを削除することが可能です。

Add Fusion Statistics
Fusion Statisticsを追加

セットアップが完了すると、様々な情報が表示される統計パネルを含むルートCanvasが作成されます。

統計パネルの操作

Anchor and Collapse
統計パネルの吸着と折りたたみ操作

上の図のように、パネルをスクリーン画面端に吸着させたり、ゲーム画面が見やすいように折りたたむことができます。
マルチピアモード時は、統計パネルを切り替えるボタンが有効になります。

統計ページ

統計パネルには、メモリ・ネットワーク・シミュレーションなどの特定の情報を表示するページが複数あり、パネル側面のタブボタンを使用して切り替えることが可能です。一部のページの統計は、NetworkRunnerの更新(収集頻度)ごとに表示するか、1秒ごとに表示するかを選択できます。

備考:画像は共有モードの1クライアントでキャプチャしたため、送信や入力関連の統計の一部が0になっていますが、これは想定通りです。

Simulationページ

Statistics Simulation Page
StatisticsのSimulationページ

Simulationページには、シミュレーション自体に関連する統計が表示されます。

  • Forward Ticks:シミュレーションされたフォワードティック数です。
  • Re-simulation Ticks:シミュレーションされた再シミュレーションティック数です。
  • Objects Update In:Fusionが受信したオブジェクト更新数です。
  • Objects Update Out:ローカルシミュレーションで更新され送信されたオブジェクト数です。

Networkページ

Statistics Network Page
StatisticsのNetworkページ

ネットワーク関連の統計を表示します。

  • RTT:最後に計算されたラウンドトリップタイムです。RTTは常に更新ごとに表示されます。
  • In Bandwidth:受信したバイト数です。
  • Out Bandwidth:送信したバイト数です。
  • In Packets:シミュレーションが受信したパケット数です。
  • Out Packets:シミュレーションが送信したパケット数です。
  • Input In Bandwidth:受信した入力のバイト数です。
  • Input Out Bandwidth:送信した入力のバイト数です。

Memoryページ

Statistics Memory Page
StatisticsのMemoryページ

Memoryページには、Fusion内部で使用される2つのアロケーターの、合計メモリ使用量とメモリブロック使用状況が表示されます。いずれかの円グラフが100%に達した場合、Fusionはそれ以上のメモリが使用できないことになります。このメモリの値はNetworkProjectConfigで変更できます。

Behaviourページ

Statistics Behaviour Page
StatisticsのBehaviourページ

Behaviourページから、Render/FixedUpdateNetwork内部で実行されているNetworkBehaviour/SimulationBehaviourの数や時間を確認できます。特定のNetworkBehaviourの実行時間に何ミリ秒が費やされているかなどを確認するために使用できます。

「Add Behaviour」ボタンをクリックして、計測したいNetworkBehaviourを追加してください。最初の10件のみが表示されるため、目的のNetworkBehaviourを探すには検索バーを使用してください。

上部ボタンを使用すると、「FixedUpdateNetwork」と「Render」の値を切り替えることができます。

Objectページ

Statistics Object Page
StatisticsのObjectページ

Objectページは、特定のネットワークオブジェクトの送受信量を確認するために使用されます。「Add Object」ボタンをクリックして、オブジェクトを追加してください。最初の10件のみが表示されるため、目的のオブジェクトを探すには検索バーを使用してください。

設定の調整

Statistics Hub Config
Fusion Hub上のStatistics設定

Fusion Statisticsは、コンフィグアセットを直接編集するか、Fusion Hubの設定ページから調整できます。背景の透明度の変更・アクティブなしきい値の表示・新しいしきい値の追加・ベースカラーやしきい値のグラデーションの変更などを行うことができます。

設定は、統計パネルのセットアップ時に適用されます。

コンフィグアセットのパスはPhoton/Fusion/Runtime/Statistics/Resources/FusionStatsResources/FusionStatisticsDefaultConfig.assetです。

World Anchor

主にVRなど、統計グラフをワールド座標に置く必要がある場合は、拡張メソッドNetworkRunner.SetStatisticsWorldAnchor(Anchor)を使用することができます。
アンカーにnullを渡すと、Canvasはスクリーン座標に復元されます。StatisticsRootCanvasオブジェクトのスケールを調整して、サイズを変更してください。

統計パネルのCanvasは、ゲームオブジェクトの位置に追従します。オブジェクトが破棄されると、統計がNetworkRunnerから削除されてしまうため、再設定する必要があります。

2.0からの破壊的変更

Fusion Statisticsは若干変更されているため、Fusion 2.0からアップグレードする際には以下の手順が役立ちます。

手動データ収集

値を直接収集したい場合は、NetworkRunnerFusionStatisticsManagerから統計情報を直接読み取ることが可能です。現在は、以下の方法でアクセスできます。

備考:各シミュレーションの統計情報には、対応するFusionStatType列挙型の値が含まれます。

C#

public void StatisticsCollectData() {
    if (Runner.TryGetFusionStatistics(out var statisticsManager)) {
        // シミュレーションスナップショット
        var rtt = statisticsManager.SimulationSnapshot.Stats[FusionStatType.RoundTripTime];
        var forwardTicks = statisticsManager.SimulationSnapshot.Stats[FusionStatType.ForwardTicks];
        
        // メモリスナップショット
        var generalMemoryFree = statisticsManager.MemorySnapshot.GeneralAllocatorMemorySnapshot.TotalBytesFree;
    }
}

既知の問題

  • 設定ページでグラデーションのフィールドを編集する際、UnityでGUIClipsに関するエラーが発生する場合があります。
Back to top