Oculus Integration v57 から Meta XR Core SDK v59 への移行メモ

v59 以降、従来の Oculus Integration が非推奨になり Meta XR Core SDK が推奨となりました。


以下うちの環境での v57 から v59 への移行作業のメモです。

環境

  • Unity 2021.3.31f1
  • Oculus Integration v57
  • 主な使用 Prefab
    • OVRCameraRig
    • OVRInteraction
      • OVRHmd
      • OVRControllers
        • ControllerGrabInteractor
        • ControllerVelocityCalculator
      • OVRHands
        • HandGrabInteractor
        • HandVelocityCalculator
      • Grabbable, GlabInteractable 等
    • OVRSceneManager
  • URP

手順

おおまかな手順は
  1. いったん Unity を終了
  2. Assets/Oculus フォルダを削除
  3. Unity を起動
  4. Meta XR Core SDK をインポート
  5. Meta XR Interaction SDK OVR Integration をインポート
です。

対応

OculusProjectConfig

Oculus フォルダを消すので設定は維持されません。Git などでバックアップを取っておいて必要な行だけ戻すと楽です。

OVRCameraRig

引き継がれます。

なおこれに限らず、SDK が Packages 以下に移動した都合、SDK 自体への変更は行いにくくなっています。例えば OVRCameraRig プレハブそのものに変更を加えることはできなくなりました。

余談ですが検索時にうっかり In Assets だと見つからないので In Packages などを使いましょう。

OVRInteraction

引き継がれます。

Missing になる場合、Meta XR Interaction SDK の方(OVR Integration がつかない方)をインポートしていないか確認するとよいかもしれません。僕は一度やらかしました。

(ちなみに Meta XR Interaction SDK OVR Integration をインポートすると、自動で依存関係が解決され、Meta XR Interaction SDK もインポートされます。)

OVRControllerPrefab のマテリアル

v57 では全て Standard シェーダーだったため、URP を使用している場合は Universal Render Pipeline/Lit に切り替えるなどの対応が必要でした。

v59 では多くのコントローラーのシェーダーがはじめから URP/Lit としてインポートされましたが、Quest 3 のもの(MetaQuestTouchPlus_Left と Right)は Standard でした。


Packages 内のマテリアルは通常の方法では変更できず、変更できても保存できないので、この対応はやりにくいです。OVRControllerPrefab のマテリアルを差し替えることもできず、Prefab Variant も作れません。

プレハブをコピーする方法だと今後の SDK の更新時に困るため、現状では実行時にマテリアルを差し替える処理を入れるのがベターではないかと思います。

左右の left_oculus_controller_mesh と right_oculus_controller_mesh (計 4 つ)に以下のスクリプトを付けておけばとりあえずは動きます。もちろん OVRControllerPrefab 自体にはつけても保存できないので、適当な親プレハブを作るかシーンに置いてから付けます。


OVRSceneManager

引き継がれます。

おしまい

コメント