本記事は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` プロパティの値の切り替えで可能です。