Unityのセットアップ
このガイドでは、UnityでSnapdragon Spaces SDKを使い始める方法について紹介します。
バージョン
| ライブラリ | バージョン |
|---|---|
| Unity Editor | 2022.3.11f1 |
| Snapdragon Spaces SDK | 0.23.2 (Spaces AR SDK for Unity) |
Snapdragon Spacesでは2021.3 LTSが推奨されていますが、対象デバイスのアプリを開発する場合は2022.3.11f1を推奨しています。それ以外のバージョンは十分にテストさ れていないため、不具合が発生する可能性があります。
Unityプロジェクトの作成
Unityエディターのバージョンが2022.3.11f1であることを確認し、[Create project]を選択します。

Target Platformの切り替え
Build Settings > Platformにて、「Android」を選択して[Switch Platform]を選択します。

SDKのダウンロード
現在、「Snapdragon_Spaces_SDK_0_23_2」のダウンロードページは用意されていません。
これから新たにアプリを開発する場合は、「Snapdragon_Spaces_SDK_1_0_1」をダウンロードしてください。
SDKのダウンロード方法は、1.0.1バージョンの「SDKのダウンロード」の項目から確認できます。
パッケージのインポート
Snapdragon Spaces SDKは、tarballファイルの形でパッケージとして提供されます。
Window > Package Managerで「Add package from tarball...」を選択してください。

パッケージを絶対パスではなく相対パスで管理するには、.tgzファイルをプロジェクトのPackagesフォルダ以下に移動することをお勧めします。
基本パッケージ
以下のパッケージを選択してインポートします。
ファイル名:com.qualcomm.snapdragon.spaces-0.23.2.tgz

ハンドトラッキングのパッケージ
ハンドトラッキングも利用する場合は以下のパッケージも同じように選択してインポートします。
ファイル名:com.qualcomm.qcht.unity.interactions-4.1.7.tgz

XR Interaction Toolkitのインポート
Snapdragon Spaces Unityパッケージには、XR Interaction Toolkitパッケージへの依存関係があります。
Snapdragon Spacesパッケージのインポートする際、XR Interaction Toolkitのインポート中に2つのプロンプトが表示されることがあります:
- 新しいInput Systemの有効
- OpenXRとXR Interaction Toolkitパッケージで完全に機能するように、
[Yes]を選択して新しいInput Systemを含めることをお勧めします。
従来のInput Systemも必要な場合は、Player > Other Settings > ConfigurationのActive Input Handlingの値を両方に設定できます。
- OpenXRとXR Interaction Toolkitパッケージで完全に機能するように、
- Interaction Layer Maskのアップデート
- Interaction Layer Maskのアップデートでは、Interaction Layer Maskをアップグレードするメニューが表示されることがあります。
XR Interaction Toolkitがプロジェクトに追加されていない場合、[No Thanks]を選択できます。
もし、2.0.0より前のバージョンのXR Interaction Toolkitがインポートされている場合は、[I Made A Backup, Go Ahead!]を選択して、Interaction Layer Maskをアップグレードすることをお勧めします。
- Interaction Layer Maskのアップデートでは、Interaction Layer Maskをアップグレードするメニューが表示されることがあります。
新しいInput Systemにアップデートすると、Unity Editorが再起動します。クラッシュの印象を受けるかもしれませんが、心配する必要はありません。心配であれば、アップデートの前に推奨されるように保存するか、バックアップを取ってください。
プロジェクト設定の変更
Snapdragon Spaces OpenXRプラグインを有効にするには、
Edit > Project Settings > XR Plug-in Managementでプロジェクト設定を開き、Androidタブを開きます。
OpenXRとSnapdragon Spaces feature groupをチェックします。

OpenXRの右横の「赤い(!)」を選択して、OpenXR Project Validationウィンドウに入ります。
入力項目の横にある[Fix All]を選択して、必要なプロジェクト設定を適用します。

Spacesの機能の有効化
OpenXRの設定で、ランタイム中にアクティブにする機能を有効にします。
現在サポートされている機能と、それと共に使用できるAR FoundationマネージャーとXR Subsystemは、以下の表の通りです。
| 機能 | AR Foundation/Spacesマネージャー | XR Subsystem |
|---|---|---|
| Base Runtime | AR Session、AR Pose Driver | XRSessionSubsystem |
| Camera Access (Experimental) | AR Camera Manager | XRCameraSubsystem |
| Hand Tracking | Spaces Hand Tracking Manager | Spaces.XRHandTrackingSubsystem |
| Hit Testing | AR Raycast Manager | XRRaycastSubsystem |
| Image Tracking | AR Tracked Image Manager | XRImageTrackingSubsystem |
| Plane Detection | AR Plane Manager | XRPlaneSubsystem |
| Spatial Anchors | AR Anchor Manager | XRAnchorSubsystem |
| Spatial Meshing (Experimental) | AR Mesh Manager | XRMeshSubsystem |

サンプルのインポート
Snapdragon Spaces SDKパッケージには、パッケージに含まれるパーセプション機能の使用方法を紹介するサンプルアセットが付属しています。
メニューバーのWindow > Package Managerでパッケージを選択します 。
基本サンプル
Snapdragon SpacesのCore Samplesの[Import]を選択します。
(Dual Render Fusionも利用する場合は、Fusion Samplesの[Import]も選択します。)

ハンドトラッキングのサンプル
ハンドトラッキングも利用する場合は、QCHT Unity InteractionsのCore AssetsとQCHT Samplesの[Import]を選択します。

Camera Accessのサンプルの実装では、Player Settings (Androidタブ) > Other Settings group > Script Compilation > Allow 'unsafe' Codeで、unsafeなコードを有効にする必要があります。
unsafeなコードを許可せず、Camera Accessのサンプルも不要で、OpenXR Project Validationのエラーを解消したい場合は、Samples > Snapdragon Spaces > {SDK Version}からCamera Access Sampleフォルダを削除してください。
シーンのビルド
サンプルがインポートされると、サンプルシーンをビルド設定に追加するヘルパーツールがあります。
ヘルパーツールはメニューバーで[Window] > [Snapdragon Spaces] > [Add Scenes to Build Settings]で実行できます。

SDKのバージョンによっては上記のツールが存在しない可能性があります。その場合は、以下のシーンをBuild SettingsのScenes In Buildに手動で追加します。
Main Menuのシーンは、一番上になるようにしてください。

以上で、サンプルシーンをビルドする準備は完了しました 。
スマートフォンをPCに接続し、Build Settingsの[Build And Run]を選択することでサンプルシーンをアプリとしてインストール出来ます。
サンプルのアプリ
Snapdragon Spaces SDKのフォルダ内には、上記のサンプルシーンをビルドしたアプリ(APK)があります。
アプリ名:SnapdragonSpaces_Unity_Samples_0_23_2.apk
