Spatial Mappingのメッシュを動かさずに、キーボード操作をする方法

HoloLensのアプリケーション開発手段として、従来のHoloTool Kitに加えて、MR Design Labというプロジェクトがあります。

これは、一部HoloToolKitのSDKを含みつつも、ユーザー操作機能が拡張されています。

Unityで使う基本的な準備方法は下記にまとめたので、よろしければご参照ください。

magicbullet.hatenablog.jp


さて、せっかくなので、MR Design Labを色々見ているところ、とある事情でCGモデルをSpatila Mappingした実空間上で動かすことになりました。

最終的にキーボード操作で動くようになったのですが、途中過程で少し詰まったので、参考までに整理しました。

環境です。

Windows 10 Pro Creator Update
・Unity 5.6.2f1
・MR Design Lab v0.1.2-Unity-5.6

======

目次

1. MR Design Labをそのまま使ってキーボード操作を入れた結果

2 変更方法

3. 動作確認

======

1. MR Design Labをそのまま使ってキーボード操作を入れた結果

HoloLensのメッシュでステージを使って、乗り物のCGをラジコン操作を試そうとしました。

CGモデルをキーボードから動かせるようにスクリプトを書いて実際に動かしてみると、このようになりました。

少し見辛いですが、キーボード操作によってSpatial Mappingのメッシュが動いています。

いうまでもなく、本来はCGモデルを動かすのが目的ですので、これでは意図と異なります。


今回は、キーボード操作でこうならない方法を解説します。


2 変更方法


他にも方法があるかもしれませんが、簡単なのは下記のスクリプトを変更することです。


gistfe5ed2a4f262de4e76d6f60626a3a64c

配置場所は、Assets/MRDesignLab/HUX/Scripts/Utility/ManualCameraControl.cs です。


このGetCameraControlTranslation()によって、HoloLensのカメラを動かすようにしているので、キー入力の箇所(上のgistでは6,7行目)をコメントアウトします。

これを修正することによって、オブジェクトをキーボードで動かすことができました。

参考までに、整形できてませんがオブジェクトを動かすコードです。


gist7091d111d0af449c8946102a70177e23

Audio関係のコードは、操作をしているときだけ音が鳴るためのものです。

このコードを適当な空のGameObjectに貼り付けます。
Sceneには操作したいCGモデルを配置し、AudioSourceとRigidBodyをつけておきます。


ちなみに、ゲームパッドが手持ちにないので動作未確認ですが、この記事によるとXbox One Controllerでは動くようです。

bril-tech.blogspot.jp


3. 動作確認

こうなります。遠近感が少しおかしいですが、実際は床の上にピンク色のカプセルが転がっていて、キーボード操作で動いています。


これを使うと、現実の中でラジコン操作のようなことができそうですね。