Voice For PUN2
目次
概念
Voice for PUN2レイヤーのロジックは、従来のPhoton Voice 1またはPUNVoiceから継承されています。 Voiveクライアントの状態は、PUNのクライアント状態と自動的に同期させることができます。
主なユースケースは、各プレイヤーがオーディオが3Dに配置されているネットワークインスタンス化されたPUNプレハブ(キャラクターやアバター)を 保持している場合です。単一のオーディオストリームには、各エンドポイントに1つずつ、 合計2つのコンポーネント(RecorderとSpeaker)があります。PUNでは、これらはPhoton View IDを介してリンクされます。
主要コンポーネント
PhotonVoiceNetwork
PhotonVoiceNetworkはVoiceConnectionを拡張し、PUN関連機能を追加します。デフォルトのSpeakerFactoryは上書きされ、 PUNとVoiceクライアントの状態を同期させる度合いを調整できます。また、PUNとVoiceは任意でPhotonServerSettingsから 同じAppSettingsを共有できます。
デフォルトのSpeakerFactory
新しいファクトリーは、カスタムユーザーデータオブジェクトとして交換されたPhoton View IDを使用して、voiceストリーム情報に適したスピーカーを探します。
自動接続と入室
PUNがルームに参加すると、Voiceクライアントも該当のVoiceルームに接続して参加することができます。
自動退室と切断
PUNがルームを出ると、Voiceクライアントは自動的に切断されます。
PUN設定の使用
VoiceクライアントがPUNのPhotonNetwork.PhotonServerSettings
と同様のAppSettings
を使用するか決定する設定です。
デフォルトでは、これはtrueです(有効化済み)。
PUN認証値の使用
VoiceクライアントがPUNのPhotonNetwork.AuthValues
と同様のAuthenticationValues
を使用するか決定する設定です。
デフォルトでは、これはtrueです(有効化済み)。
この場合、VoiceアプリケーションにはPUNアプリケーションと同じカスタム認証ダッシュボード設定が必要です。
PhotonVoiceView
PhotonVoiceViewは、ネットワークでインスタンス化されたPUNプレハブのためにRecorderとSpeakerを設定するコンポーネントです。
推奨ワークフロー
シーン設定 (PhotonVoiceNetwork)
- PUNのPhotonServerSettingsのAppSettingsでVoiceのAppIdを設定。
- 必要に応じてPhotonVoiceNetworkをシーンに追加。
- 必要に応じて
PhotonVoiceNetwork.AutoConnectAndJoin
をtrue
に設定。 - 必要に応じて
PhotonVoiceNetwork.AutoLeaveAndDisconnect
をtrue
に設定。 - 必要に応じてシーンにRecorderを追加し、プロパティを更新して
PhotonVoiceNetwork.PrimaryRecorder
に割り当てる。 5.a. 必要に応じてRecorder.TransmitEnabled
を有効にして、準備ができ次第すぐに送信を開始することができます。 5.b. 必要に応じてRecorder.DebugEchoMode
を有効にして自分の声を聞くことができます(ローカルスピーカーをリンクする必要があります。プレハブセットアップのステップ3.bを参照してください)。 - 受信ボイスストリーム用のSpeakerインスタンスが見つからない場合に、それを作成するかどうか(6.a.)、また、その作成方法(6.b.)を任意で決定します。
6.a. 必要に応じて
PhotonVoiceNetwork.AutoCreateSpeakerIfNotFound
をtrue
に設定。 6.b. 必要に応じてSpeakerプレハブ(Speakerコンポーネントを含むプレハブ)を追加し、PhotonVoiceNetwork.SpeakerPrefab
に割り当てる。
プレハブの設定 (PhotonVoiceView)
- PhotonViewが添付されているPUNプレハブのGameObjectにPhotonVoiceViewを追加する。
Recorder setup (2.a. or 2.b. or 2.c.):
2.a. PhotonVoiceView.UsePrimaryRecorderをtrueに設定(PhotonVoiceNetwork.PrimaryRecorderを設定する必要があります)。 2.b. PhotonVoiceView.AutoCreateRecorderIfNotFoundをtrueに設定。- レコーダーを作成したら、
photonVoiceView.RecorderInUse.TransmitEnabled
をtrue
に設定して、手動で送信を開始する必要があります。 - 自分の声を聞くには、
photonVoiceView.RecorderInUse.DebugEchoMode
をtrue
に設定してください(ローカルスピーカーをリンクする必要があります。手順3.bを参照してください)。
2.c. Recorderをプレハブに追加し、そのプロパティを更新して
PhotonVoiceView.RecorderInUse
に割り当てます。- 必要に応じて
Recorder.TransmitEnabled
を有効にして、準備ができ次第すぐに送信を開始することができます。 - 必要に応じて
Recorder.DebugEchoMode
を有効にして自分の声を聞くことができます(ローカルスピーカーをリンクする必要があります。手順3.bを参照してください)。
- レコーダーを作成したら、
- スピーカーの設定:
3.a. 必要に応じて、プレハブにSpeakerを追加してPhotonVoiceView.SpeakerInUse
に割り当てる。
3.b. 必要に応じてPhotonVoiceView.SetupDebugSpeaker
を有効にします(Recorder.DebugEchoMode
が有効になっている場合に必要)。