HeadwornのシーンをDRFに対応させる方法
このページでは、機能サンプル等のHeadwornで動作することを前提としたシーンを、DRFで動作させる方法を紹介します。
セットアップ手順
1. DRFに必要なオブジェクトの追加
-
以下のDRF用のシーンを開きます。
Assets/Samples/Snapdragon Spaces/X.X.X/Fusion Samples/Scenes/ControllerPrefabSampleScene
-
上記のDRF用のシーン内で、以下のオブジェクトをCopyします。
Fusion Interaction
Fusion Scene Manager
Dynamic OpenXR Loader
-
DRFに対応させたいHeadwornのシーンを開き、CopyしたオブジェクトをPasteします。
2. SpacesLifecycleEventsの設定
Fusion Scene Manager
オブジェクトを選択します。SpacesLifecycleEvents
コンポーネントで、以下の設定を行います。On OpenXR Unavailable()
に、以下のオブジェクトをGameObject.SetActive
のチェックを無効にして登録します。UI
Sample Assets
XR Origin (XR Rig)
On OpenXR Started()
に、以下のオブジェクトをGameObject.SetActive
のチェックを有効にして登録します。UI
Sample Assets
XR Origin (XR Rig)
非アクティブにする理由について
上記の手順を行うことで、On OpenXR Unavailable()
の場合にゲームオブジェクトは非アクティブになり、On OpenXR Started()
の場合にゲームオブジェクトはアクティブになります。
- 「グラスがスマホと接続される前」→「OpenXRが利用不可」→「
On OpenXR Unavailable()
」 - 「グラスがスマホと接続された後」→「OpenXRが起動した後」→「
On OpenXR Started()
」
それぞれのゲームオブジェクトについての補足
XR Origin (XR Rig)
:グラスと接続されていない場合は、Main Camera
は不要なので非アクティブにします。UI
:UI
をMain Camera
に追従させる機能を動作させるために、Main Camera
がアクティブになってから、UI
のオブジェクトをアクティブにする必要があります。Sample Assets
:カメラへのアクセス等の権限の取得が完了し、グラスのセンサーを使用した機能が利用可能になるのを待つために、グラスと接続された後にオブジェクトをアクティブにする必要がある場合があります。
非アクティブにするオブジェクトについて
上記は機能サンプルのシーンを元にする場合の説明です。Headwornのシーンによっては、シーン構造が異なる可能性があります。
その場合でも、基本的にはHeadwornのシーンに元々あったオブジェクトを、同じようにSpacesLifecycleEvents
コンポーネントで設定を行えば問題ありません。
※AR Session
オブジェクトやSpaces XR Simulator
オブジェクトは、特に設定を行う必要はありません。