このページは編集中です。更新が保留になっている可能性があります。

Network Project Configuration

はじめに

NetworkProjectConfigはUnityのアセットクラスで、個々のゲームセッションで使用するFusionの設定を保存します。クライアントサーバーモードの場合、設定はランタイム時にサーバーによって強制されます。共有ゲームの場合は、Photonサーバープラグインが使用する設定を共有します。

設定にはさまざまな種類があり、特定のゲームモードを使用する際に排他的になるものもあります(必須のものもあります)。例:インタレストマネジメントの設定は、Eventual Consistency転送モードを使用しているときにのみ有効。同時に、Delta Snapshotsモードは、クライアント・サーバーモードでのみ利用可能、など。

トップに戻る

シーン設定

  • Peer Mode

    • Single メインのアクティブなシーンが1つだけ読み込まれます。ゲームビルド実行時のデフォルト設定です。
    • Multiple 複数のピア(サーバーまたはクライアント)が、同じエディタ/ビルドインスタンスで同時にゲームシーンを読み込みます。主に開発/デバッギングに使用されます。
  • Scenes は、Unityのビルド設定で有効になっているシーンのリストを保持します。Fusionでは、自動読み込みのために、これらをインデックス化する必要があります。

トップに戻る

物理設定

  • Physics Engineは、物理シミュレーションのステッピングをFusionに任せるかどうかを定義します。

    • Physics 3D PhysXは、FixedUpdateNetwork()でFusionが直接ステップします。
    • Physics 2D UnityのBox2Dは、FixedUpdateNetwork()でFusionが直接ステップします。
    • None Fusionは物理のステップを行わず、Unityが処理します。これは通常、物理を全く必要としないゲームや、よりシンプルな共有モードのアプリケーションでのみ使用されます。
  • Prediction Mode

    • Server Only 物理は、FixedUpdateNetworkからの新しいティックを転送する際にのみステップされます。再シミュレーションは物理エンジンに影響を与えません。
    • Client Prediction 物理は、クライアント上で完全に予測されます(サーバーとの調整のためにロールバックされます)。これはより負荷がかかり(PhysXシーンのリセットのため)、WYSIWYGな物理サンドボックス体験を提供したいゲームでは慎重に使用する必要があります。

トップに戻る

オブジェクトの設定

シミュレーション

トップに戻る

ティックレート

ティックは離散的な時間を表し、特定のホスト上での「実際の」時間経過とは切り離されています。例えば、チックレートを1/60秒と定義した場合、これがシミュレーションで使用されるタイムステップとなります。ハードウェアクロックの代わりに目盛りを使用することで、ネットワークセッションのすべての参加者が「時間」に関する共通の基準フレームを共有することができます。これは、未来や過去の出来事を正確に推論するために重要です。

裏では、Fusionは希望のティックレートにできるだけ忠実であろうとします。サーバーから与えられた正しいティックタイムに同期するために、ミクロな補正を行うこともあります。Fusionは、複数のシミュレーションステップを連続して実行し、更新された古い状態から新しい現在の状態を確立する再シミュレーションも行います。

トップに戻る

レプリケーションモード

ゲームのReplication Mode(別名:state transfer mode)は、NetworkProjectConfigアセットのSimulationセクションで定義します。

APIはすべてのレプリケーションモードで同一であるため、同じゲームとコードを使用して、異なるレプリケーションモードを使用する異なるゲームインスタンスを実行することができます。これにより、開発者は開発の後半でレプリケーションモードを選択したり、切り替えたりすることができます。

トップに戻る

デルタスナップショット

Delta Snapshotsは、サーバーの信頼性が高く、非常に効率的なデルタ圧縮を使用して完全なワールドスナップショットを転送します。Delta Snapshotsでは、すべてのクライアントが継続的にティックの正確なデータを受け取ることができます。このモードは、プレイヤー数が少なく、テンポの速い対戦型ゲーム(例:10人チームベースのFPS)に最適です。

このモードは、専用サーバーまたはプレイヤーホストによって開始されたゲームでのみ使用できます(共有クラウドゲームでは使用できません)。

トップに戻る

Eventual Consistency

Eventual Consistencyモードでは、「Area of Interest」(関心領域)が追加されるため、多くのNetworkObject(ネットワークオブジェクト)や複雑な世界を持つゲーム(サバイバルゲームやバトルロワイヤルゲームなど)に適しています。

  • Server Auth: このモードは、専用サーバーまたはプレイヤーホストによって開始されたゲームでのみ使用できます(共有クラウドゲームでは使用できません)。
  • Client Auth: Photonクラウド上の共有ゲームでは、クライアントの権限を持つECが使用されます。関心領域はPhoton Serverプラグインが管理します(NetworkTransformまたはNetworkRigidbodyコンポーネントを持つ全てのGameObjectに対して自動的に)

ドキュメントのトップへ戻る