MixedRealityToolKit(以下MRTK)にはExamplesというデモサンプル集が含まれています。
Examplesを理解すればMRTKの機能の使い方を学習することやノンコーディングでのアプリ開発が可能になります。
今回は MRTK v2.2.0で実験的にリリースされたPulseShaderExamples 見ていきます。
〇シーン解説
PulseShaderExamplesシーンはMixedRealityToolkit Examplesに含まれていますが、ほかのデモのようにDemoには入っていません。
『Experimental』と呼ばれるフォルダに存在します。
このシーンではHoloLens 2で使用することができるHandMeshとHoloLens 1stでも使用できる空間認識のSpatialMeshの描画にPulseShaderを使用する方法を示しています。
これらを実機のHoloLensで使用するためにはMRTKProfileで「Hand Mesh Visualization Mode」と「Spatial Awareness」を有効化する必要があります。
sceneを見てみると3つのSphereがあり、PulseShaderが適応されたMaterialによってSFチックな見た目をしています。
今回は実機でこれを動かします。
〇実機へビルドする。
SpatialMappingやHoloLens 1stでは確認できませんが、HandMeshなどのための機能のため、デモシーンでは仮のオブジェクトに張り付けられており、その効果がよくわかりません。
今回のシーンはまず初めに実機で動かしてみます。
〇Profileを変更する。
実機で動かすためにはProfileを設定してSpatialMeshをPulseShaderに対応させます。
hierarchyからMixedRealityToolkitのインスペクタを開きます。
MixedRealityToolkitのProfileはデフォルトで設定されているProfile自体の中身を変更することはできません。
コピーしてカスタマイズする方式となるのでCopy & Customizeをクリックします。
ウィンドウが開くので新しいProfileに名前を付けCloneを選択します。
Cloneの設定にはほかにも項目がありますが、今回は設定する必要がありません。
Cloneが完了するとMixedRealityToolkitのProfileをコピーしたものに設定することができます。
これで各設定を変更することができるようになりました。
Target Scaleはアプリ実行する環境をあらかじめ設定する項目です。
ここではRoom もしくは Worldを選択します。
〇SpatialAwarenessの設定
SpatialMappingを扱うためにはSpatialAwarenessで設定できます。
こちらもデフォルトのProfileのままでは設定を変えることができないのでCloneを選択してcloneします。
SpatialMappingをアプリ内で扱うためにはEnable SpatialAwareness Systemにチェックを入れ有効化します。
最後にSpatialMeshのMaterialをPulseShaderに対応したものに変えます。
WindowsMixedRealitySpatialMeshObserverにあるDisplay Settingsで行います。
Visible MaterialのMaterialにMRTK_SurfaceReconstructionをアタッチします。
以上でPulseShaderに対応したSpatialMappingをアプリ内で可視化する設定が終わりました。
〇ビルド
ターゲットプラットフォームがUWPであることを確認してTargetDeviceをHoloLens、architectureをx86に設定してBuildを選択します。
フォルダが開くので Appsという名のフォルダを新規で作成して、Appsフォルダを選択します。
問題がなければAppsフォルダ内に.slnファイルが作られます。
〇デプロイ
.slnファイルをVisualStudioで開きます。
ソリューションエクスプローラーの中にあるプロジェクトからPackage.appxmanifestを開きます。
上部タグから機能を選択します。
空間認識を探しチェックを入れます。
最後にHoloLens実機をUSBで接続し、Release、x86、Deviceでデバッグタグからデバッグなしで実行を選択します。
問題がなければ以上でデプロイが開始されます。
〇実機で確認する
これで実機でPulseShaderを確認することができるようになりました。