ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

HoloLens の視線カーソル(Gaze)とAirTap(Gesture)を使う

HoloLens の視線カーソル(Gaze)とAirTap(Gesture)を使ってみます。

HoloLensの選択処理は現状これしかないので、なんらかのアプリを作る上では必須の機能となるでしょう。

プロジェクト全体はこちらにあります。

github.com

視線カーソルの種類

今回はHoloToolkitを使用します。HoloToolkitの視線カーソルにはいくつかあり、通常のカーソルや手の検出を見せるカーソルなどがあります。アプリによって使い分ければよいでしょう。

通常のカーソル

f:id:kaorun55:20160622173424p:plain

手の検出を示すカーソル

f:id:kaorun55:20160622173422p:plain

 

視線カーソル(Gaze)とAirTap(Gesture)の追加

HoloToolkitを追加します。導入方法についてはこちら。

www.naturalsoftware.jp

オブジェクトの配置

Hierarchyビューにあるものを削除して、UtilityのMain Camera Prefab、InputにあるCursor Prefab(通常のカーソル)、Cubeを二つ配置します。GestureManagerについては後述します。

f:id:kaorun55:20160622172539p:plain

Cubeはこのように配置します。

f:id:kaorun55:20160622172600p:plain

Transformの値はこんな感じで。もう片方はPositionのXが0.3になってます。

f:id:kaorun55:20160622172634p:plain

GestureManager

GestureManagerは空のGameObjectを追加し、InputのScriptsにある「GazeManager」、「GestureManager」、「HandsManager」を追加しています。

カーソルの使い分けでHandsManager」を入れていますが、Cursor Prefabであれば「GazeManager」と「GestureManager」だけで動作します。

f:id:kaorun55:20160622172913p:plain

以上で視線カーソルとジェスチャーの実装は完了です。この状態で実行すると、Cubeに当たるとドーナツ型になるカーソルができあがります。

クリックされた時の処理を実装する

クリックを検出したら、そのときの視線の先にあるGameObjectに対して「OnSelect」メッセージが発行されます。GameObjectにOnSelectメソッドが実装されているスクリプトを貼り付けます。

例えば今回はAirTapごとに色を変える実装の「CubeCommand」をCubeに貼り付けています。

f:id:kaorun55:20160622173652p:plain

スクリプトの実装は次の通りです。

gist6ef1b1e5fbd40407c8cb9e7683e1a7bb

これでAirTapごとに色が変わるようになります。


HoloLens AirTap Demo1

カーソルを「CursorWithFeedback」に変更すると、手を検出するとモデルが変わるカーソルになります。


HoloLens AirTap Demo2