4K Views
August 16, 23
スライド概要
【大阪-オンライン開催】XRミーティング 2023/08/16【AR/CR/MR/SR/VR】(https://osaka-driven-dev.connpass.com/event/291405/)
Snapdragon SpacesのDual Render Fusionを利用してスマホの画面でARグラスのオブジェクトを操作するコントローラの作成方法を調査した話。コントローラのUIやコンテンツにMRTK3を利用できるかも合わせて検証。
実装の詳細は別途公開予定
ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。
MRTK3 で Snapdragon Spaces Dual Render Fusion 2023/08 XRミーティング takabrz1 Takahiro Miyaura
Microsoft MVP for Mixed Reality 2018-2023 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼最近は ✓ ✓ Mixed Reality Toolkit 3とか Snapdragon Spacesとか戯れている。 ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください
先週は。。。 XR ミートアップ三重 #5 @名張に一般人として参加 楽しかったです。 2023/8/16 Copyright © 2023 Takahiro Miyaura 3
その日は岩本さんも Lenovoデバイスで体験をVRXでパススルーとか… Dual Render Fusionのデモアプリを試させてもらいました。 とてもよくできていてほしい→作るか。。。 2023/8/16 Copyright © 2023 Takahiro Miyaura 4
せっかくなので、 MRTK3のUI使ってDual Render Fusionでスマホ用カスタ ムコントローラ作れるか試した。 2023/8/16 Copyright © 2023 Takahiro Miyaura 5
Lenovo Think Reality A3とは 2023/8/16 Copyright © 2023 Takahiro Miyaura 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/8/16 Copyright © 2023 Takahiro Miyaura 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/8/16 Copyright © 2023 Takahiro Miyaura 8
Snapdragon Spaces 最近V0.15.0にアップデートされた ○Unity ○カメラフレームテクスチャのダウンサイジングをサポート ○サンプルコードの見直し ○ハンドトラッキングとコントローラの自動切替え ○Spatial Mappingのメッシュのレンダリングに不透明度を追加 ○Spaces Composition Layerコンポーネントの追加 ○QCHTパッケージがv4.0.1に ○等… ○Unreal Engine ○Unityと同じいくつかの修正 ○Spaces Toolの提供 ○等… 2023/8/16 Copyright © 2023 Takahiro Miyaura 9
もう1つのライブラリ - Mixed Reality Toolkit とは Unity向けのOSSライブラリ Holotoolkit HoloLens向け ○Unity向け ○クロスプラットフォーム ○最新バージョンはV2.8.3 ✓基本コンポーネント ✓共通のインタラクション ✓UIコントロール ※Unreal向けのMRTKもあります ※実はBabylon.js版もあります ※Magic Leap 2拡張版もあります 2023/8/16 Mixed Reality Toolkit Windows Mixed Reality Devices対応 Mixed Reality Toolkit V2 HoloLens 1/2,VR Devices,Mobile AR… Mixed Reality Toolkit 3 Pre.17 Copyright © 2023 Takahiro Miyaura 10
Snapdragon Spaces Dual Render Fusionとは 2023/8/16 Copyright © 2023 Takahiro Miyaura 11
Snapdragon Spaces Dual Render Fusionとは Smart Phone接続型のARグラス向けの機能(ヘッドセット向けではない) ○Dual Render Fusion 2つの 描画を 融合する 1つのコンテンツ Smart Phoneの画面描画とARグラスの空間描画を 1つのコンテンツの中で使える仕組み 2023/8/16 Copyright © 2023 Takahiro Miyaura 12
Snapdragon Spaces 普段のARグラスでコンテンツ作った場合 Snapdragon Spacesの場合、コントローラは独立したネイティブアプリ Smart Phone ARグラス Motion Controller (OpenXR) 操作をコンテンツに反映 Smart Phoneをネイティブアプリとして 3Dofモーションコントローラ化している 2023/8/16 Copyright © 2023 Takahiro Miyaura Smart Phone タッチパッド操作 13
Snapdragon Spaces Dual Render Fusionを使うと。。。 1つのUnityアプリとしてARグラスとSmart Phoneのディスプレイを使える ARグラス描画領域 1コンテンツで実装 Smart Phone描画領域 Smart Phone側もUnityで実装可能に より柔軟なUIやUXを実現できる! 2023/8/16 Copyright © 2023 Takahiro Miyaura 14
Dual Render Fusion 使ってオリジナルのコントローラを試作してみた。 UIはMRTK3の色々を利用 2023/8/16 Copyright © 2023 Takahiro Miyaura 15
今回のカスタムコントローラ スマホの画面に表示される スマホによくあるスティック入力と空間のCubeをいじるボタン MRTK3のUX部品ボタン Cube表示/非表示 Cubeを赤色に Cubeを青色に アクションボタン 左スティック Cubeの移動(x,y) ※x, yの2軸 2023/8/16 右スティック Cubeの回転 ※x, yの2軸 Copyright © 2023 Takahiro Miyaura 16
今回のカスタムコントローラ 興味深いのはThink Reality A3つけなくてもアプリとしては動くこと スマホでの操作するとThink Reality A3上のCubeに操作が反映される 2023/8/16 Copyright © 2023 Takahiro Miyaura 17
今回のカスタムコントローラ Think Reality A3をつないだ場合 今回のアプリはスマホ画面にもA3の操作状況が見えるようにしています。 2023/8/16 Copyright © 2023 Takahiro Miyaura 18
Unityの開発環境‥等 2023/8/16 Copyright © 2023 Takahiro Miyaura 19
開発環境 ○ Snapdragon Spaces v0.15.0 (Snapdragon Spaces SDK本体) ○ Snapdragon Spaces Dual Render Fusion (Experimental) v0.14.0 ○ QCHT Unity Interaction v4.0.1(Snapdragon Spaces ハンドトラッキング拡張) ○ Mixed Reality Toolkit 3 pre.17 ○ Microsoft Mixed Reality OpenXR Plugin v1.8.1 ※実はね。。。 ○ Mixed Reality Feature Tool ○ Unity Hub 3.5.0 ○ Unity 2021.3.16f1 ○ Android Build Support一式 ○ packages ○ OpenXR Plugin ○ Input System ○ XR Management ○ XR Interaction Toolkit ○… 2023/8/16 Copyright © 2023 Takahiro Miyaura 20
Microsoft Mixed Reality OpenXR Pluginのgithub調べてるときに… 最新版でAndroidサポートがパージされてた Microsoft Mixed Reality OpenXR Plugin V1.8.0 ○ 最新版でAndroidサポートがなくなった。。。 Quest関連の機能もこのライブラリはサポートしていた ○今まではMeta ○Adnroid系はUnityとかMetaのライブラリを使ってねということに。。。 Snapdragon SpacesとMRTKシリーズの連携は Microsoft Mixed Reality OpenXR Plugin V1.7.2まで Snapdragon SpacesのDiscord見てるとこの事実はすでに認識済みで Mixed Reality OpenXR Plugin に変わる手段の取組みは進めているそうです 2023/8/16 Copyright © 2023 Takahiro Miyaura 21
Microsoft Mixed Reality OpenXR Pluginのgithub調べてるときに… 最新版でAndroidサポートがパージされてた V1.8.1で復活してます。 ○ 2023/8/16 復活はしてるけど非推奨 Copyright © 2023 Takahiro Miyaura 22
Unityの開発環境‥等 MRTK3 + Snapdragon Spaces + Dual Render Fusion + QCHT のプレーンな環境を作る 詳細は記事にしているところなのでもうしばらくお待ちを 0. 空Unityプロジェクト作る 1. 2. 3. 4. 5. 6. 2023/8/16 MRTK3セットアップ Snapdragon Spaces, Dual Render Fusion, QCHT インポート XR Plug-in Managementの調整 MRTK3の設定変更 MRTK XR Rigの変更 スマホに表示するカスタムコントローラを実装する Copyright © 2023 Takahiro Miyaura 23
実装 Dual Render Fusion Unity内の仕組み 2023/8/16 Copyright © 2023 Takahiro Miyaura 24
Dual Render Fusion Tag : MainCamera Depth : 0 Target Display : Display 1 Target Eye : Both 設定 Cameraを2つ使って実現している ARグラス用Camera ※AR Session Originに設定されていること Smart Phone用のCamera Tag : Untagged Depth : 1 Target Display : Display 1 Target Eye : None ARグラス用のカメラをMainCameraに!!! これをしないとMRTK3は動かない 2023/8/16 Copyright © 2023 Takahiro Miyaura 25
Dual Render Fusion コントローラの設定 UGUIを利用(スマホだけに表示) カメラ毎に表示オブジェクトを 制御する方法が使える 親Canvasを作る Overlay設定 ディスプレイに直接表示 ※Overlay設定であればARグラスでは 描画されないハックを利用 Target Display は 「Display 1」 2023/8/16 Copyright © 2023 Takahiro Miyaura 26
Dual Render Fusion MRTK3の部品は・・・ 先ほど設定したCanvasを親にしてUGUIのUX部品を利用 親のCanvas MTRK3のUX部品 UGUIの横長ボタン4つ 2023/8/16 Copyright © 2023 Takahiro Miyaura 27
コントローラ仕組み 2023/8/16 Copyright © 2023 Takahiro Miyaura 28
コントローラの仕組み もしカスタムするんだったら UGUIで作ったUIのイベントをXRI経由にしておくと汎用性がでる Right Stickの情報を 取得 InputSystemに通知する カスタムコンポーネント Right Stickの可変値と してVector2で渡す UGUI – Image ドラッグイベントde 座標を取得 2023/8/16 Input Actionを監視 コントローラの情報で オブジェクトを制御 Objectに反映 Copyright © 2023 Takahiro Miyaura 29
コントローラの仕組み XRI を経由するように実装 UGUIオブジェクトにイベントを組込み→ InputSystemに通知 2023/8/16 Copyright © 2023 Takahiro Miyaura 30
コントローラの仕組み XRI を経由するように実装 通知された情報を読み取ってCubeに反映 2023/8/16 Copyright © 2023 Takahiro Miyaura 31
気づき(まとめ) 2023/8/16 Copyright © 2023 Takahiro Miyaura 32
MRTK3 With Dual Render Fusion 気づき ✓ Dual Render Fusion ✓ ✓ ✓ ARグラスとSmart Phoneの描画を1つのコンテンツとして扱える スマホのアプリとして使うことも可能 必要な時だけThink Reality A3をつないでARアプリ体験も可能 ✓ MRTK3 With Dual Render Fusion ✓ ✓ ✓ スマホ用UIをMRTK3で実装 & タッチパネル操作可能。 MRTK3のUGUI版のUX部品を利用 HoloLens 2やMeta Quest用にはスマホ上のUIをハンドメニュー化 スマホ接続型ARグラスとスタンドアロンHMD両対応のUIの構築も容易 2023/8/16 Copyright © 2023 Takahiro Miyaura 33
大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ