本記事はUnityアドベントカレンダー2022 その2 6日目に参加しております。
5日目: Unityと箱庭 (@kaizen_nagoya )
6日目: 本記事
7日目: Samplerが消える問題 (@ayaha401 )
TL;DR
日本語ドキュメントは翻訳が未対応の場合もあるので
基本的には1次ソースの英語公式ドキュメントを見ながらやればOK
背景
PhotonVoice2 v2.5.0 で結構な破壊的変更や既存クラスのリネーム等がありました。
しかし記事執筆時点(2022年11月25日 現在) では 日本語公式ドキュメント がメンテ未対応のため、日本語ドキュメント通りに導入しようとすると詰む状態でした。
そこでPhotonFusion + PhotonVoice2 の導入フローを備忘録を兼ねて紹介します。
検証環境
| 項目 | 環境 |
|---|---|
| Unity | 2021.3.14f1 |
| OS | MacOSX 12.4 |
| 検証端末 | Pixel6, Pixel7 Pro |
| PhotonFusion | v1.1.4 |
| PhotonVoice2 | v2.5.0 |
導入フロー
フローとしては以下のようになります。
- Unityを入れる
- Unity でProjectを作る
- Photon アカウントを作る
- PhotonのダッシュボードでPhotonFusion アプリを作る
a. PhotonFusion 利用のためのAppId を発行する - PhotonのダッシュボードでPhotonVoice アプリを作る
a. PhotonVoice 利用のためのVoiceAppId を発行する - PhotonFusionを導入
a. 公式からUnityPackage をDL
b. 2のProjectにImport - PhotonVoice2 を導入
a. AssetStoreでPhotonVoice2 を検索&MyAsset に追加
b. PackageManager 経由でDL&Import
c. - PhotonのConfigファイルに4-a, 5-a で手に入れたIDを入力
- サンプルで動作チェック
1. Unityを入れる
2022年なのでUnityHub 経由で入れましょう.
2. Unity でProjectを作る
こちらに関しては新規Projectでも良いし、既存Project でも構いません。
状況に応じて適切な方を選択ください。
3. Photon アカウントを作る
- アカウントがなければ https://id.photonengine.com/Account/SignIn からCreteOne... を選択してアカウントを発行してください。
- メールアドレスを入力して人間アピールしてRegister ボタンを押せば登録用のメールアドレスが来るのでそこから本登録してください。
4. PhotonのダッシュボードでPhotonFusion アプリを作る
- 3で作ったPhotonアカウントでダッシュボード(https://dashboard.photonengine.com/ja-JP/) にログインしてください。
- 新しくアプリを作成するを選択
- 種別は
Fusionを選択、アプリ名を設定した後に作成するボタンを押します
a. PhotonFusion 利用のためのAppId を発行する
4 で作った後にダッシュボードで先ほど作ったアプリが表示されています。
ここのアプリケーションIDをクリックすると全部が表示されるます。
このIDを後に使うので覚えておいてください。

5. PhotonのダッシュボードでPhotonVoice アプリを作る
- 3で作ったPhotonアカウントでダッシュボード(https://dashboard.photonengine.com/ja-JP/) にログインしてください。
- 新しくアプリを作成するを選択
- 種別は
Voiceを選択、アプリ名を設定した後に作成するボタンを押します
a. PhotonVoice 利用のためのVoiceAppId を発行する
5 で作った後にダッシュボードで先ほど作ったアプリが表示されています。
ここのアプリケーションIDをクリックすると全部が表示されるます。
このIDを後に使うので覚えておいてください。

6. PhotonFusionを導入
a. 公式からUnityPackage をDL
https://doc.photonengine.com/ja-JP/Fusion/current/getting-started/sdk-download
画像の赤線を引いたリンクの部分から、UnityPackage をDLできます。

b. 2のProjectにImport
UnityのProjectウィンドウにDrag&Drop
6. PhotonVoice2 を導入
a. AssetStoreでPhotonVoice2 を検索&MyAsset に追加
上記ページからアクセスして、ご自身のUnityアカウントでAssetをカートに入れて購入(無料)してMyAssetに追加してくだあい。
b. PackageManager 経由でDL&Import
- Unity のToolBarより
Window→PackageManagerと選択 - PackageManagerウィンドウ上で
Packages をMyAssetにして検索窓で voiceと入力することで表示されるはずです。
出てこない場合は以下をお試しください。- UnityHub と6-aのアカウントがリンクされてない
- UnityHub でアカウントをサインアウトして再度サインインする
- 6-aがカートに追加までで購入処理(MyAssetへ追加)まで出来ていないので再度購入フローを試す
- Download ボタン押下後、Importボタンを押す
c. PhotonVoice Import 上の注意
・ Uncheck "Photon\PhotonChat" .
・ Uncheck these folders:
・ "Photon\PhotonUnityNetworking"
・ "Photon\PhotonVoice\Code\Pun"
・ "Photon\PhotonVoice\Demos" contents except "Photon\PhotonVoice\Fusion"
とある通り、Import 時に PhotnChat 系と PUN 系はチェックを外してください。
また、Demoが不要であれば Photon\PhotonVoice\Demos をまるっとチェック外しても良いですが、もし初めてであれば
Photon\PhotonVoice\Demos 以下の Fusion 以外はチェックを外すようにすれば PhotonFusion用のVoice2 の組み込みサンプルも導入されます。
7. PhotonのConfigファイルに4-a, 5-a で手に入れたIDを入力
- Unity 上で画像のように
Fusion→Realtime Settingと選ぶと設定ファイルのScriptableObject が選択されます。
- 4-a, 5-a で生成したIDを入力
- 再度UnityのToolBarのメニューからは
Fusion→NetworkProjectConfigを選択 - ConfigファイルのWeaver Settings に
PhotonVoice.Fusionが追加されているのを確認する
8. サンプルで動作チェック
Assets/Photon/PhotonVoice/Demos/Fusion/DemoNetworkObject 内のSceneファイルを開き、PC同士または、ビルドしたスマホアプリと通信ができればOKです。
PhotonVoice2 v2.5.0 の更新内容
公式のReleseNote より
Code:
- Rename VoiceConnection -> UnityVoiceClient
- Rename PhotonVoiceNetwork -> PunVoiceClient
Fusion:
REMOVED: FusionVoiceBridge referenced VoiceConnection
ADDED: FusionVoiceClient extending VoiceConnection
とあるように、旧コンポーネントが削除・リネームされました。
v2.5.0現在では音声通信フローとしては以下のような形で実行されます。

サンプルを拡張
ボイスチャットを行う上でまず最初に制御したいのは「マイクミュート」だと思います。
マイクミュートは 公式ドキュメント にもある通り `Recorder.TransmitEnabled` プロパティの値の切り替えで可能です。