[HoloLens]StereoKit 事始め
Mixed Reality Challenge というハッカソンが開催されるようです。
ルールとしては、StereoKit を用いてアプリケーションを開発することとなっていて賞金もでるようです。
StereoKit とは
StereoKit とは、公式サイトの説明によると C# と OpenXR を利用して、HoloLens アプリ や Oculus などの VR アプリが簡単に作れるライブラリとのことです。
StereoKit の特徴
-
プラットフォーム:HoloLens 2、Oculus Quest、Windows Mixed Reality、Oculus Desktop、SteamVR、Varjo、Monado Linux、そして最終的には OpenXR が存在するすべてのプラットフォームに対応
-
開発を容易にする入力エミュレーションを備えたフラットスクリーンモード
-
アプリケーションを数分ではなく数秒でデバイスにビルドする
-
手や目のようなMRでの入力に簡単にアクセス可能
-
簡単で強力な UI とインタラクション
-
モデルフォーマット:.gltf、.glb、.obj、.stl、ASCII .ply、procedural
-
テクスチャフォーマット:.jpg、.png、.tga、.bmp、.psd、.gif、.hdr、.pic、equirectangular cubemap、 procedural
-
ランタイムでのアセット読み込み
-
物理
-
デフォルトでパフォーマンスに優れたンスタンス化されたレンダリングパイプライン
-
PBR を内蔵した柔軟なシェーダー/マテリアルシステム
-
スクリーンショットを含む、ソースコードから直接作成されたドキュメント
ということで、少しだけ StereoKit を触ってみました。
開発環境の準備
-
Visual Studio 2019 (以下のワークロードをインストールする)
- .NET デスクトップ開発
- ユニバーサル Windows プラットフォーム開発(HoloLens用)
- .Netによるモバイル開発(Quest用)
-
StereoKit’s Visual Studio Template
-
テンプレートをインストールするとプロジェクト作成画面で StereoKit のテンプレートが表示されます
-
Nuget package からのインストールも可能となっています
-
HoloLens アプリ開発
Visual Studio のテンプレートから StereoKit UWP を選択してプロジェクトを作成します。
プロジェクト作成直後は、以下のように namespace が見つからないことによるエラーが表示されますが、StereoKit の Nuget パッケージは初回ビルド時にダウンロードされるため問題ありません。
ビルド設定を Release, ARM64, デバイス に変更します。
HoloLens を USB 接続した状態で、デバイス ボタンを押すとビルド、デプロイされます。
配置に失敗する場合は、設定 > デバイス > USB で USB が有効な状態になっているか確認します。もし USB データを有効にする ボタンが表示されている場合は押してください。
なお、ビルド設定で x64, ローカルコンピューター を選択すると Windows 上で動作確認もできます。
Oculus Quest アプリ開発
Visual Studio のテンプレートから StereoKit.Net Core を選択してプロジェクトを作成します。
Oculus Quest を USB で PC に接続し(Qculus Link を有効にした状態で)メニューの デバッグ > デバッグの開始(またはデバッグなしで開始)を押すことで実行可能です(普段 Oculus を使って開発していないのでもう少し手間がかかると思っていましたが案外簡単にできました)。
Oculus を接続していない状態で、実行すると Windows 上で動作確認できます。
Oculus の動画は、Oculus Link 接続後に、以下のプログラムを実行するとOculus 内の画面が PC に表示されるため、それをキャプチャしました。
C:\Program Files\Oculus\Support\oculus-diagnostics\OculusMirror.exe
※ この方法は Oculus Link を使って、PC で実行しているアプリを表示しているため Oculus Quest 向けのアプリというのは正確ではないかもしれません。クラスプラットフォーム向けのテンプレートについては現在開発中とのことです。
まとめ
今回は基本的なことの確認だけとなりますが、 とりあえずビルド、デプロイして動作確認するだけであればとても簡単に出来ました。Unity や Unreal Engine などのゲームエンジンを利用せずに、HoloLens や VR 向けのアプリケーションを作れるところが特徴的だと感じました。今後もう少し調べていこうと思います。
Discussion