MiRZA のタッチセンサーを使いやすくしてみる試み

>100 Views

March 19, 25

スライド概要

XRミーティング 2025/03/19【AR/CR/MR/SR/VR】登壇資料 ( https://osaka-driven-dev.connpass.com/event/346559/ )
MiRZAのタッチセンサーを使いやすくするための試みとしてInput Action経由で処理が可能か検証した話。
基本的な動作分部についてはInput Action経由で実装を実現しマルチデバイス対応時のコンテンツを流用性を高められることを確認した。
サンプルコードは以下のgithubで公開。
https://github.com/TakahiroMiyaura/MiRZATouchSensor

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

MiRZA のタッチセンサーを 使いやすくしてみる試み 2025/03 XRミーティング @takabrz1 Takahiro Miyaura

2.

宮浦 恭弘 (Miyaura Takahiro) Microsoft MVP for Mixed Reality 2018-2025 XRは趣味です 大阪駆動開発(とHolomagicians)コミュニティに生息 HoloLens日本販売してからxR系技術に取組む 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura https://zenn.dev/miyaura 最近興味があって取り組んでいるもの ○ Microsoft Mesh ○ Snapdragon Spaces ○ Mixed Reality Toolkit v3.0.0 ○ Vision Proもそろそろ・・・ @takabrz1 ※よかったらこれを機にお知り合いになってください

3.

MiRZA について 2025/03/19 © 2025 Takahiro Miyaura 3

4.

MiRZAとは この眼鏡部分の事 2025/03/19 © 2025 Takahiro Miyaura 4

5.

MiRZAとは 無線利用可能なSnapdragon Spaces対応ARグラス ○ Snapdragon Spaces対応機 ○ 片目 1920 x 1080 ○ 視野角 約45° ○ RGBカメラ、モノクロセンサーカメラ X 2 ○ Qualcomm Snapdragon AR2 ○ 明るさ 約1,000 nits ○ 透明なレンズ 2025/03/19 © 2025 Takahiro Miyaura 5

6.

1 MiRZA Pluginについて 目次 5 2 MiRZA のタッチセンサーを使いやすくする 3 Unity Eventで扱えるようにする 4 MiRZA用にInput Actionを用意する まとめ

7.

MiRZA Pluginについて 2025/03/19 © 2025 Takahiro Miyaura 7

8.

MiRZA Pluginについて MiRZA Library(Java)をUnityで使えるようにしたC#プラグイン MiRZAデバイスとして固有に持っている機能をアプリで使える 例えば、MiRZAはテンプル部分にタッチセンサーがある 自分のアプリに活用できる! 他にも ○ 母艦との接続状況(無線式なので) ○ バッテリ残量 ○ マイク ○ MRモード等… 2025/03/19 © 2025 Takahiro Miyaura 8

9.

MiRZA Pluginについて できること MiRZAデバイスの各種情報にアクセスできる。 情報取得 情報取得(Changedイベント) ○ バージョン整合性を確認する ○ 電池残量を取得する ○ 電池残量を取得する(非同期) ○ 充電状態を取得する ○ 充電状態を取得する(非同期) ○ グラスデバイス状態を取得する ○ グラスデバイス状態を取得する(非同期) ○ MRモード状態を取得する ○ MRモード状態を取得する(非同期) ○ ライブラリバージョンを返す ○ 電池残量を取得する ○ 画面表示状態を取得する ○ グラスデバイス状態を取得する ○ グラスのタッチパネル操作情報を取得する ○ グラス電源OFFを取得する ○ サービス状態を取得する ○ MRモード状態を取得する 2025/03/19 © 2025 Takahiro Miyaura 9

10.

詳細は先々月のXRミーティング MiRZA Pluginを使ってみた https://w//.docswell.com/s/m-taka596/ZP2LWG-XRMTG-MiRZALibrary-20250115 MiRZA Pluginについて ○ 概要 ○ 使い方 2025/03/19 © 2025 Takahiro Miyaura 10

11.

物足りないところ Unity用の部品はサンプルコードの一部として提供 各情報取得系イベントがUnityEventじゃない Unity Eventだと Inspector上で設定できるタイプのイベントを用意できる 今回はサンプルに入っていた MiRZA Pluginを使いやすくしてみた話 MiRZA Library使うUnity用の実装(MiRZA Plugin) コーディングでイベント登録する必要がある ・・・ //イベント定義(以下はバッテリ残量の監視用にイベントを登録) if (mirzaPlugin !/ null) mirzaPlugin.OnBatteryLevelChanged += OnBatteryLevelChangedInternalAction; ・・・ 2025/03/19 © 2025 Takahiro Miyaura 11

12.

MiRZAのタッチセンサーを使いやすくする コンテンツの流用性を上げるために・・・ 2025/03/19 © 2025 Takahiro Miyaura 12

13.

作ってみたもの まだリファクタリング中 UnityEventでMiRZA Libraryの機能を使えるようにした InputAction経由で処理できる様にデバイスも作ってみた。 2025/03/19 © 2025 Takahiro Miyaura 13

14.

サンプルで作ってみたアプリ タッチセンサーで色選択を表示、ダブルタップで確定 2025/03/19 © 2025 Takahiro Miyaura 14

15.

Unity Eventで扱えるようにする 2025/03/19 © 2025 Takahiro Miyaura 15

16.

Unity Eventで扱えるようにする MiRZAのセンサー情報 MiRZA Libraryのイベント系の情報をUnity Eventで 情報取得(Changedイベント) ○ 電池残量を取得する ○ 画面表示状態を取得する ○ グラスデバイス状態を取得する ○ グラスのタッチパネル操作情報を取得する ○ グラス電源OFFを取得する ○ サービス状態を取得する ○ MRモード状態を取得する 2025/03/19 © 2025 Takahiro Miyaura 16

17.

Unity Eventで扱えるようにする MiRZAのセンサー情報 MiRZA Libraryのイベント系の情報をUnity Eventで [Serializable] MiRZA用に作ったUnity Event // グラスタッチパネル操作情報のイベントハンドラ public class GlassTouchGestureStatusChangedEvent : UnityEvent<GlassTouchGestureStatus>{} // MiRZAのタッチセンサー管理クラス public class MiRZATouchSensorManager : MonoBehaviour { // ダブルタップイベント登録用プロパティ public GlassTouchGestureStatusChangedEvent OnDoubleTap; } MiRZA Library経由 デバイス情報をUnity側で管理 この辺りは一般的なUnity Eventの実装 2025/03/19 © 2025 Takahiro Miyaura 17

18.

MiRZA用にInputActionを用意する 2025/03/19 © 2025 Takahiro Miyaura 18

19.

MiRZA用にInputActionを用意する UnityのInput Systemの仕組みで実装の汎用化 Point ○Unity内でMiRZAをセンサーデバイスとして扱える ○ InputDeviceクラスを継承したデバイスを用意 ○MiRZA用にInputActionを定義 ○ 入力デバイスとコンテンツを分離 今回作ったようなメニュー等を 他のデバイス(モーションコントローラ)でも使える 2025/03/19 © 2025 Takahiro Miyaura 19

20.

まとめ 2025/03/19 © 2025 Takahiro Miyaura 20

21.

まとめ MiRZAのタッチセンサーをもう少しうまく活用したい ○Unity Eventで実装 ○Inspectorから状態に対応するイベントを処理できる ○既存コンテンツのイベント処理を流用しやすく ○Input Systemの仕組みにのせる ○コンテンツの流用性を高められる ○MiRZAのタッチセンサーのシミュレータを作れる(これから) →Unity Editorでデバック実行できる! 2025/03/19 © 2025 Takahiro Miyaura 21

22.

最後に とりあえず今のソースコードはGithubで公開してます。 もう少し使い勝手をよくしたい https://github.com/TakahiroMiyaura/MiRZATouchSensor 2025/03/19 © 2025 Takahiro Miyaura 22

23.

最後に Zennにも解説記事載せました。 MiRZA Libraryの使い勝手をよくする https://zenn.dev/miyaura/articles/snapdragonspaces-mirza-lib-custom-2772c7a4d21b3d 2025/03/19 © 2025 Takahiro Miyaura 23

24.

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