Slide 1

Slide 1 text

XR Interaction toolkit & XRHands & Passthrough API で MR 開発 土鍋 2023/06/01 Unity/VR開発 ◯◯はいいぞ選手権

Slide 2

Slide 2 text

自己紹介 名前: 土鍋 (渡辺雄大) 学年: 会津大学4年 所属: A-PxL元代表、Zli、Iwaken Lab、UT-virtual 興味: XR、Unity、ゲーム、CG、映像 趣味: ゲーム、アニメ、鉄道旅行、Vtuber Twitter: @donadonadonabe Blog: https://donabenabe.hatenablog.com 近況: 院試の勉強に追われてる。現地行きたかったなあ。 2

Slide 3

Slide 3 text

今までの作品 3

Slide 4

Slide 4 text

「自宅でも遭難がしたい!」全国の新聞に載ったよ! 福島、青森、秋田、山形、東京、長野、愛知、岐阜、沖縄 4

Slide 5

Slide 5 text

今回やること クロスプラットフォームな MRアプリ開発をするための 環境構築の手法の提案 5

Slide 6

Slide 6 text

目次 2. 自己紹介 6. 目次 7. 今回の構成の解説 12. XR Handsの機能拡張 18. パススルーを使えるようにする 26. まとめ 6

Slide 7

Slide 7 text

OpenXRとは OpenXRにAppleくんが参画してないのが不穏 7

Slide 8

Slide 8 text

UnityでOpenXRを使ったクロスプラットフォームMR構成 OpenXR XR Interaction Toolkit XR Hands Meta Quest2 Meta Quest Pro VIVE XR Elite Passthrough API Pico4 XR基本機能 ハンドトラッキング パススルー パススルー以外はこの構成で開発できる 8

Slide 9

Slide 9 text

UnityでOpenXRを使ったクロスプラットフォームMR構成 OpenXR XR Interaction Toolkit XR Hands Meta Quest2 Meta Quest Pro VIVE XR Elite WAVE SDK Passthrough API PICO Unity XR SDK Pico4 その他、HololensなどのMRデバイスなどもやろうと思えば対応できる 各デバイス向け開発用SDKを使わざるをえない→ 9

Slide 10

Slide 10 text

UnityでOpenXRを使ったクロスプラットフォームMR構成 OpenXR XR Interaction Toolkit XR Hands Meta Quest2 Meta Quest Pro VIVE XR Elite WAVE SDK Passthrough API PICO Unity XR SDK Pico4 Unityさんお願いします… 10

Slide 11

Slide 11 text

本題に戻ります 11

Slide 12

Slide 12 text

XR Hands 今年1月にプレ版公開、3月に正式リリースされたXR Interaction Toolkitの ハンドトラッキング用ライブラリ。 現時点で手のトラッキングとその描画はできる。 ただ現状のXR Handsには手のポーズを簡単に取得するものがない →自作しました 12

Slide 13

Slide 13 text

とりあえずサンプルを見る 結構いい感じ ただ、拡張性がない。 物を持てていますが、これは Meta(Quest)の独自のものなので クロスプラットフォームではない 13

Slide 14

Slide 14 text

指の関節データの取得 手のデータにアクセスする XRHandSubsystemを取得 左右どちらの手か 手のどの関節のデータを取るか 14

Slide 15

Slide 15 text

指の関節のID 15

Slide 16

Slide 16 text

指の開き具合の取得 やってることは単純 指の根元と先の距離から 指が開いてるか閉じてる か判断する。 16

Slide 17

Slide 17 text

手のポーズの推定 どの指が開いているかで 手のポーズを推定している 17

Slide 18

Slide 18 text

パススルーできるようにする PassthroughAPIはOculus Integrationを導入することで使える 18

Slide 19

Slide 19 text

余談 Oculus IntegrationはXR Interaction toolkitと立ち位置的には同じ なので干渉が起きてビルドがうまくいかなくなりがちっぽい 土鍋は1/3でビルドが通らなくて、1/10くらいでPCが落ちた 開発しててめっちゃ萎えるので、ここらへんうまい解決ないのかな… 19

Slide 20

Slide 20 text

もろもろ対応(細かい作業なので割愛) カメラにパススルーレイヤーの反映設定 導入時のエラーの解消 描画方式設定変更 AndroidManifestの修正 Questに対してパススルーを使うためのadbコマンド実行 20

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

LT用にコンテンツ作らなきゃな 22

Slide 23

Slide 23 text

23 !

Slide 24

Slide 24 text

フォースを使えるようにする 手をオブジェクトにかざすと、 空中に浮かぶようにしたい UniRxで非同期に手のポーズが変わ ると処理するようにした 手と距離を一定に保ちながら浮かぶ 24

Slide 25

Slide 25 text

完成したもの 1. 手を開いた状態でオブジェクトに 向ける 2. オブジェクト空中浮遊させる 3. 拳を握りしめると手につかむ ※パススルー映像の録画がうまくいか なかったので、HMDのレンズに直接ス マホをつけて撮影→ 25

Slide 26

Slide 26 text

まとめ 今回作ったものはパススルーである必要ないので、平面認識や3Dスキャ ンなどと組み合わせることでよりMRアプリらしくなる。 本来想定されていない組み合わせのため、少しでも設定ミスるとビルド に失敗する。 今後、対応が進めばクロスプラットフォームなMRアプリの開発がよりし やすくなると思われますが、現状はデバイスごとの開発のほうが現実的 26

Slide 27

Slide 27 text

ご清聴ありがとうございました 27