Snapdragon Spaces+MRTK3で変わったことを試してみる -ハンドトラッキングとコントローラの併用-

4.1K Views

March 15, 23

スライド概要

XRミーティング 2023/03/15 登壇資料。
Snapdragon SpacesとMixed Reality Tookit 3と組み合わせる取組みついて。
Snapdragon Spaces V0.11.1からはMRTK3のハンドトラッキングもサポート。一方でコントローラとハンドトラッキングが混在できるので新しいUX表現ができるか試した話を紹介。
サンプルコードはGithub(https://github.com/TakahiroMiyaura/SnapdragonSpaces-Samples)に公開。

profile-image

ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Snapdragon Spaces+MRTK3で 変わったことを試してみる ハンドトラッキングとコントローラの併用 2023/03 XRミーティング 2023/03/15【AR/CR/MR/SR/VR】 takabrz1 Takahiro Miyaura

2.

Microsoft MVP for Mixed Reality 2018-2023 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼最近はMixed Reality Toolkit 3と戯れている。 ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください

3.

今日はSnapdragon Spaces+MRTK3のお話 再び 2023/03/15 Copyright © 2023 Takahiro Miyaura 3

4.

なぜこの話再びなのか Osaka MRハッカソン中に Think Reality A3をまた借りた 前夜祭で体験会したときの一幕 「もう少し調べます?1week位なら貸せますよ?」 2023/03/15 Copyright © 2023 Takahiro Miyaura 4

5.

Lenovo Think Reality A3とは 2023/03/15 Copyright © 2023 Takahiro Miyaura 5

6.

Lenovoの手がけるARグラス いわゆる投影部分が眼鏡型 Key Features: •Snapdragon XR-1 SmartView •Lightweight AR Glasses – <130g •Binocular 1080p resolution displays •8MP RGB Camera •Dual fish-eye cameras for 6DOF tracking •Integrated speakers and microphones •USB Type C, USB 3.1 •DisplayPort v1.4 compliant •Lenovo integrated solution support 同じような投影部分が眼鏡Nreal Light/Air ○ スマホや演算ユニットが別 スマホはMotorola製(開発キットに付属) Snapdragon SpacesというAR開発プラットフォーム対応機器という位置づけ 2023/03/15 Copyright © 2023 Takahiro Miyaura 6

7.

Snapdragon Spaces 名前から想像される通りのクアルコムが手掛けるサービス マートフォン接続のARグラスのデバイス設計、ARグラス向け3Dアプリケーション 開発・商用化を支援するプラットフォーム 基本機能 ○ Positional Tracking 操作系 ○ Gaze Controller 環境(空間)認識 ○ Plane Detection ○ Local Spatial Anchors ○ Companion Controller ○ Image Tracking ○ Hit Testing ○ Hand Tracking ○ 6DOFによる自己位置推定 ○ 現実空間との位置合わせ ○ 現実空間とのオクルージョン等 ○ 頭の向きでフォーカスや決定 ○ スマホを3DOFコントローラ化 ○ 平面検知 ○ 画像マーカー ○ ハンドトラッキング OpenXR準拠のランタイムと様々なOpenXR拡張機能として提供されている 2023/03/15 Copyright © 2023 Takahiro Miyaura 7

8.

バージョンが少し上がった! V0.9.0→V0.11.1 2023/03/15 Copyright © 2023 Takahiro Miyaura 8

9.

Snapdragon Spaces V0.11.1 今回できるようになったこと 1. Spatial Meshing Subsystemのサポート(試験的) 2. Camera Frame Accessのサポート(試験的) 3. MRデバイスのパススルーをサポート 4. MRTK3のハンドトラッキングがちゃんと使えるようになった 1. そして・・・(これが今日のネタ) 2023/03/15 Copyright © 2023 Takahiro Miyaura 9

10.

Snapdragon Spaces V0.11.1 MRTK3のハンドトラッキングを使う手順の中に・・・ 混在できちゃうの?ハントトラッキングとコントローラ OpenXR Controller Profileとのコンフリクトに より、Snapdragon Spaces Controllerと両 手から同時にレイキャストすることは、現時点では 不可能です。そのため、次の2つのオプションがあ ります。 1.オプション1 左手のトラッキングを無効にする。 2.オプション2 Snapdragon Spaces Controllerを無効 にする。 2023/03/15 Copyright © 2023 Takahiro Miyaura 10

11.

これは面白いw 2023/03/15 Copyright © 2023 Takahiro Miyaura 11

12.

やってみた結果生まれた成果物はこれです。 片手ハンドトラッキング、片手Snapdragon Spaces Controller操作 Snapdragon Spacesは現状ハンドトラッキングとコントローラが同時に扱える ※大抵のXRデバイスでは両方使うアプリは実装可能だけど排他になってることが多い 2023/03/15 Copyright © 2023 Takahiro Miyaura 12

13.

軽く中身の話を Unity XR Interaction Toolkit活用して情報取る話 2023/03/15 Copyright © 2023 Takahiro Miyaura 13

14.

XR Interaction Toolkit https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.0/manual/installation.html デバイス操作とコンテンツ動作を容易に相互作用する Interactors Register Register 選択したりするアク ションを処理 Interaction Manager InteractorsとInteractablesの管理と仲介 Action Control Interactables 選択したり、アクティブに することができるシーン内 のオブジェクト Select Controllers 入力データを抽象化し、インターアク ターがそれを使ってインタラクション の状態(特に選択と起動)に変換する 方法を提供 2023/03/15 Copyright © 2023 Takahiro Miyaura 14

15.

手順は簡単です 先ほどのオプション1に従って処理をする Snapdragon Spaces Controllerからの入力をInput Actionで処理できるようにする Input Action Managerに登録 ○ Input Actionが有効化 ○ 各Input Actionの情報を読み込む ことで入力操作を処理できる Snapdragon Spaces Controller用の Input Actionリストはサンプルのもの でOK 2023/03/15 Copyright © 2023 Takahiro Miyaura 15

16.

手順は簡単です 先ほどのオプション1に従って処理をする MRTK XR Rig内の左手に関連するオブジェクトを非活性に 理由:左手とコントローラのRayが コンフリクトする ○ 余計な混乱を避けるためにMRTK 側の左手を無効化 今回のサンプルについては Snapdragon Spaces ControllerのRay は使っていないのでどちらでもいい 2023/03/15 Copyright © 2023 Takahiro Miyaura 16

17.

手順は簡単です 先ほどのオプション1に従って処理をする ハンドトラッキング関連 はMRTK3の機能を利用 実装でSnapdragon Spaces Controllerの制御を使う 情報はInput Action経由で ○ Input Action Managerに登録したアクションリストが有効化 ○ Input Actionのオブジェクトにアクセスすると各種情報が取れる 2023/03/15 Copyright © 2023 Takahiro Miyaura 17

18.

手順は簡単です ハンドトラッキング関連 はMRTK3の機能を利用 先ほどのオプション1に従って処理をする 実装でSnapdragon Spaces Controllerの制御を使う public InputActionReference TouchpadInputAction; Input Actionの参照用オブジェクト Input Actionに設定された操作が 発生しているかどうか private void Update() { if (TouchpadInputAction.action.triggered) { _pose = TouchpadInputAction.action.ReadValue<Vector2>(); … 2023/03/15 Input Actionに設定された値を読み取る ※タッチパッドはVector2で定義されている Copyright © 2023 Takahiro Miyaura 18

19.

結果こうなる! 片手ハンドトラッキング、片手Snapdragon Spaces Controller操作 Snapdragon Spacesは現状ハンドトラッキングとコントローラが同時に扱える ※大抵のXRデバイスでは両方使うアプリは実装可能だけど排他になってることが多い 2023/03/15 Copyright © 2023 Takahiro Miyaura 19

20.

まとめ 2023/03/15 Copyright © 2023 Takahiro Miyaura 20

21.

まとめ ハンドトラッキングとコントローラの混在操作 ✓ それぞれの得意・不得意を補完できそう ✓ ✓ ハンドメニューの選択はコントローラの方が正確に操作できるかも コントローラだけの時よりもハンドトラッキング使えるので自由度はある。 ✓ スマホ接続型のARグラスの「スマホどうしよう問題」 ✓ ハンドトラッキング使いたい場合にスマホの扱いに困る ✓ 半分だけなら手に持ったまま操作にも使えるのでありなのでは ※素直に首から下げればいいだけでもあります 普段とは違う体験操作ができるので面白かったですよ。 2023/03/15 Copyright © 2023 Takahiro Miyaura 21

22.

詳細はこちらに! 2023/03/15 Copyright © 2023 Takahiro Miyaura 22

23.

Zennに整理しておきました。 Snapdragon SpaceとMRTK3で手とコントローラを同時に使うアプローチ ○今日の話を整理したもの ○環境構築と実装内容のポイントの解説 [記事はこちら] https://zenn.dev/miyaura/articles/4fe9cd6f89409a 2023/03/15 Copyright © 2023 Takahiro Miyaura 23

24.

GitHubにも公開しておきました ○今回の動くサンプル ○空間メッシュのサンプルも上げています。 https://github.com/TakahiroMiyaura/SnapdragonSpaces-Samples 2023/03/15 Copyright © 2023 Takahiro Miyaura 24

25.

OMAKE 2023/03/15 Copyright © 2023 Takahiro Miyaura 25

26.

空間メッシュはこんな感じです。 ○どこか懐かしい https://youtu.be/_UJvdcjkQTg 2023/03/15 Copyright © 2023 Takahiro Miyaura 26

27.

大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ 27