ユーセンブログ

ゲーム開発に関することをたまに書きます

【Unity】ViveのHandTracking SDKのサンプルをVive Proで試してみる

はじめに

Viveのカメラを使ったHandTackingのSDKが公開されました。 細かい説明は3/19のGDCで説明があると思うのですが、とりあえず試してみたいということでサンプルを落として動かしてみたのでまとめます。

community.viveport.com

動作環境

  • Unity 2018.3.8f1
  • GeForce Game Ready Driver 419.35
  • Vive Pro

手順

SDKの準備

まずはHandTrackingのSDKをこちらのページからダウンロードします。ViveProかつUnityの場合以外は上のResorcesタブから該当のSDKを落としてきてください。 developer.vive.com

Unityの設定

ダウンロードしたファイルの中に”Hand Tracking SDK Unity Sample.unitypackage”と"Hand Tracking SDK Unity.unitypackage"が入っているのでこれをUnityにインポートします。 その後、Package ManagerからOpenVR Pluginをインポートして、XR SettingsのVirtual Reality Supportedをオンにしてください。 これでUnity側の準備は完了です。しかし、このままVive ProをつなげてもVive Proのカメラが有効になっていないためハンドトラッキングをすることはできません。

Vive Proのカメラを有効にする

カメラを有効にするためには、Steam VRの設定>カメラから"カメラを有効にする"を選択して有効化してください。 カメラを有効化することができたら一度Steamを再起動してカメラのウィンドウからカメラレートのテストでカメラが動いているかを確認してください。 無事にカメラが動いているようでしたら準備は完了になります。 f:id:k_tachiban:20190318170445p:plain

動かす

これで準備は一通り終わったので次はサンプルを動かしてみます。 Aristoフォルダ内にあるSampleシーンを起動します。

f:id:k_tachiban:20190318175015g:plain

動きました。

このシーンでできるアクションは

  • 右手を握って開くとレーザーが出せる
  • 両手を握ってエイムを箱に合わせて開くと掴む、手をもう一度握ると放す
  • 左手で箱を掴む
  • 右手で箱を押す
  • 右手の人差指を立てると出てくる光の玉を順になぞると箱を出せる

f:id:k_tachiban:20190318172131p:plain

といったアクションが可能になっています。

参考

developer.viveport.com

developer.viveport.com

おまけ

自分の環境ではデフォルトのまま実行するといくつかエラーが出てました。毎フレーム出てくるエラーがあるので対処法を書いておきます。 あと原因は不明なんですがハンドトラッキング周りの処理のCPU負荷がやばい。(i7-7700) f:id:k_tachiban:20190318174157p:plain

大量のMissingComponentException

両手を使ったAimを行うと前のUIパネルにレイがヒットしてしまい、アタッチされていないRigidbodyを参照しようとします。なのでヒエラルキーの中にあるInstructionといゲームオブジェクトのレイヤーをIgnore Raycastに変更してください。