はじめに
2022年11月30日現在、PUN2ならびにPhoton Fusionでは、ランタイム生成されたGameObjectをオンライン同期することができません!!!
特に言いたいことは以上です。PhotonとUniVRMを用いてメタバース開発する際は上記の仕様に要注意です。
気軽にUnityでメタバースを作ろうとなれば、以下の方法を考えると思います。
- 同期サーバーにPhotonを用いて、アバターにはVRMを採用する
- ローカルにあるVRMファイルをUniVRMを用いてランタイムロードさせる
- ランタイムロードしたVRMオブジェクトをPhotonに同期させる
しかしながら、Photonでは上記のやり方ができません。
とはいえ、工夫すればVRMオブジェクトを同期できます。
PhotonとUniVRMを用いてVRMアバターを同期させる一例
以下の手順を踏まえてVRMオブジェクトを同期します。
- VRMファイルをアップロードならびにランタイムロードできるサーバーを構築する
- Photonで位置情報と回転情報ならびにアバター変更RPCを同期させる
- 入室時にサーバーから全員分のVRMファイルをランタイムロードする
- 同期された位置情報と回転情報をVRMオブジェクトにセットする
- 自分もしくは相手のアバター変更時に、サーバーからVRMファイルをランタイムロードする