Unity + MRTK でバウンディングボックスを利用する
※ これは 2018/01/08 Unity 2017.3.0f3、Mixed Reality Toolkit 2017.2.1.4 Patch Release 時点の情報です
最新版では動作が異なる可能性がありますのでご注意ください
以前は MRDesignLab の方に入っていた BoundingBox や AppBar が新しい Mixed Reality Toolkit では含まれるようになったようです
https://github.com/cre8ivepark/MixedRealityToolkit-Unity/blob/Patch4_Dev_BoundingBoxAppBar/Assets/HoloToolkit-Examples/UX/Readme/README_BoundingBoxGizmoExample.mdgithub.com
さっそくお試し、必要環境は前回と同じく下記の通り
環境 | 必要条件 |
---|---|
Unity | 2017.2 以降(2017.2.1p2 が動作確認バージョンらしい) |
Windows SDK | 10.0.16299 以降 |
Visual Studio | 2017 以降 |
Windows 10 | Fall Creators Update 以降 |
お決まりの手順、MRTK のリリースページにある unitypackage 2つをそれぞれダウンロードして Unity 上にインポートします
UnityEditor を開いたら [Mixed Reality Toolkit] - [Configure] - [Apply Mixed Reality Project Settings] のメニューだけ実行してプロジェクト設定を調整
次に Assets/HoloToolkit-Examples/UX/Scenes/BoundingBoxGizmoExample のサンプル実装のシーンを開いてみます
例によって並んでる物体4つ
Bouding Box のみと、片手つかみ、両手つかみ、さらにフラットなタイプのものの組み合わせがサンプルとして用意されているようです
1つの立体を選択してみると BoundingBoxRig.cs のスクリプトがアタッチされていました
設定項目は下記のような感じ
項目名 | 説明 |
---|---|
Flattened Axis | 2D オブジェクトを対象とする場合に選択する平坦化オプション Do Not Flatten : 平坦化なし Flatten X : X 軸平坦化 Flatten Y : Y 軸平坦化 Flatten Z : Z 軸平坦化 Flatten Auto : 自動で平坦化 |
Scale Handle Material | 拡縮用ハンドルのマテリアル 通常は BoundingBoxHandle でよい |
Rotate Handle Material | 回転用ハンドルのマテリアル 通常は BoundingBoxHandle でよい |
Interacting Material | ハンドルを注視した際に表示するハイライト用マテリアル 通常は BoundingBoxHandleGrabbed でよい |
Scale Rate | 拡縮速度比率 |
Max Scale | 最大拡縮倍率 |
Rotation Type | 回転の座標系 Object Coordinates : オブジェクト座標で回転 Global Coordinates : グローバル座標で回転 |
Hand Motion To Rotate | 回転ジェスチャ入力方法 Hand Rotates To Rotate Object : 手の回転を受けて回転 Hand Moves To Rotate Object : 手の平行移動を受けて回転 |
Bounding Box Prefab | バウンディングボックス用プレハブ 通常は BoundingBoxBasic でよい |
App Bar Prefab | AppBar用プレハブ 通常は AppBar でよい |
片手でつかめる設定のものは追加で HandDraggable.cs がアタッチされていました
両手ジェスチャができるものは前回いじってみた TwoHandManipulatable.cs がアタッチされています
最後のフラットな物体に関しては Flattened Axis が Flatten Auto になっているだけの模様
ビルドして実行してみると・・・
こんな感じに扱えるみたいですね