Oculus AvatarをPhotonで同期させるメモ

タイトル通り、Oculus SDKのAvatarをPhotonで同期させる方法についてです。

やり方はPhotonのチュートリアルに記載されていますが、補足事項をざっとメモしておきます。
(しっかり検証したわけではないので、間違っていたらTwitter等でご指摘ください)

Oculus SDK準備

まず、Asset Storeから、Oculus Integrationをインストールします。

Use the Oculus Integration (Deprecated) from Meta on your next project. Find this integration tool & more on the Unity Asset Store.

Oculusのページにある「Oculus Utilities for Unity」や「Oculus Platform SDK」はインストール「しない」のがポイントのようです。
そして、Oculus Avatar SDKだけは下記からダウンロードしてパッケージをインポートします。

New development on the Oculus Avatar SDK is not recommended. Please use the Meta Avatars SDK.
Photon準備とコンパイルエラー

Asset StoreからPhoton Unity Networking Freeをインストールします。

僕の環境では、この時点でコンパイルエラーが発生しました。
これは、NetworkingPeerというクラスがOculusとPhotonの双方に存在しているためです。
Oculus SDK側のソースで、エラーが出ている部分の「NetworkingPeer」を検索し、「Oculus.Platform.Models.NetworkingPeer」に置き換えることによって解消しました。
Photonについては、管理ページでアプリの登録が必要です。

VRプログラミングの基礎を学ぶためのサンプルプログラム集. Contribute to yumemi-inc/vr-studies development by creating an account on GitHub.
Avatar用Prefab作成

Oculus/Avatar/Content/Prefabs以下の、「LocalAvatar」「RemoteAvatar」をHierachyに配置します。
これも僕の環境だけかもしれませんが、双方の子オブジェクトのDefaultBodyMaterialManagerとDefaultHandMaterialManagerにアタッチされているスクリプトが見つからずNoneになっていましたので、いったん削除しました。(アバターの見た目を変更する際に必要になる気がするので後ほど調査します)
Resourcesフォルダに「LocalAvatar」「RemoteAvatar」をドラッグ&ドロップしてPrefab化し、Hierarchyからは削除します。

Avatar用スクリプト準備

下記スクリプトを「PhotonAvatarView」という名称で保存します。

1行だけ公式チュートリアルから変更しています。
「PhotonAvatarView」を、上記で用意した「LocalAvatar」「RemoteAvatar」Prefabにアタッチします。同じく、「PhotonView」もアタッチします。
そして、PhotoViewのObserved Componentsに、それぞれの「Photon Avatar View」をドラッグ&ドロップし、同期対象とします。

同期スクリプトとシーンの準備

下記スクリプトを「OculusAvatarSync」という名称で作成します。

Hierarchyに空のGameObjectを作成し、「OculusAvatarSync」をアタッチします。
また、OVRCameraRigをHierarchyに配置し、既存のCameraを削除します。
これで同期自体は動作しているのですが、ソースを変更したせいか、PhotonAvatarViewでExceptionが発生するケースがあるので引き続き調査しています。(更新予定)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク