MixedRealityToolKit(以下MRTK)にはExamplesというデモサンプル集が含まれています。
Examplesを理解すればMRTKの機能の使い方を学習することやノンコーディングでのアプリ開発が可能になります。
今回は UX/BoundingBox/BoundingBoxExamplesを見ていきます。
〇デモシーンの概要
このデモシーンでは様々なタイプのBoundingBoxとその見え方を見ることができます。
MixedRealityデバイスにおけるBoundingBoxはアプリ内のオブジェクトの移動、方向、大きさをユーザー自身が変更する際に使用し、直感的に操作するためのUIです。
〇シーンの解説
シーンには左から順に以下の7種類のコップオブジェクトが存在します。
・Activate by Hand Proximity and Pointer (CoffeeCup1)
・Activate by Hand Proximity and Pointer, Far Scale = 1 (CoffeeCup2)
・Activate on Start, Far Scale = 1 (CoffeeCup3)
・Activate by On Start No handle prefabs assigned (CoffeeCup4)
・Activate by Hand Proximity and Pointer No handle prefabs assigned(CoffeeCup5)
・Activate by On Start No handle prefabs assigned (CoffeeCup6)
・Activate Manually No handle prefabs assigned(CoffeeCup7)
7つは同じCoffeeCupという3Dモデルのオブジェクトで構成されていますが、それぞれBoundingBoxの表示方法に違いがあります 。
〇BoundingBox
MRTKv2におけるBoundingBoxはBoundingBoxを機能させたいオブジェクトの親にBoundingBox.csがあり、これによって機能しています。
このシーンの場合「HoloLens 2 Style」などのテキストも含めてBoundingBoxの影響を受けるように親オブジェクトが設定されています。
〇各BoundingBoxの違い
・CoffeeCup1
BondingBoxが表示されScaleやRotationのためのハンドルが表示されない
・CoffeeCup2
カーソルを当てたとき、もしくはGrabのときバーハンドルが表示される。
・CoffeeCup3
常にバーハンドルが表示されている。
・CoffeeCup4
カーソルもしくはGrab時に操作する部分の球体ハンドルが表示される(HoloLens1stスタイル)
・CoffeeCup5
カーソルもしくはGrab時にすべての部分の球体ハンドルが表示される(HoloLens1stスタイル)
・CoffeeCup6
常にすべての部分の球体ハンドルが表示されている。
・CoffeeCup7
常に下部にバーが表示されており、ボタンを選択することですべての部位の球体ハンドルが表示される。 また、オブジェクトを削除することもできる。
このデモシーンではCoffeeCupを主に3タイプに分けることができます。
それぞれ詳しく見ていきます。
Type①CoffeeCup1 ,CoffeeCup2,CoffeeCup3
MRTKv2で新しく導入されたHoloLens2用のBoundingBoxです。
〇CoffeeCup1、CoffeeCup2との比較
この2つのオブジェクトの違いはシーン実行時に表示されるハンドル(BoundingBoxの操作ハンドル)です。
2つのオブジェクトのBoundingBox.csを見比べてみるとほぼすべて同じ設定ですが一か所だけ、ProximityのFar Scaleが違います。
実行中にこの値を変化するとハンドルの大きさが変化しました。
BoundingBoxExamples CoffeeCup1,CoffeeCup2比較
〇CoffeeCup1,2とCoffeeCup3の比較
CoffeeCup3と1,2の違いは常にハンドルが表示されるか、手をかざしたときにのみ表示されるかの違いです。
この設定はBoundingBox.csのBegavior内ActivationがActivate On Startにすることで実現します。
Type② CoffeeCup4 ,CoffeeCup5,CoffeeCup6
BoundingBoxExamples CoffeeCup4,5,6比較
従来のMRTK(旧HoloToolKit)から含まれているHoloLens1stのスタイルタイプです。
HoloLens 2のType①グループとの違いはBoundingBox.csのHandlesにアタッチされているMaterialとPrefabです。
こちらのHoloLens 1stスタイルタイプではプレファブがアタッチされていません。
これを見るにHoloLens 1st用のBoundingBoxを拡張してMRTKv2でプレファブを設定することでスタイルを変更できるようになっているようです。
〇CoffeeCup4、CoffeeCup5との比較
Cup5は常にハンドルが表示されているのに対して、Cup4ではカーソルを当てた場所のみハンドルが表示されます。
BoundingBoxのBoxDisplay、WireframeにMaterialを設定することで行っています。
CoffeeCup5ではここの設定がされていないため実行時にMaterialが自動的にアタッチされデフォルトではすべてのhandleが表示されるようになっています。
〇CoffeeCup4,5、とCoffeeCup6との比較
CoffeeCup6ではカーソルが当たった時だけではなく常にBoundingBoxが表示されています。
CoffeeCup3同様BoundingBox.csのBegavior内ActivationがActivate On Startにすることで実現します。
Type③ CoffeeCup7
従来のHoloLens 1stスタイルです。
AppBarというオブジェクトが設定されておりTargetBoundingBoxにCoffeeCup7のBoundingBoxが設定されており、これによってBarのボタンを押すことでBoundingBoxを機能させています。
BoundingBoxExamples CoffeeCup7
BoundingBoxは3Dオブジェクトを配置調整するアプリケーションであればほとんどの場合使用する機能になります。
MRTKの前のバージョンと比べMRTKv2ではBoundingBox.cs一つに機能がまとめられた印象を受けます。