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はシングルトンです:1つのインスタンスしか存在してはいけません。 複数のインスタンスが存在する場合には1つだけが保持され、他のインスタンスは破棄されます。 プレハブからPunVoiceClientを追加する場合、一度だけインスタンス化するようにしてください。

トップに戻る

アプリケーションの設定

  • 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からインスタンスを作成します。

トップに戻る

推奨されるワークフロー

シーンのセットアップ

  1. PUNのPhotonServerSettingsで、AppSettingsにVoice AppIdを設定します。
  2. シーンにPunVoiceClientを追加します。
  3. Recorderを持つオブジェクトをシーンに追加し、PunVoiceClient.PrimaryRecorderに割り当てます。
  4. Speakerのあるプレハブを作成し、PunVoiceClient.SpeakerPrefabに割り当てます。

トップに戻る

プレハブのセットアップ

  1. PhotonViewが付属されたPUNプレハブオブジェクトにPhotonVoiceViewを追加します。 2. ルームに参加した後、このプレハブをインスタンス化します。

詳細は、PUN2のサンプルを参照してください。

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