夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

VisualStudioでOpenXRを用いてMRアプリ開発を行うStereoKitについて調べてみた。

本日はツール周りの調査枠です。

〇StereoKitとは?

[StereoKit]はMicrosoftによって提供されているMixedReality環境に特化した開発ツールです。

OpenXRのAPIに準拠したAPIが提供されています。

StereoKitはできる限りコーディングを必要とせずにアプリケーションを構築する考えで提供されており、UIを含むタスクのほとんどを一行のコードで構築することができます。

OpenXRはロイヤルティーフリーで提供されるAPI規格で、xRを実現する多々のデバイスへのネイティブアクセスを可能にします。

f:id:Holomoto-Sumire:20211115194511p:plain

HoloLens 2を含めOculus Quest、Varjo、VIVEなどのxR機器で共通した機能を使用することができます。

[StereoKit]は現在初期リリースであり、不具合などの可能性が指摘されています。

stereokit.net

〇StereoKitで提供される機能

・HoloLens 2、Oculus Quest、Windows Mixed Reality、Oculus Desktop、SteamVR、Varjo、Monado Linuxのプラットフォームに対応しています。

・.gltf、.glb、.obj、.stl、ASCII .plyの拡張子のモデルに対応しています。(fbxが使用できない点は注意です

・ .jpg、.png、.tga、.bmp、.psd、.gif、.hdr、.pic、equirectangular cubemapのテクスチャフォーマットに対応しています。

またパフォーマンス性に優れた独自のレンダリングエンジンが使用できるようです。

〇環境

Visual Studio 2019

  ・.Netを用いたデスクトップの開発

  ・ユニバーサルWindowsプラットフォームの開発

  ・.Netを用いたモバイルの開発

・StereoKitのVisual Studioテンプレート

  marketplace.visualstudio.com

またPC、各デバイスの開発者モードを有効にしている必要があります。

〇導入

①以下のサイトから[Stereokit]のテンプレートをダウンロードします。

marketplace.visualstudio.com

②ダウンロードした[.vsix]ファイルをダブルクリックし、展開します。

f:id:Holomoto-Sumire:20211114093344p:plain

f:id:Holomoto-Sumire:20211114094106p:plain

③VisualStudio2019を開き新規プロジェクトを作成、テンプレートから[Stereokit.Net Core]を選択します。

f:id:Holomoto-Sumire:20211114094203p:plain

以上でプロジェクトが作成されました。

HoloLensでデプロイするとき同様実行することでサンプルシーンが実行されます。

f:id:Holomoto-Sumire:20211115195919p:plain

[StereoKit]では[HelloWorld]ではなく[HelloCube]と呼称しているようです。日本では豆腐と呼ばれますね。

f:id:Holomoto-Sumire:20211115195950p:plain

以上でStereoKitを動作させることができました。現在まだHoloLens実機では確認できていないので次回では実機で動かしてみます。

トラブルシューティング

実行時にウィンドウが固まってしまう問題がありました。

エラーコードを見てみるとVarjo関連でエラーが発生していることがわかりました。

20211114 9:55:16.420 ERR [Varjo::Session::setError] varjo_GazeInit: Error: Gaze not connected
[SK diagnostic] Using system:
[SK diagnostic] OpenXR depth LSR ext enabled!
20211114 9:55:16.421 WAR [Varjo::Session::setBackwardCompatibilityOptions] Disabling off-center projection matrices due to SDK version < 1.2
20211114 9:55:16.422 ERR [Varjo::Session::setError] varjo_GazeInit: Error: Gaze not connected

筆者環境ではOculus Link環境のほかVarjoBaseも導入していたためこれが原因であると判断してVarjoBaseをアンインストールすることで問題が解消されました。