仮想と物理とエトセトラ

xRや物理とかごった煮の備忘録的技術ブログ

Photon(PUN2, Photon Voice 2)環境で音声共有を行う

今回は前回のPhoton Voice 2の続きです。

xr-physics-work-etc.hatenablog.com

Hololens2を用いてPhotonを介した音声共有を行います。

1. 音声共有のための設定を行う

音声共有のためには、以前作成したScene上のPhoton ManagerオブジェクトとPlayerプレハブにスクリプトを追加する必要があります。

xr-physics-work-etc.hatenablog.com

xr-physics-work-etc.hatenablog.com

まずは、Playerプレハブから設定を追加します。
PhotonVoiceView.csSpeaker.csをアタッチします。

  • PhotonVoiceView.cs
    Speaker In Useに、PlayerプレハブのSpeaker.csを設定します。

これでPlayerプレハブがSpeakerとして認識され、PhotonVoiceViewで音声が共有されます。

f:id:napo909:20210516122946p:plain

次にPhoton Managerオブジェクトの設定をします。
Photon Managerには音声共有を管理するPhotonVoiceNetwork.csRecorder.csをアタッチします。

  • PhotonVoiceNetwork.cs
    今回は、自動でPhoton Cloudに接続、切断を行いたいので、Auto Connect And JoinとAuto Leave And Disconnectにチェックを入れます。 Primary Recorderに先ほどアタッチしたRecorder.csを設定します。
    SpeakerPrefabには先ほど設定したPlayerプレハブを設定します。

  • Recorder.cs
    入室した際に音声共有を開始するため、Auto StartとTransmit Enabledにチェックを入れます。
    なお、Transmit Enabledを操作することで、音声共有の停止と再開(ミュートとミュート解除)が実施できます。

f:id:napo909:20210516124448p:plain

最後にPhotonの設定を修正します。
Asset/Photon/PhotonUnityNetworking/Resources/PhotonServerSettingにPhoton Voice用の設定を追加します。
App Id Voiceに使用するApp Idを入力します。
特段理由がなければ、App Id PUNと同じ値を入れれば問題ないです。

f:id:napo909:20210516124627p:plain

2. ビルドし、Hololens2にアプリをインストールする

Hololens2に入れる場合に1点注意点があります。
Photon Voiceを使用する場合は、ARM64ではなく、ARMでビルドする必要があります。

doc.photonengine.com

Photon 公式には下記記述がありますが、アドオンは権限がなくダウンロードできませんでした。

対応プラ​​ットフォーム
HoloLens 2 (ARM64には特別なアドオンが必要です。 こちらからダウンロードしてください。)

ARM64だとビルドに失敗するので、ARMでビルドする必要があります。

f:id:napo909:20210516124641p:plain

これで音声共有を行うことができました。
(音声なのでこちらに動作確認結果を載せられませんが)
Hololens2 - Unity Editor間で動作確認済みです。
※ Oculus Questは後日確認予定。確認し次第追記します。
動作確認時の注意点としては、Unity Editorで実行する際、マイク入力対象となるデバイスがないとエラーが発生するので注意してください。