DEV Community

KOGA Mitsuhiro
KOGA Mitsuhiro

Posted on • Originally published at qiita.com

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)と組合せてみました。

DaydreamViewとVive Hand Tracking SDKを組み合わせてみた。Daydreamだとジェスチャー認識と位置トラッキングがバッチリ動いた #unity pic.twitter.com/f5iuYPuTgX

— Mitsuhiro Koga (@shiena) March 19, 2019

試してみる

開発環境

  • 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を使ったのですがカメラ必須なので前の蓋を開けたままにしてスマホはテープで留めています。

カメラが必要なので蓋を開けたままテープで強引に留めただけw pic.twitter.com/kPHfB8r0aD

— Mitsuhiro Koga (@shiena) March 19, 2019

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

追記

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

リンク

Top comments (0)