狠狠撸

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

More Related Content

翱辫别苍痴搁や翱辫别苍齿搁の基本的なことを调べてみた