OpenXR
OpenXR は、Khronos によるオープンでロイヤリティフリーの API 標準であり、Mixed Reality スペクトル全体のさまざまなデバイスへのネイティブ アクセスをエンジンに提供します。
HoloLens 2 で OpenXR を使用するか、デスクトップで Windows Mixed Reality イマーシブ VR ヘッドセットを使用して開発できます。 ヘッドセットにアクセスできない場合は、代わりに HoloLens 2 エミュレーターまたは Windows Mixed Reality シミュレーターを使用できます。
OpenXR を使用する理由
OpenXR を使用すると、HoloLens 2 などのホログラフィック デバイスと、デスクトップ PC 用の Windows Mixed Reality ヘッドセットなどのイマーシブ VR デバイスの両方をターゲットとするエンジンを構築できます。 OpenXR により、コードを 1 回作成するだけで、その後、さまざまなハードウェア プラットフォームに移植できます。
OpenXR API ではローダーを使用して、アプリケーションをヘッドセットのネイティブ プラットフォーム サポートに直接接続します。 エンド ユーザーは、Windows Mixed Reality ヘッドセットまたはその他のヘッドセットのどちらを使用しているかにかかわらず、パフォーマンスを最大化し、待機時間を最小限に抑えることができます。
OpenXR とは
OpenXR API は、ホログラフィックとイマーシブの両方のデバイスをターゲットとすることができるエンジンを構築するために必要なコア ポーズ予測、フレーム タイミング、空間入力機能を提供します。
OpenXR API については、OpenXR 1.0 の仕様、API リファレンス、クイック リファレンス ガイドを参照してください。 詳細については、Khronos OpenXR のページを参照してください。
HoloLens 2 のすべての機能セットをターゲットとするには、クロスベンダーおよびベンダー固有の OpenXR 拡張機能も使用します。これにより、連結ハンド トラッキング、視線追跡、空間マッピング、空間アンカーなどの OpenXR 1.0 コア以外の追加機能を有効にすることができます。 今年後半に予定されている拡張機能の詳細については、下記の「ロードマップ」セクションを参照してください。
OpenXR 自体は、Mixed Reality エンジンではありません。 代わりに、OpenXR を使用することにより、Unity や Unreal などのエンジンで、移植可能なコードを 1 回作成し、その後、プラットフォームを構築したベンダーに関係なく、ユーザーのホログラフィックまたはイマーシブ デバイスのネイティブ プラットフォーム機能にアクセスできます。
ロードマップ
OpenXR 仕様では、ランタイム実装者が基本 OpenXR 1.0 仕様で定義されているコア機能以外の追加機能を公開できる拡張機能メカニズムが定義されています。
OpenXR 拡張機能には、次の 3 種類があります。
- ベンダー拡張機能 (例:
XR_MSFT_...
): ハードウェアまたはソフトウェア機能のベンダーごとのイノベーションを実現します。 ランタイム ベンダーは、いつでもベンダー拡張機能を導入および出荷できます。- 試験的なベンダー拡張機能 (例:
XR_MSFTX_...
): フィードバックを収集するためにプレビューされる試験的なベンダー拡張機能。XR_MSFTX_...
拡張機能は、開発者デバイス専用で、実際の拡張機能が出荷されると削除されます。 これらを試用する場合は、開発者デバイスでプレビュー機能を有効にすることができます。
- 試験的なベンダー拡張機能 (例:
- クロスベンダー
EXT
拡張機能: 複数の企業が定義および実装するクロスベンダー拡張機能。 関心のある企業のグループは、いつでも EXT 拡張機能を導入できます。 - 公式
KHR
の拡張機能: コア仕様のリリースの一部として承認された公式の Khronos 拡張機能。 KHR 拡張機能は、コア仕様自体と同じライセンスの対象になります。
Windows Mixed Reality OpenXR Runtime では、一連の MSFT
および EXT
拡張機能がサポートされています。これらにより、完全な HoloLens 2 機能セットが OpenXR アプリケーションに提供されます。
これらの拡張機能の一部はベンダー固有の MSFT
拡張機能として開始される場合がありますが、Microsoft およびその他の OpenXR ランタイム ベンダーは共同で、これらの機能領域の多くについて、クロスベンダーの EXT
または KHR
拡張機能を設計しています。 クロスベンダー拡張機能を使用すると、コア仕様と同様に、これらの機能のために作成されたコードをランタイム ベンダー間で移植できます。
OpenXR が使用可能なケース
"Minecraft の新しい RenderDragon エンジンでは、OpenXR を使用してデスクトップ VR サポートが構築されています。"
Microsoft は Unity および Epic Games と共同で、HoloLens 2 だけでなく、HP の新しい Reverb G2 ヘッドセットを含む PC VR の全範囲にわたって Mixed Reality の未来が開かれるように取り組んでいます。 OpenXR により、現在出荷されている主要なタイトル (Minecraft や Microsoft Flight Simulator など) に対するクロスベンダー VR サポートが提供されます。 HoloLens (第 1 世代) の開発の詳細については、リリース ノートを参照してください。
Unity、Unreal Engine、または独自のエンジンで OpenXR の使用を開始する方法については、以下を参照してください。
Unity での OpenXR
HoloLens 2およびWindows Mixed Reality開発のために Microsoft が現在推奨している Unity 構成は、Mixed Reality OpenXR プラグインを使用した Unity 2020.3 LTS です。 このプラグインには、手と目の追跡、空間アンカー、HP Reverb G2 コントローラーなど、HoloLens 2 および Windows Mixed Reality ヘッドセットの全機能を強化する OpenXR 拡張機能のサポートが含まれています。 MRTK-Unity では MRTK 2.7 以降で OpenXR をサポートしています。 Unity 2020 と OpenXR の使用を開始する方法の詳細については、「Unity のバージョンと XR プラグインの選択」を参照してください。
HoloLens (第 1 世代) 用に開発している場合は、レガシ WinRT API バックエンドで Unity 2019.4 LTS を引き続き使用する必要があります。 Unity 2019 アプリで新しい HP Reverb G2 コントローラーをターゲットとしている場合は、HP Reverb G2 入力に関するドキュメントを参照してください。
Unity 2021.3 LTS 以降では、HoloLens 2とWindows Mixed Reality ヘッドセットをターゲットにするための唯一のサポートされている Unity バックエンドが OpenXR になります。
Unreal Engine での OpenXR
Unreal Engine 4.23 は、OpenXR 1.0 のプレビュー サポートを出荷するためにリリースされた最初の主要なゲーム エンジンでした。 Unreal Engine 4.26 では、HoloLens 2、Windows Mixed Reality、およびその他のデスクトップ VR ヘッドセットのサポートが、UnrealEngine の組み込みの OpenXR サポートを通じて利用できるようになりました。 さらに、Unreal Engine 4.26 では、Microsoft の OpenXR 拡張機能プラグインもサポートされます。これにより、ハンド インタラクションおよび HP Reverb G2 コントローラーのサポートが可能になり、HoloLens 2 および Windows Mixed Reality ヘッドセットの完全な機能セットを使用できます。 Unreal Engine 4.26 は現在、Epic Games Launcher で、OpenXR プロジェクトをサポートする MRTK-Unreal 0.12 を使用して入手することができます。
ネイティブ開発用の OpenXR
HoloLens 2 で OpenXR を使用するか、デスクトップで Windows Mixed Reality イマーシブ VR ヘッドセットを使用して開発できます。 ヘッドセットにアクセスできない場合は、代わりに HoloLens 2 エミュレーターまたは Windows Mixed Reality シミュレーターを使用できます。
HoloLens 2 または Windows Mixed Reality VR ヘッドセット用の OpenXR アプリケーションの開発を開始するには、OpenXR 開発の開始方法に関するページを参照してください。
OpenXR API のすべての主要なコンポーネントに関するツアーと、現在 OpenXR を使用する実際のアプリケーションの例については、次の 60 分間のチュートリアル ビデオをご覧ください。