$30 off During Our Annual Pro Sale. View Details »

Oculus Interaction SDK 概説 / xrdnk-caunity-LT4

Denik
May 17, 2022

Oculus Interaction SDK 概説 / xrdnk-caunity-LT4

Denik

May 17, 2022
Tweet

More Decks by Denik

Other Decks in Programming

Transcript

  1. Oculus Interaction SDK 概説 2022/05/20 CyberAgent.unity #4 Denik (@xrdnk) Unity

    / VR Engineer
  2. 自己紹介 Denik (@xrdnk) ◼ Unity / VR エンジニア ◼ MyDearest,

    Inc. ◼ 今夏発売予定 Dyschronia 制作中
  3. アジェンダ ◼ はじめに ◼ 機能紹介 ◼ Grab Interaction ◼ Hand

    Grab Interaction ◼ Poke Interaction ◼ Ray Interaction ◼ Hand Pose Detection ◼ おわりに
  4. はじめに

  5. Oculus Interaction SDK Oculus Integration SDK v37 (22年2月) から追加された ハンド/コントローラのインタラクション機能がまとまっている

    SDK 基本的にはノーコードでコンポーネントポチポチで使える 対応プラットフォームは Quest / Quest 2 のみ
  6. 導入例 Chess Club VR Finger Guns ForeVR Darts

  7. 出来ること ◼ VR 基本インタラクション (Grab・Poke・Ray) ◼ Grab 時の Hand Pose

    指定とその Pose を簡単に作るツール ◼ Hand Pose の検知 ◼ タッチリミッター (手が平面を通過するのを防ぐ) ◼ 曲面キャンバス
  8. 機能紹介

  9. Grab Interaction

  10. Grab Interaction ◼ 主にコントローラ向けの汎用グラブインタラクション

  11. Grab Interactor Grab Interaction の主体側:コントローラ側につける

  12. Grab Interactable Grab Interaction の客体側:物体側につける

  13. Grabbable (v37 は Transformable だった) Interactable に対して Grab 時に Transform

    に何らかの制約を加えることが出来るコンポーネント
  14. One Grab Transformers 片手 Grab 時に指定の Transform 変換操作が可能に Default は

    OneGrabFree (位置・回転・スケール操作) OneGrabTranslate 位置操作のみ(コンストレイト設定可能) OneGrabRotate 回転操作のみ(コンストレイト設定可能)
  15. Two Grab Transformers 両手 Grab 時に指定の Transform 変換操作が可能に Default は

    TwoGrabFree (位置・回転・スケール操作) TwoGrabFree 位置・回転・スケール操作 (スケールのコンストレイト設定可能)
  16. Hand Grab Interaction

  17. Hand Grab Interaction ◼ ハンドトラッキング向きのグラブインタラクション ◼ 手の掴み動作を細かく指定出来る

  18. Hand Grab Interactor Hand Grab Interaction の主体側:手側につける

  19. Hand Grab Interactable Hand Grab Interaction の客体側:物体につける

  20. Grab Types Hand Grab Interaction の Grab にはタイプがある Pinch Grab

    指定された指で「摘まむ」 Palm Grab 手のひら全体で「掴む」
  21. Grab Rules Hand Grab 時のルールを 決めることが出来る 右図例 Pinch Grab Rules

    ◼ 親・人差し指は利用する ◼ 中・薬・小指は無視する Palm Grab Rules ◼ 人差し・中・薬指は利用する ◼ 親・小指は任意
  22. Hand Grab Point グラブポイントを設定して掴める点とする

  23. Hand Pose Grab 実行時の手の姿勢を細かく調整することが出来る

  24. Hand Pose Recorder 実際に Play Mode 時の Hand Pose を録画して

    Hand Pose データを ScriptableObject として書き出せる
  25. Poke Interaction

  26. Poke Interaction 平面物体とダイレクトタッチインタラクションが出来る機能

  27. Poke Interaction の概要図

  28. Poke Interactor Poke Interaction の主体側:指・拳・掌・手などにつける

  29. Poke Interactable Poke Interaction の客体側:面を持つコンポーネントにつける

  30. Hand Poke Limiter Visual 手の突き抜けを防止するコンポーネント 利用前 利用後

  31. Ray Interaction

  32. Ray Interaction ◼ レーザーを当てるインタラクション ◼ ハンドインタラクション版もついている

  33. Ray Interactor Ray Interaction の主体側:手・コントローラ側につける

  34. Ray Interactable Ray Interaction の客体側:物体や Canvas などにつける

  35. Curved Canvas Canvas や Mesh Renderer など Interactable が面の場合は曲面にすることも可能

  36. Hand Pose Detection

  37. Hand Pose Detection ◼ 手の姿勢を検知する機能 ◼ 検知時に何らかのイベントを発火することが出来る

  38. Shape Recognizer 手の形状のデータを細かく指定できる

  39. 応用例 サムズアップのポーズで右方向に向かせると視点が右に移動する 手のひらを上に向かせるとテレポート移動の準備が開始される

  40. おわりに

  41. 実際開発したくなったら Interaction SDK のコンポーネントは細かく分割されているので どれを利用するか一瞬分からなくなりますが,機能単位で Prefab が 提供されているので脳死でそのまま利用しましょう Interactor と

    Interactable がセットであります
  42. 総括 ◼ Oculus Interaction SDK の紹介 ◼ VR 用インタラクションがより自然になるような設定が豊富 (細かい

    Hand Grab 設定や Poke Interaction など) ◼ プラットフォーム対象が Quest のみであれば インタラクションのフィーリングが良くなるので導入してもいいかも (現状はマルチプラットフォーム向けではない感じ…)