This document is about: FUSION 2
SWITCH TO

マルチピアモード

概要

マルチピアモード(Multi-Peer Mode)によって、完全に独立した複数のNetworkRunnerインスタンスと、そのNetworkRunnerに関連するシミュレーション・物理シーン・ネットワーク接続・Unityエディター内のシーンを生成できます。

UnityエディターのトップメニューからFusion > NetworkProjectConfigを選択し、PeerModeMultipleにすると、マルチピアモードが有効になります。

Add Fusion Stats
NetworkProjectConfigでマルチピアモードを選択する

Unityで複数のピア(NetworkRunner)を実行できると、

  • ビルドを作成して実行することなく、エディター上で複数のクライアントをテストできる
  • 専用サーバーで、複数のゲームセッションを作成できる
  • クライアントは、複数のゲームセッションに同時に接続できる

NetworkRunnerの可視性

NetworkRunnerの可視性は、マルチピアモードにのみ適用されます。デフォルトでは、すべてのピアが表示されます。シーンをロードしたりオブジェクトをスポーンすると、それらの可視性に影響するコンポーネント(RendererAudioSourceなど)が、NetworkRunnerの可視性システムに自動的に登録されます。

RunnerEnableVisibility コンポーネント

重要: 可視性を制御するには、NetworkRunnerのゲームオブジェクトにRunnerEnableVisibilityコンポーネントを追加する必要があります。このコンポーネントがNetworkRunnerに存在する時、すべてのネットワークオブジェクト(シーンオブジェクトを含む)と、シーン上にある(動的にインスタンス化していない)すべての通常のゲームオブジェクトの、表示関連のコンポーネントがスキャンされ、NetworkRunnerに関連付けられたリストに追加されます。それらのコンポーネントは、NetworkRunner.SetVisibility(bool)メソッドで、表示/非表示を切り替えることができます。

GetVisible() / SetVisible(bool)

マルチピアモードでは、NetworkRunnerに関連付けられたコンポーネント(描画や音響)の有効/無効を、NetworkRunner.SetVisible(bool)で切り替えることができます。そのため、NetworkRunnerの動作に影響を与えることなく、開発者はゲームオブジェクトの表示/非表示を切り替えることができます。

EnableOnSingleRunner コンポーネント

このコンポーネントは、Componentsリストの各コンポーネントに、RunnerVisibilityLinkコンポーネントを自動的に追加します。マルチピアモードでは、それらのコンポーネントは、1つのインスタンスのみが有効になるように制限されます。Unityからシングルトンが想定されているコンポーネント(AudioListenerEventSystemなど)では、特に重要です。

Runner Visibility Nodes
Runner Visibility Nodes
すべてのNetworkRunnerは完全に独立していることが想定されているため、シミュレーションに影響を与えるものについては、静的変数やシングルトンの使用を避けることを強く推奨します。これは常に必須というわけではありませんが、複数のNetworkRunnerインスタンスを実行する(マルチピアモードを使用する)場合、静的変数とシングルトンはコンフリクトが発生します。

Preferred Runner

複数のNetworkRunnerがアクティブな場合に、どのピアのNetworkRunnerを優先して表示するかを選択します。

Components

「インスタンスは1つのみ」フラグが設定されているコンポーネントです。ここに列挙されたコンポーネントのインスタンスは、1つ以外がすべて無効になります。

Runner Visibility Controls ウインドウ

Runner Visibility Controlsウィンドウは、Tools > Fusion > Windows > Network Runner Controlsメニューから開くことができます。ここでは、NetworkRunnerの表示/非表示や、どのNetworkRunnerがユーザーの入力を収集するかを制御できます。また、アクティブなNetworkRunnerに新しいFusionStatsを追加する、クイックアクセス用のボタンもあります。

Network Runner Controls
Network Runner Controls

NetworkRunnerの名前をクリックすると、シーン上のNetworkRunnerインスタンスを選択できます。

NetworkRunner.PlayerRef.PlayerIdは、NetworkRunner名の横に表示されます。PlayerObjectNetworkRunnerに設定されている場合、これをクリックすると、シーン上のプレイヤーオブジェクトを選択できます。

マルチピア実装例

  • Hathora(Simple FPSのサンプルあり)
Back to top