Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Snapdragon Spacesを通して Unity XRプラグインフレームワーク について...
Search
にー兄さん
July 14, 2023
Programming
0
760
Snapdragon Spacesを通して Unity XRプラグインフレームワーク について軽率に学ぶ / about snapdragon spaces sdk and unity xr framework
yokohama.unity #12で登壇した資料です
にー兄さん
July 14, 2023
Tweet
Share
More Decks by にー兄さん
See All by にー兄さん
UnJSを使って軽率にCLIを作ってみたらめちゃくちゃ便利だった / create CLI with UnJS
drumath2237
4
1.3k
create-babylon-appを軽率にアプデしたい / update create babylon app
drumath2237
1
1.4k
Babylon.js 7注目機能を 軽率にまとめてみる/whats-new-in-babylonjs-v7
drumath2237
1
210
軽率にVFX Graphと Compute Shaderを 組み合わせるテクニック/integrate-vfxgraph-and-compute-shader
drumath2237
1
250
軽率にVue 3で リアルタイム3Dアプリを作れる ライブラリを作ってみた/vue-with-3d-app
drumath2237
3
1.8k
軽率にBabylon.jsを C#で使う技術 / using-babylonjs-with-csharp
drumath2237
1
670
今こそ軽率に理解したい WebXR Device APIとBabylon.jsの話 / understand-webxr-device-api-and-babylonjs
drumath2237
0
130
Vue・Babylon連携ライブラリ BabyuewJSについて / about-babyuewjs
drumath2237
0
150
軽率にBabylon.jsの WebGPUエンジンを使って ComputeShaderに入門した / learn-about-babylonjs-webgpu-computeshader
drumath2237
0
630
Other Decks in Programming
See All in Programming
From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism- An Example
philipschwarz
PRO
0
170
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
10
2.4k
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
510
Vaporモードを大規模サービスに最速導入して学びを共有する
kazukishimamoto
4
4.3k
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
100
カスタムしながら理解するGraphQL Connection
yanagii
1
1.2k
Kubernetes for Data Engineers: Building Scalable, Reliable Data Pipelines
sucitw
1
200
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
270
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
5
3.4k
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
330
Piniaの現状と今後
waka292
5
1.4k
推し活としてのrails new/oshikatsu_ha_iizo
sakahukamaki
3
1.7k
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
The Cost Of JavaScript in 2023
addyosmani
45
6.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Visualization
eitanlees
144
15k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Typedesign – Prime Four
hannesfritz
39
2.4k
Agile that works and the tools we love
rasmusluckow
327
21k
Designing for Performance
lara
604
68k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Transcript
Snapdragon Spacesを通して Unity XRプラグインフレームワーク について軽率に学ぶ にー兄さん@ninisan_drumath yokohama.unity #12
にー兄さん(@ninisan_drumath) ソフトウェアエンジニア 株式会社ホロラボ / IwakenLab Unity / ロケーションベースAR / WebAR
/ Babylon.js / Azure Kinect 最新技術を使った検証開発や デモンストレーションが好き 唐突な うちの猫たち→
アジェンダ - Spaces SDKについて - Spaces SDKとXRフレームワーク - おわりに
Snapdragon Spaces SDK
Snapdragon Space SDK Qualcommが開発するXRアプリ用SDK Qualcommが製造するチップを搭載したARグラスやVRHMD 対応していればクロスデバイスで動く https://spaces.qualcomm.com/
対応デバイスやプラットフォーム 現状はLenovo ThinkReality A3がメイン Lenovo VRX、Lynx R1、Oppo MR Glass などがサポート予定を発表
今後対応デバイスは増えていくと予想 SDKはUnityとUE用がある
提供機能 https://docs.spaces.qualcomm.com/unity/setup/SetupGuideUnity.html
ARFoundationやOpenXRに準拠 個人的に一番気になっていた点 業界/Unity標準のしくみを使ってるのは良いな でもそれってどういうこと? →調査をすることに
Spaces SDKと XRフレームワーク
調査環境 • Snapdragon Spaces SDK 0.14.0 ◦ Dual Render Fusionは扱いません
• Unity 2021.3.16f1 • ARFoundation 2.8 • ThinkReality A3 SDKはtgz形式で提供されるが、 コードリーディングのために敢えてAssets内に展開
SDKの中身 通常2つのパッケージを導入する - com.qualcomm.qcht.unity.interactions - QCHT=Qualcomm Hand Tracking(たぶん) - ハンドトラッキングの機能がある
- com.qualcomm.snapdragon.spaces - QCHTに依存している - SpacesSDKのメイン
Unity XRプラグインフレームワークの構造 ARFoundationや OpenXR Pluginなどの おおまかな関係図 (from Unityドキュメント) ユーザコードへの インターフェースと
具体的な実装が分割 https://docs.unity3d.com/ja/2022.3/Manual/XRPluginArchitecture.html
具体実装(Spaces)とインターフェースの依存関係例 CameraSubsystemの例
CameraSubsystemに注目して整理 - Subsystem - Providor - OpenXR Feature などをSpacesSDKが実装している 特にOpenXRFeatureにメイン実装があり、
Providorが参照し さらにSubsystemがProvidorをARFoundation へ橋渡しする構造
同様のSubsystemが並んでいるイメージ
Hand Tracking Subsystem Hand TrackingはQCHTに実装 カスタムSubsystemが作られてる ARFoundationにはハントラ機能はない 以前はSpacesパッケージ内にあったが、 現在はObsolete扱い
おわりに
まとめと感想 Qualcomm謹製Snapdragon Spaces SDKは ARFoundationやOpenXR pluginといったフレームワークから使える XR系のフレームワークは内部の動きが隠蔽されがち 何が起きてるのか興味があった 標準システムに準拠して実装しているSpaces SDK、実にイケてる
参考 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