Oculus Integration v37 から追加された Interaction SDK のサンプルシーンを触る

f:id:xrdnk:20220202223935p:plain

はじめに

Interaction SDK は Oculus Integration v37 から追加されました.

Interaction SDK を用いることで手に関連するインタラクション(ハンド・コントローラ)の
インタラクションを簡単に構築できるようになります.

本記事は Interaction SDK にあるサンプルを触れてみた感じの記事になります.

検証環境

  • Meta Quest 2 v37
  • Unity 2020.3.26f1
  • Oculus Integration v37
  • Oculus Application v37
  • Air Link

Interaction SDK の在り処

Oculus Integration v37 をインポートします.
v37 から追加された Interaction ディレクトリに Interaction SDK 群が入っています.

f:id:xrdnk:20220202224558p:plain

いつものの Editor,Runtime,Samples の分け方になっていて,asmdef もいい感じに切られています.

この Samples にあるシーンを触れてみます.

BaseGrab

gyazo.com

鍵を掴むと,人差し指あたりで物体が掴めます.
松明を掴むと,掌で物体が自動的に掴む処理が走ります.
ちなみに炎が発生する部分に触れても自動的に持てる部分に移動するのがよいです.
マグカップも掴む部分によってアニメーションが変わったりと細かい.

BasePoke

gyazo.com

こちらのシーンはダイレクトタッチ系の処理が確認できます.
コントローラの先にある丸いキューブ?で物体に触れるとインタラクションできます.

BasePoseDetection

gyazo.com

こちらはハンドトラッキング用です.
HandPose を認識して,合っていたらイベントが発火するようになっています.
サムズアップ・サムズダウン・グー・チョキ・パーを出すと
パーティクルやその HandPose のテキストが表示されます.

BasicRay

gyazo.com

こちらではカーソルの移動と選択ができます.
Meta Quest のホーム画面でよく使われているので馴染み深い感じがあります.

ComplexGrab

gyazo.com

複雑なグラブ処理を確認できます.
コンストレイントがある宝箱を開けたり,マグネットみたいな物体を掴んだり,
物を投げたり,後は動画の最後らへんになりますが,人形をハンドトラッキングで掴むと
手が隠れるような処理も入っています.

おわりに

基本的にに以下の機能がある感じです.

  • 物体の掴む処理
    • 人差し指で掴む(ピンチグラブ)
    • 掌で掴む(パームグラブ)
  • 物体の投げる処理
  • 手(指を含む)のポーズの認識処理
  • ダイレクトタッチ
  • カーソル移動と選択

こちらの SDK を利用すればハンドトラッキングに関わる実装が手軽にできそうです.

参考資料

Interaction SDK Overview | Oculus Developers

Presence Platform Interaction SDK and Tracked Keyboard Now Available