21.8K Views
April 22, 22
スライド概要
XRミーティング 2022/04/20【AR/CR/MR/SR/VR】(https://osaka-driven-dev.connpass.com/event/244101/)登壇資料。
XRコンテンツ開発を容易にするための標準規格について調べてみた話。OpenVRを使いたいときにそれ自体のSDKがあるのかわからなくて基本的なことを調査した。
ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。
OpenVRやOpenXRの基本的なことを 調べてみた 2022/04 XRミーティング takabrz1 Takahiro Miyaura
Microsoft MVP for Windows Development 2018-2022 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼ 普段はよくMixed Reality Toolkitに関する調査している ✓ リリース機能調べたり・・・ ✓ 面白い機能使ってみたり・・・ ✓ 新しい実験してフィードバックしたり・・・ 最近はこちらに Come Back気味 と思ったらDigital Twins ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください
標準化の話が XR(VR/AR/MR)でどうなってるかふと調べる 2022/10/24 Copyright © 2022 Takahiro Miyaura 3
XR業界の最近 ◼ XRコンテンツって何で開発するか。。。 ✓ Unity, Unreal Engine, DirectX, C++, WebVR/XR・・・ とはいえデバイスが多彩なんですよね。。。 2022/10/24 Copyright © 2022 Takahiro Miyaura 4
おのずと問題になるのが互換性 2022/10/24 Copyright © 2022 Takahiro Miyaura 5
とはいえ案外気にせず使いますよね??? いろんなデバイスで同じアプリ使えるんで 2022/10/24 Copyright © 2022 Takahiro Miyaura 6
例えば。。。 ◼ VALVE社のSteamがわかりやすいですかね。 ○VRで検索するといろいろ出てきます。 ○Steam提供のVR作品は大体のVR機で行ける (ことが多い) デバイスが SteamVR対応していれば! 2022/10/24 Copyright © 2022 Takahiro Miyaura 7
今日のお題 ◼ xR関連デバイスのアプリ開発の標準化について ✓ SteamVRとかOpenVRとか ✓ OpenXRとか ✓ UnityだとOpenXRでやるとこういう感じで作れます。 2022/10/24 Copyright © 2022 Takahiro Miyaura 8
さっきのSteamの話だと… ◼ Steamがプラットフォームを提供 ○SteamVR ✓ VR空間の書棚とかに購入したアプリが表示 ✓ そこからVR系の体験ができる いろんなVRデバイスはどうやっ てSteamVR対応してるのか OpenVR 2022/10/24 Copyright © 2022 Takahiro Miyaura 9
OpenVRとは ◼ デバイス固有部分を抽象化→コンテンツ開発を統一 ○SteamVRはさらにSteam上で販売されるVRコンテンツを共通的に扱う仕組みも含んでる VRコンテンツ VIVE用コード VRコンテンツ Meta用コード OpenVR (インターフェース) VIVE用 SDK 2022/10/24 Meta Quest用 SDK VIVE用 SDK Copyright © 2022 Takahiro Miyaura アプリ開発者 OpenVRの元で開発するだけ デバイスメーカー OpenVR仕様のSDK等を提供 Meta Quest用 SDK 10
OpenVR(SteamVR)使うときは Unityの場合はAsset Managerから ○SteamVR Plugin ✓ インポートするとXR Plug-in Managementに OpenVRが追加 2022/10/24 Copyright © 2022 Takahiro Miyaura 11
Steam界隈だけならこれでよかったが・・・ 2022/10/24 Copyright © 2022 Takahiro Miyaura 12
XR業界の最近 ◼ AR/MRもにぎわってきたんですが・・・ とはいえデバイスが多彩なんですよね。。。 2022/10/24 Copyright © 2022 Takahiro Miyaura 13
で 2022/10/24 Copyright © 2022 Takahiro Miyaura 14
OpenXR https://www.khronos.org/openxr/ デバイス固有の制御を隠蔽化し実装部分の共通化を図るための仕組み 移植が容易 もう少しひろい概念のが生まれた! 2022/10/24 Copyright © 2022 Takahiro Miyaura 15
例えば何をやってくれるのかこいつら 例:装着者の移動(6Degree Of Freedom=DoF) ○ほげほげDoF ○3次元軸(xyz)に対する変異の自由度数 ○回転3軸 = 3Dof ○回転3軸+移動3軸 = 6Dof 2022/10/24 Copyright © 2022 Takahiro Miyaura 16
例えば何をやってくれるのかこいつら 例:装着者の移動(6Degree Of Freedom=DoF) ○ほげほげDoF ○3次元軸(xyz)に対する変異の自由度数 ○回転3軸 = 3Dof ○回転3軸+移動3軸 = 6Dof ○アウトサイドイン方式 ○外部センサでトラッキング ○インサイドアウト方式 ○内蔵センサでトラッキング 2022/10/24 Copyright © 2022 Takahiro Miyaura 17
例えば何をやってくれるのかこいつら 例:装着者の移動(6Degree Of Freedom=DoF) ○ほげほげDoF ○3次元軸(xyz)に対する変異の自由度数 ○回転3軸 = 3Dof ○回転3軸+移動3軸 = 6Dof ○アウトサイドイン方式 ○外部センサでトラッキング 違いを吸収してくれる優れもの ○インサイドアウト方式 ○内蔵センサでトラッキング 2022/10/24 Copyright © 2022 Takahiro Miyaura 18
OpenXRだけでコンテンツ作る Unityみてみる? 2022/10/24 Copyright © 2022 Takahiro Miyaura 19
OpenXRだけでコンテンツ作る 環境 今回は以下の環境 ◼ Unity 2020.3.8f1 ✓ OpenXR Plugin 1.3.1 ◼ HoloLens 2だと以下も必要 ✓ Microsoft OpenXR Plugin 1.3.1 ※Mixed Reality Feature Toolでセットアップ ✓ Visual Studio 2019(HoloLens はWindows OSなのでUWP) UnityではOpenXRを使うための便利機能もあるよ 2022/10/24 Copyright © 2022 Takahiro Miyaura 20
OpenXRだけでコンテンツ作る カメラ6DOF設定の例 Tracked Pose Driver(New Input System)をMainCameraに追加 Position Actionに devicePosition [OpenXR HMD]を設定 Rotation Actionに deviceRotation [OpenXR HMD]を設定 Tracked Pose Driverを追加するとデバイスの情報がオブジェクトに反映 OpenXR HMDなので頭の動きに追従 2022/10/24 Copyright © 2022 Takahiro Miyaura 21
OpenXRだけでコンテンツ作る アクションの定義 Player Inputを利用 デバイス操作から必要なものを アクションとして定義 アクションに対応する処理を 処理するメソッドを関連付ける タップ操作でイベントを起こす場合 Input Action AssetにSelectPressedをアクションとして 定義する 2022/10/24 Copyright © 2022 Takahiro Miyaura 22
OpenXRだけでHoloLens 2コンテンツ作る アクションの定義 Input Action Assetはデバイス操作とアクションを紐づけ デバイス操作をアクションとして定義 (左手のタップ操作をSelectアクションで定義) 2022/10/24 Copyright © 2022 Takahiro Miyaura 23
OpenXRだけでコンテンツ作る 色々頑張るといつものあれができます! ◼ 割り当てたアクション ✓ ✓ ✓ ✓ Head Position(6DOF) ハンドトラッキング(Palmのみ) ハンドレイ タップ操作でのアクション ◼ 実装例 ✓ ハンドレイでフォーカス、タップでオブジェクトの色変更 ✓ 空間でタップすると豆腐が生み出される 2022/10/24 Copyright © 2022 Takahiro Miyaura 24
おまけ 2022/10/24 Copyright © 2022 Takahiro Miyaura 25
おまけ Mixed Reality Toolkit(MRTK)の次期版も。。。 OpenXRやXR Interaction Toolkitがベースになるようです ○非MRTKのコードと容易に統合可能 ○独立したサブシステム ○MRTK V2を使いながらMRTK V3へ移行が可能 ○エンタープライズ規模に対応したコンポーネント ○トクロスプラットフォームデバイスのサポー ○業界標準のサポート(最小要件の変更) Unity XR Interaction Toolkit(XRI) xRデバイスとコンテンツのInteraction を抽象化しデバイス固有の実装を隠蔽 かすることでクロスプラットフォーム 開発を支援するための開発キット 2022/10/24 OpenXR Unity 2020.3 LTS xRコンテンツ開発を簡素化することを 目的としたクロスプラットフォームXR 体験を実現するための仕様およびSDK xRコンテンツ開発を実現する3D開発プ ラットフォーム Copyright © 2022 Takahiro Miyaura 26
まとめ 2022/10/24 Copyright © 2022 Takahiro Miyaura 27
まとめ ◼ xR関連デバイスのアプリ開発の標準化について ✓ 標準化はVR系の方が先だった ✓ Steam中心でVR系の標準化が進んだ(StreamVR/OpenVR) ✓ 最近は徐々にOpenXRにシフトしていってるらみたい ✓ UnityだとOpenXRを使えば、クロスプラットフォーム化は容易 ✓ さらにXR Interaction Toolkit(XRI)も使うとより便利に ✓ HoloLensでよく使うMRTKでもOpenXRが今後はメインになりそう 2022/10/24 Copyright © 2022 Takahiro Miyaura 28
大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ 2022/10/24Copyright © 2022 Takahiro Miyaura 29