Voice - PUN2インテグレーション
Voice - PUN2インテグレーション
主な用途は各プレイヤーがネットワークを介したPUNプレハブ(キャラクターやアバター)を持ち、そこにオーディオが3D配置されることです。
音声ストリームはシーン内のPUNプレハブのインスタンス化と同期して、Voiceルームで作成されます。
ネットワークオブジェクトに付属するRecorderは、オーディオストリームを生成します。このネットワークオブジェクトのリモートコピーに付属するSpeakerは、オーディオストリームを消費します。
Photon View IDは、Recorderに対応する適切なSpeakerを見つけるために使用されます。
このインテグレーションにより、VoiceルームがPUNルームのステートに従うようにし、ネットワークオブジェクトにバインドされない PunVoiceClient.Instance.PrimaryRecorder
によってストリーミングすることも可能です。
主要コンポーネント
PunVoiceClient
VoiceConnectionの実装で、VoiceとPUNの接続を維持しステートを同期します。
アプリケーションの設定
PunVoiceClient.Instance.UsePunAppSettings
: trueの場合、PUNのPhotonNetwork.PhotonServerSettings
にあるAppSettings
が使用されます。それ以外の場合は、"App Settings"フォールドアウトのPunVoiceClientシングルトンに特定の値を設定してください。PunVoiceClient.Instance.UsePunAuthValues
: trueの場合、VoiceクライアントはPUNのPhotonNetwork.AuthValues
と同じAuthenticationValues
を使用します。
これをおこなうためには、VoiceアプリケーションでPUNアプリケーションと同様にカスタム認証ダッシュボードを設定する必要があります。
PUNのステートに従う
PunVoiceClient.Instance.AutoConnectAndJoin
: PUNクライアントがルームに参加すると、Voiceクライアントも対応するVoiceルームに接続し、参加します。PunVoiceClient.Instance.AutoLeaveAndDisconnect
: PUNクライアントがルームから退出すると、Voiceクライアントは自動的に切断します。
ストリーミング
PunVoiceClient.Instance.PrimaryRecorder
: Recorderコンポーネントのあるオブジェクトで、クライアントごとに1つの発信ストリームのみがある場合に役立ちます。PunVoiceClient.Instance.UsePrimaryRecorder
: trueの場合、Primary Recorderオブジェクトに付属するRecorderが自動的に初期化され、ストリーミングに使用されます。Recorderはネットワークオブジェクトにバインドされません。PhotonVoiceView
プレハブを使用している場合にはチェック解除してください。PunVoiceClient.Instance.SpeakerPrefab
: 新しい受信ストリームを検出した場合に、そのストリームが属するオブジェクトの階層に Speakerが存在しない場合に、スピーカーオブジェクトのインスタンス化に使用するプレハブです。PhotonVoiceView
プレハブを使用していない場合や、これらのプレハブにSpeakerコンポーネントがない場合に設定します。Speakerコンポーネントを含む必要があります。
PhotonVoiceView
PhotoView
プレハブに割り当てられ、RecorderとSpeaker のセットアップを担当するコンポーネントです。
ストリーミング側ではプレハブ階層にあるRecorderを起動し、見つからなければ PunVoiceClient.Instance.PrimaryRecorder
を起動します。
受信側では、プレハブ階層にあるSpeakerを起動し、見つからなければ PunVoiceClient.Instance.SpeakerPrefab
からインスタンスを作成します。
推奨されるワークフロー
シーンのセットアップ
- PUNの
PhotonServerSettings
で、AppSettingsにVoice AppIdを設定します。 - シーンにPunVoiceClientを追加します。
- Recorderを持つオブジェクトをシーンに追加し、
PunVoiceClient.PrimaryRecorder
に割り当てます。 - Speakerのあるプレハブを作成し、
PunVoiceClient.SpeakerPrefab
に割り当てます。
プレハブのセットアップ
PhotonView
が付属されたPUNプレハブオブジェクトにPhotonVoiceView
を追加します。
2. ルームに参加した後、このプレハブをインスタンス化します。
詳細は、PUN2のサンプルを参照してください。
Back to top