メインコンテンツまでスキップ
バージョン: 1.0.1

シーンの再生(シミュレーション)

このガイドでは、Unity Editorでのシーン再生を効果的に行うためのプロジェクト設定とシーンの構成方法について説明します。これらの設定は、小さな追加変更をチェックするためにデバイスにデプロイする必要性を減らすことで、開発時間を短縮するのに役立ちます。

前提条件

Unityセットアップガイドに記載されている手順に従って、Snapdragon Spacesを使用するようにプロジェクトを設定します。

OpenXRプロジェクトの設定

Edit > Project Settings > XR Plug-in Managementに移動します。
Unityセットアップガイドには、デバイス上でSnapdragon Spacesを使用するためにプロジェクトを正しく設定するために必要な情報が含まれています。その上でUnity Editorでシーンを再生するには、いくつかの追加ステップが必要です。

Initialize XR On Startup

Plug-in ProvidersのリストにあるPC(Windows、Mac、Linux)の設定タブで、OpenXRを有効にします。
Initialize XR On Startupの設定は、Androidの設定タブの値と一致させる必要があります。この設定をAndroidの設定タブの値と一致させることで、アプリケーションをテストする際に、デバイス上で見られる動作にできるだけ近い動作をするようになります。

つまり:

  • Dual Render Fusion機能を使用しない場合は、Initialize XR On Startupが有効になっていることを確認してください。この設定が無効の場合、EditorでPlayを押すと以下の警告がログとして表示されます。

    No active UnityEngine.XR.ARSubsystems.XRSessionSubsystem is available. This feature is either not supported on the current platform, or you may need to enable a provider in Project Settings > XR Plug-in Management.
    No active UnityEngine.XR.XRInputSubsystem is available. Please ensure that a valid loader configuration exists in the XR project settings.
    • シーンでSpaces XR Simulatorコンポーネントを使用すると、これらの警告が抑制される場合がありますが、正しい動作を確実にテストするには、Editorの設定が最終的なアプリの設定と一致していることが重要です。
  • Dual Render Fusion機能を使用する場合、Initialize XR On Startupが無効になっていることを確認してください。この設定が有効になっている場合、EditorでPlayを押したときに以下の警告がログとして表示されます。

    XR Management has already initialized an active loader in this scene. Please make sure to stop all subsystems and deinitialize the active loader before initializing a new one.

XR Simulation

オプションとして、Plug-in ProvidersのリストにあるPC(Windows、Mac、Linux)の設定タブで、XR Simulationを有効にします。これにより、AR Foundationが提供するXR SimulationとXR Simulation Environmentsを使用できるようになります。XR Simulationの使用については、Unityのドキュメントを確認してください。

XR Simulationプロバイダが有効になっていない場合、EditorでPlayを押すと以下の警告がログにとして表示されます。

No active UnityEngine.XR.ARSubsystems.XRSessionSubsystem is available. This feature is either not supported on the current platform, or you may need to enable a provider in Project Settings > XR Plug-in Management.
No active UnityEngine.XR.XRInputSubsystem is available. Please ensure that a valid loader configuration exists in the XR project settings.
Simulation Subsystems

XR Simulationは、Editor専用のサブシステムを使用します。

TIP

これらのサブシステムは、追加の変更が行われるたびにアプリケーションをビルドしてデバイスにデプロイすることなく、アプリケーションの動作や外観の変更を素早く確認するのに便利です。

WARNING

これらのサブシステムはAR Foundationが提供するものであり、すべてのSnapdragon Spaces機能の完全な機能を提供するわけではありません。

WARNING

QRコード追跡機能には、同等のEditor専用のサブシステムがありません。詳しくは既知の問題をご覧ください。

Base Runtime機能を有効にする(PC)

alt text
Edit > Project Settings > XR Plug-in Management > OpenXRに移動します。

PC(Windows、Mac、Linux)の設定タブで、Base Runtime機能を有効にします。

シーン構成

Snapdragon Spacesには、開発を容易にするためにシーンに追加できるコンポーネントが用意されています。Spaces XR Simulatorコンポーネントは、Dual Render Fusion機能を使用するアプリケーションを開発する際に最も役立ちます。Dual Render Fusion機能を使用しない場合でも、Editorで特定のXRシステムのライフサイクルを管理するのに役立ち、ここで見られる警告やエラーの数を減らします。

Spaces XR Simulatorコンポーネント

Spaces XR Simulatorコンポーネントは、シーンが変更されても持続するように設計されており、シーン階層のルートのゲームオブジェクトに追加する必要があります。このゲームオブジェクトは、Don't Destroy On Loadとマークされます。Spaces XR Simulatorコンポーネントは1つしか存在できず、2つ目がインスタンス化されると、代わりに破棄されます。

Editorのみの挙動

いくつかのXRシステムは、Editorでのシーン変更にうまく反応せず、EditorでPlayを押したときだけ表示され、デバイスで実行したときには表示されない警告やエラーを出すことがあります。Spaces XR Simulatorコンポーネントは、Editorのシーン変更時にこれらのシステムの多くを停止し、再初期化します。

WARNING

Editor上とデバイス上の動作は完全に同じではありませんが、概ねの動作を確認する目的であれば役に立ちます。

Dual render FusionのSpaces Lifecycle Eventsコンポーネントは、Editor上でデバイス上よりも多くのイベントを発生させる可能性があります(シーンを切り替える間に、OpenXRを停止し再起動させます)。

TIP

すべての動作は、最終的にはEditorではなく、デバイス上で検証されるべきです。

コンポーネントのプロパティ

alt text

  • Start Connected:Dual Render Fusion機能を使用する場合、この設定を有効にすると、Simulationはグラスがアクティブ状態でデバイスに接続されているかのように動作します。 Dual Render Fusion機能を使用しない場合、この設定は何の効果もありません。

  • Invert Sim Camera Display: Dual Render Fusion機能を使用する場合、これを有効にすると、スマートフォンとグラスのディスプレイ(デフォルトではDisplay 1とDisplay 2)が切り替わります。

    • これは以下のどちらかの操作で、実行時に切り替えることができます。
      • ショートカットキー:Alt + Shift + X
      • Editor内の上部メニューからWindow > XR > Snapdragon Spaces > Dual Render Fusion > Simulation > Invert Simulation Displays
    • この設定は、Dual Render FusionのセカンドディスプレイがEditorで操作できない既知の問題の回避策です。
    • Dual Render Fusion機能を使用しない場合、この設定は何の効果もありません。
      alt text

Dual Render FusionのUtilityメソッド

Spaces XR Simulatorコンポーネントは、デバイスの状態に関するイベントをシミュレートするために、実行時にトリガーできるいくつかのUtilityメソッドを定義しています。開発者は、Spaces Lifecycle Eventsコンポーネントによって発生したイベントに必要に応じて応答することができます。

イベントキーボードショートカットEditor内のメニューボタン説明
Connect GlassesAlt + Shift + CWindow > XR > Snapdragon Spaces > Dual Render Fusion > Simulation > Connect GlassesARグラスがスマートフォンに接続されていることをシミュレートし、EditorでARグラスの表示を有効にします。
Disconnect GlassesAlt + Shift + DWindow > XR > Snapdragon Spaces > Dual Render Fusion > Simulation > Disconnect GlassesARグラスとスマートフォンの接続が解除されるのをシミュレートし、EditorでARグラスの表示を無効にします。
Glasses ActiveAlt + Shift + GWindow > XR > Snapdragon Spaces > Dual Render Fusion > Simulation > Glasses ActiveARグラスがアクティブ状態で装着されるのをシミュレートします。
Glasses IdleAlt + Shift + HWindow > XR > Snapdragon Spaces > Dual Render Fusion > Simulation > Glasses IdleARグラスがアイドル状態であることをシミュレートします。