Edited at

UnityでVIVE Hand Tracking SDKとDaydreamを組合せてみた


はじめに

先日、VIVE Hand Tracking SDKがリリースされました。

これを使うとVIVE Pro / VIVE / VIVE Focus / Androidで両手の位置トラッキングとジェスチャー認識できます。

とは言え、トラッキングはデバイス毎にできる事が違います。

デバイス
2Dポインタ
3Dポインタ
スケルタル

VIVE Pro
o
o
o

VIVE
o
x
o

VIVE Focus
o
o
x

Android(Camera2 APIに対応したカメラ必須)
o
x
x

VIVEは誰かやっていそうなのでAndroid(Daydream)と組合せてみました。


試してみる


開発環境


  • Unity 2018.3.11f1

  • gvr-unity-sdk v1.190.1

  • VIVE Hand Tracking SDK 0.8.0


サンプルシーン

image.png

VIVE Hand Tracking SDKをダウンロードして展開すると以下のパッケージがあるのでインポートします。


  • Hand Tracking SDK Unity.unitypackage

  • Hand Tracking SDK Unity Sample.unitypackage

/Assets/Aristo/Sample に2つのシーンがあるので Sample.unity を開きます。もう1つの Test_WaveVR.unity はVive Focus用なので今回は使いません。

このシーンはスクリーンショットのように5種類(右上はGrabとPushの2つ)のサンプルが含まれています。

Androidは2Dポインタのみ対応なのでカメラにアタッチされているGesture ProviderのモードをPoint 2Dにすればこのまま改造できそうです。


Daydreamと組合せる

image.png



  1. GVR SDK for Unity v1.190.1からパッケージをダウンロードしてインポートします。

  2. スクリーンショットのようにシーンルートに4つのプレハブとMain Cameraと同じ階層にプレハブを追加します。Assets/GoogleVR/Demos/Scenes/HelloVR.unityシーンからコピーすると簡単です。


  3. Player Settings > XRセッティング > VRサポートをチェックします。


  4. Player Settings > XRセッティング > Virtual Reality SDKDaydreamを追加します。

  5. サンプルシーンにバグがあるのでフォーラムを参考に修正する。

これをビルドすると冒頭の動画のように動作します。

今回はPixel3とDaydream Viewを使ったのですがカメラ必須なので前の蓋を開けたままにしてスマホはテープで留めています。

現状ではMirage Soloで使えないのですがフロントカメラを扱えるようになるのでVIVE Hand Tracking SDKも今後のバージョンアップで対応してほしいところです。


追記

GVR SDK for Unity v1.200.0でシースルモードに対応したのですが残念ながらカメラ画像を扱えないものでした。issueでは対応しないわけではないようなので今後に期待です。


リンク