Slide 1

Slide 1 text

Snapdragon Spacesを通して Unity XRプラグインフレームワーク について軽率に学ぶ にー兄さん@ninisan_drumath yokohama.unity #12

Slide 2

Slide 2 text

にー兄さん(@ninisan_drumath) ソフトウェアエンジニア 株式会社ホロラボ / IwakenLab Unity / ロケーションベースAR / WebAR / Babylon.js / Azure Kinect 最新技術を使った検証開発や デモンストレーションが好き 唐突な うちの猫たち→

Slide 3

Slide 3 text

アジェンダ - Spaces SDKについて - Spaces SDKとXRフレームワーク - おわりに

Slide 4

Slide 4 text

Snapdragon Spaces SDK

Slide 5

Slide 5 text

Snapdragon Space SDK Qualcommが開発するXRアプリ用SDK Qualcommが製造するチップを搭載したARグラスやVRHMD 対応していればクロスデバイスで動く https://spaces.qualcomm.com/

Slide 6

Slide 6 text

対応デバイスやプラットフォーム 現状はLenovo ThinkReality A3がメイン Lenovo VRX、Lynx R1、Oppo MR Glass などがサポート予定を発表 今後対応デバイスは増えていくと予想 SDKはUnityとUE用がある

Slide 7

Slide 7 text

提供機能 https://docs.spaces.qualcomm.com/unity/setup/SetupGuideUnity.html

Slide 8

Slide 8 text

ARFoundationやOpenXRに準拠 個人的に一番気になっていた点 業界/Unity標準のしくみを使ってるのは良いな でもそれってどういうこと? →調査をすることに

Slide 9

Slide 9 text

Spaces SDKと XRフレームワーク

Slide 10

Slide 10 text

調査環境 ● Snapdragon Spaces SDK 0.14.0 ○ Dual Render Fusionは扱いません ● Unity 2021.3.16f1 ● ARFoundation 2.8 ● ThinkReality A3 SDKはtgz形式で提供されるが、 コードリーディングのために敢えてAssets内に展開

Slide 11

Slide 11 text

SDKの中身 通常2つのパッケージを導入する - com.qualcomm.qcht.unity.interactions - QCHT=Qualcomm Hand Tracking(たぶん) - ハンドトラッキングの機能がある - com.qualcomm.snapdragon.spaces - QCHTに依存している - SpacesSDKのメイン

Slide 12

Slide 12 text

Unity XRプラグインフレームワークの構造 ARFoundationや OpenXR Pluginなどの おおまかな関係図 (from Unityドキュメント) ユーザコードへの インターフェースと 具体的な実装が分割 https://docs.unity3d.com/ja/2022.3/Manual/XRPluginArchitecture.html

Slide 13

Slide 13 text

具体実装(Spaces)とインターフェースの依存関係例 CameraSubsystemの例

Slide 14

Slide 14 text

CameraSubsystemに注目して整理 - Subsystem - Providor - OpenXR Feature などをSpacesSDKが実装している 特にOpenXRFeatureにメイン実装があり、 Providorが参照し さらにSubsystemがProvidorをARFoundation へ橋渡しする構造

Slide 15

Slide 15 text

同様のSubsystemが並んでいるイメージ

Slide 16

Slide 16 text

Hand Tracking Subsystem Hand TrackingはQCHTに実装 カスタムSubsystemが作られてる ARFoundationにはハントラ機能はない 以前はSpacesパッケージ内にあったが、 現在はObsolete扱い

Slide 17

Slide 17 text

おわりに

Slide 18

Slide 18 text

まとめと感想 Qualcomm謹製Snapdragon Spaces SDKは ARFoundationやOpenXR pluginといったフレームワークから使える XR系のフレームワークは内部の動きが隠蔽されがち 何が起きてるのか興味があった 標準システムに準拠して実装しているSpaces SDK、実にイケてる

Slide 19

Slide 19 text

参考 Snapdragon Spaces https://spaces.qualcomm.com/ XR Plug-in ManagementによるXR機能(サブシステム)の仕組みを追う https://edom18.hateblo.jp/entry/2022/09/24/xr-plugin-management About ARFoundation https://docs.unity3d.com/Packages/[email protected]/manual/index.html#subsystems Unity XR architecture https://docs.unity3d.com/ja/2022.3/Manual/XRPluginArchitecture.html