This document is about: FUSION 2-SHARED
SWITCH TO

Network Project Config

概要

Network Project Configは、Photon Fusionを導入したプロジェクトに影響を与える様々な情報やパラメーターを保持するアセットです。

  • バージョン
  • モード
  • デフォルトのプレイヤー数
  • ネットワーク状況のテスト
  • 暗号化
  • プレハブ情報の表示

このアセットはAssets/Photon/Fusion/Resources/NetworkProject.Config.fusionにあります。UnityエディターのトップメニューのTools > Fusion > NetworkProjectConfigからアクセスすることもできます。アセットを変更した後は適用する必要があるため、下部の「Apply」ボタンを押すか、変更を保存する確認ダイアログを承認してください。

Default view of the Network Project Config Asset.
Network Project Configアセットのデフォルト表示

Fusion Version

このセクションでは、現在使用中のFusionのバージョンが表示されます。ドロップダウンを展開すると、Fusionが使用しているダイナミックリンクライブラリ(DLL)の詳細が表示されます。

Physics

Fusion 2.1.x以降から、Physics Forecastを有効にすることで、Rigidbodyに対するNetworkTransformの補外が可能になります。これによって、オブジェクトにローカル時間を適用して、すべてのクライアント上でスムーズなインタラクションを行うことができます。

物理の詳細はこちらをご覧ください。

Miscellaneous

このセクションでは、Fusionのプロジェクトに関する補助的なパラメーターを設定できます。

  • Enqueue Incomplete Synchronous Spawns:有効にすると、未完了の同期スポーン(Addressablesなど)は、例外をスローするかわりに、キューに追加されます。これはFusion.NetworkSpawnStatus.Queuedを返し、次のフレームでオブジェクトのスポーンを試みます。Fusion 1.xからの移行時に、有効にすると便利です。
  • Invoke Render In Batch Mode:有効にすると、Unityのバッチモード再生時にFusion.SimulationBehaviour.Renderコールバックが呼び出されます。バッチモードで実行するには、Unityのコマンドライン引数に-batchmodeを渡します。バッチモードで動作するヘッドレスサーバーを使用する場合は、無効にすると便利です。詳細はUnityのバッチモードをご覧ください。
  • Network Id Is Object Name:有効にすると、新規にスポーンしたオブジェクトの名前にネットワークIDが追加され、[Network Id] Original Object Nameのようになります。
  • Hide Network Object Inactivity GuardNetworkObjectが一度もアクティブにならずに破棄された場合に発生する問題を回避するため、NetworkObjectInactivityGuardという名前のゲームオブジェクトがNetworkObjectOnDestroyを監視します。このオプションを有効にすると、NetworkObjectInactivityGuardはヒエラルキーに表示されません。
  • Allow Client Server Modes in WebGL: 共有モードにはホストモードのようなWebGLの制限がないため、この設定は使用しません。

Network

  • Connection Timeout:更新を受信できなくなってから切断するまでの時間(秒)です。サーバーは更新を受信できないクライアントを切断します(クライアントは更新を受信できないサーバーから切断されます)。
  • Connecting Shutdown Time:接続ステータスがシャットダウンになった後、接続周りのリソースが解放されるまでの時間(秒)です。
    Reliable Data Transfer Modes:データ転送の信頼性を決定します
    • Client to Server:クライアントからサーバーへのデータ転送の信頼性が確保されます
    • Client to Client With Server Proxy:サーバープロキシを使用したクライアント間のデータ転送の信頼性が確保されます

Encryption

FusionのプロジェクトのEncryption(暗号化)の有効/無効を切り替えます。Photon App SettingsEncryption Modeを合わせて更新する必要があることに注意してください。
詳細は接続の暗号化をご覧ください。

Network Conditions

この設定で、異なるネットワーク状況(遅延やパケットロス)をシミュレーションしたりテストしたりすることが可能です。

  • Enabled:有効にすると、以下のオプションが表示されます
  • Delay Shape:遅延の波形パターンを設定します
    • Noise
    • Sine
    • Square
    • Triangle
    • Saw
    • Reverse Saw
  • Delay Min:最小の遅延秒数(0~0.5)
  • Delay Max:最大の遅延秒数(0~0.5)
  • Delay Period:遅延の周期の秒数
  • Delay Threshold:波形パターンの値がしきい値(0~1)未満になると、遅延はDelay Minになる
  • Additional Jitter:波形パターンから遅延の値が決定された後、その値にランダムな値(0~設定値)が追加される
  • Loss Chance Shape:ロスの波形パターンを設定します(選択肢はDelay Shapeと同じです)
  • Loss Chance Min:パケットロス率の最小値(0(0%)~1(100%))
  • Loss Chance Max:パケットロス率の最大値(0(0%)~1(100%))
  • Loss Chance Threshold:波形パターンの値がしきい値(0~1)未満になると、パケットロス率はLoss Chance Minになる
  • Loss Chance Period:パケットロス率の周期の秒数
  • Additional Loss:波形パターンからパケットロス率の値が決定された後、その値にランダムな値(0~正規化された設定値)が追加される

遅延とロスの設定は、値を秒数とパーセンテージで決定すること以外はほぼ同じで、パケットロス率は0%から100%でシミュレーションされます。

Heap

Fusionで使用するメモリの事前割り当て量を定義して、メモリ管理を最適化し、パフォーマンスを向上できます。

  • Page Shift:各Heap Pageのサイズ(1KB~256KB)を指定します。メモリ割り当ての粒度に影響し、サイズに比例してメモリ割り当て量は増加します。
  • Page Count:ヒープの初期ページ数(16~4096)を指定します。初期の合計メモリ割り当て量に影響します。

Weaver Settings

Fusion IL Weaverに影響する設定で、低レベルなネットコードを生成してAssembly-CSharp.dllに注入するために使用されます。

  • Assemblies to Weave:IL Weaver対象にするアセンブリのリストで、大文字小文字は区別しません。デフォルトで、以下が含まれます。
    • Fusion.Unity
    • Assemble-CSharp
    • Assembly-CSharp-firstpass
    • Fusion.Addons.Physics(プロジェクトでFusionの物理システムを使用する場合)
  • Use Serialized Dictionary:有効にすると、ネットワークプロパティの初期値の格納にFusion.SerializableDictionaryを使用します。無効にすると、IL WeaverはSystem.Generic.Dictionaryを使用します。System.Generic.DictionaryはUnityではシリアライズ不可能ですが、Odinなどの独自のシリアライズシステムに対応します。
  • Null Checks for Networked Properties:有効にすると、IL Weaverは、ネットワークプロパティを持つFusion.NetworkBehaviourFusion.NetworkObjectに紐付けられているかのチェックを追加します。
  • Check Rpc Attribute Usage:有効にすると、IL Weaverは、Fusion.RpcAttributeに対応していない型が使用されていないかをチェックします。例えば、Fusion.RpcAttributeUnity.MonoBehaviourのメソッドに追加されていた場合、ログに「RPCはFusion.NetworkBehaviour/Fusion.SimulationBehaviourにのみ追加できる」旨の警告が表示されます。すべての型をスキャンする必要があるため、IL Weavingとコンパイル時間が増加します。詳細はRPCをご覧ください。
  • Check Networked Properties Being Empty:有効にすると、不適切なFusion.NetworkedAttributeでプロパティを定義した時に、警告が表示されるようになります。以下のように、プロパティのgetter/setterは空にする必要があります。

C#

[Networked]
public int NetworkedProperty {get; set;}

詳細はネットワークプロパティをご覧ください。

Prefabs

プレハブをアンロードする挙動を設定できます。

  • Unload Prefab On Releasing Last Instance:有効にすると、インスタンスがすべて解放された時に、プレハブがアンロードされます
  • Unload Prefabs On Shutdown:有効にすると、シャットダウン時にすべてのプレハブがアンロードされます

プレハブのアンロードは、メモリ使用量の最適化目的では不要ですが、必要に応じて再ロードしたい場合には有効です。

Auto-Generated

自動生成された情報が表示されるセクションです。

  • Show Network Prefabs Inspector:プロジェクト内で、Fusion.NetworkObjectコンポーネントが付いている(Fusion.NetworkObject.IsSpawnableが有効になっている)プレハブを確認できるウインドウが開きます。
  • Prefabs:プロジェクト内の、NetworkObjectプレハブがリストされているドロップダウンリストです。このリストを直接更新することはできませんが、実行時にFusion.NetworkPrefabTable.TryAddSourceから、追加のプレハブを登録できます。
  • Behaviour Meta:プロジェクト内の、すべてのFusion.SimulationBehaviourのメタ情報(実行順など)を含むリストです。

Network Prefabs Inspector

前述した通り、Network Prefabs Inspectorでは、Fusion.NetworkObjectコンポーネントが付いている(Fusion.NetworkObject.IsSpawnableが有効になっている)プレハブを詳細に確認できます。

An example of the Network Prefabs Inspector.
Network Prefabs Inspectorの表示例

ウインドウのメインツールバーには、以下の機能があります。

  • Refresh:リストをリフレッシュし、新しいプレハブが追加された場合はリストが更新されます
  • Sync Selection:有効にすると、Unityで選択したプレハブアセットが、ウインドウでハイライトされます
  • Loaded Only:有効にすると、ロード済みのプレハブのみが表示されます

ウインドウの各行は異なるプレハブを表し、各列は以下を表します。

  • State:プレハブがロード済みかどうかを示します
  • Type:プレハブの種類(ロード方法)を示します
    • RResourcesフォルダにあるプレハブです
    • SLResourcesフォルダ外にある静的なプレハブです
    • AAddressableでロードされるプレハブです
  • PrefabId:Fusionによってプレハブに割り当てられたIDです
  • Path:プレハブのファイルパスです
Back to top