Voice - Fusionインテグレーション
Voice - Fusionインテグレーション
このインテグレーションは、Photon Fusionプロジェクト内でPhoton Voiceの使用を簡単にするものです。主なユースケースは、各プレイヤーがスポーンしたネットワークオブジェクト(キャラクター/アバター)の音声を3D空間に配置するような場合です。Fusionでスポーンしたプレイヤーアバターに連動しない別のオブジェクトに、音声ソースを持たせることも可能です。
音声ストリームは、シーン上のNetworkObjectプレハブのインスタンス化と同期して、Voiceルームに作成されます。音声ストリームを生成するのは、ネットワークオブジェクトにアタッチされたRecorderです。音声ストリームを消費するのは、リモートのネットワークオブジェクトにアタッチされたSpeakerです。
NetworkObject.Idは、Recorderに対応する適切なSpeakerを見つけるために使用されます。
インポート方法
使用中のFusion SDKの、Unityバージョン最小要件をご確認ください。現在はUnity 2021.3.xとなっていて、VoiceのFusionインテグレーションには、同バージョン以上が必要です。
Fusion 2.1でVoiceインテグレーションを始める場合は、Fusion Hubから直接インストールできます。
Unityのメニューバー
Tools/Fusion/Fusion Hubから、Fusion Hubを開きます。Addonsタブを選択します。

VoiceのInstallボタンを押します。インストールしたら、Fusion Hubの
Voiceタブを開き、表示のステップに従いセットアップを完了してください。

Fusionのインポート
既にFusionをインポート済みなら、この部分はスキップしてください。
- こちらからFusionをダウンロード・インポートします。
- メニューの
Fusion > Realtime SettingsからPhoton App Settingsを開きます。 - FusionのAppIdを取得して、
App Id Fusionに設定してください。
Photon Voiceのインポート
既にPhoton Voiceをインポート済みなら、この部分はスキップしてください。
UnityのPackage ManagerまたはUnity Asset Storeから、Photon Voice 2をインポートします:
Photon\PhotonChatのチェックを外します- 以下フォルダーのチェックを外します:
Photon\PhotonUnityNetworkingPhoton\PhotonVoice\Code\PunPhoton\PhotonVoice\Demos(Photon\PhotonVoice\Demos\Fusionは例外的にチェックを入れる)
Weaver Settingsの更新
- メニューの
Fusion > Network Project ConfigからNetwork Project Configを開きます。 Configを開きます。Weaving Settingsを開きます。Assemblies To Weaveの+ボタンを押して、リスト項目を1つ追加します。- 新しく作成した項目のドロップダウンから
PhotonVoice.Fusionを選択します。 - 下部の
Applyを押します。
主要コンポーネント
FusionVoiceClient
VoiceConnectionの実装で、接続とFusionとVoiceクライアントの同期を維持します。FusionVoiceClientでは、Fusionでセッションへ参加した後に、Voiceルームへ参加します。Fusionでセッションから退出すると、自動的にVoiceルームを退出し切断します。
Application Settings
FusionVoiceClient.UseFusionAppSettings:trueの場合、FusionのPhotonAppSettingsが使用されます。そうしない場合は、App Settingsにこのコンポーネントで使用する値を設定してください。FusionVoiceClient.UseFusionAuthValues:trueの場合、VoiceクライアントはFusionと同じAuthenticationValuesを使用します。そのためには、VoiceアプリケーションとFusionアプリケーションとで同じカスタム認証のダッシュボード設定が必要です。ただし、認証プロバイダーによっては、認証リクエストごとにnonce(ワンタイムシークレット)を発行する必要があることに注意してください。その場合、FusionとPhoton VoiceでAuthenticationValuesを共有することはできず、Voiceクライアントを接続する前にVoiceクライアントのAuthenticationValues(FusionVoiceClient.Client.AuthValues)を手動で設定する必要があります。
ストリーミング
FusionVoiceClient.PrimaryRecorder:Recorderコンポーネントを持つオブジェクトです。クライアントごとに送信ストリームが1つだけ存在するような場合に役立ちます。FusionVoiceClient.UsePrimaryRecorder:trueの場合、PrimaryRecorderオブジェクトのRecorderが自動的に初期化され、ストリーミングに使用されます。このRecorderはネットワークオブジェクトには紐づかないため、VoiceNetworkObjectプレハブを使用している場合はチェックを外してください。FusionVoiceClient.SpeakerPrefab:新しい受信ストリームを検知し、そのストリームに関連するオブジェクト階層にSpeakerが存在しない場合に、スピーカーオブジェクトのインスタンス化に使用するプレハブです。VoiceNetworkObjectプレハブを使用していない場合、またはオブジェクトがSpeakerコンポーネントを持たない場合に設定します。このプレハブはSpeakerコンポーネントを含む必要があります。
VoiceNetworkObject
VoiceNetworkObjectコンポーネントは、RecorderとSpeakerのセットアップを担当します。
送信側では、プレハブ階層のRecorderを開始し、見つからなければFusionVoiceClient.PrimaryRecorderを開始します。
受信側では、プレハブ階層のSpeakerを開始し、見つからなければFusionVoiceClient.SpeakerPrefabからインスタンスを生成します。
推奨ワークフロー
シーンのセットアップ
- Fusionの
PhotonAppSettingsからVoice AppIdを設定します。 NetworkRunnerがアタッチされているオブジェクトにFusionVoiceClientを追加します。Recorderを持つオブジェクトをシーンに追加し、FusionVoiceClient.PrimaryRecorderに割り当てます。Speakerを持つプレハブを作成し、FusionVoiceClient.SpeakerPrefabに割り当てます。
プレハブのセットアップ
NetworkBehaviourがアタッチされたFusionのプレハブオブジェクトにVoiceNetworkObjectを追加します。- ショートカットメニュー(
Fusion -> Rebuild Object Table)から、Fusionがプレハブを認識していることを確認します。
詳細は、FusionのサンプルかFusion Impostorサンプルをご覧ください。
Last updated on
Back to top