狠狠撸

狠狠撸Share a Scribd company logo
OCULUS INTEGRATION
INTERACTION SDKで物をつかむ編
大久保 聡
Mail ovjang@gmail.com
Twitter @蹿辞濒濒辞飞补辫辫
環境構築
? 環境設定については、PlusinとProject Settingsの一部をされりと入れていますが、細かな部分は解説
されているHomeページがたくさんありますので省略します。
? プロジェクトはURPで作成しています。
? バージョン
Oculus Inetgration 46.0
Oculus XR Plugin 3.2.1(or 1.11.2)
Unity 2021.3.12f1 (or 2020.3.29f1)
PLUGINのインポート
? Oculus IntegrationをImport
PLUGINのインポート
? Oculus XR 笔濒耻驳颈苍を利用。
PROJECT設定
? XR Plug-in 惭补苍补驳别尘别苍迟の设定もいい感じに终わらせる。
PROJECT設定
? Oculusの設定
OCULUS INTEGRATION
新規シーン
? OVRCameraRigを検索し、シーンに追加する。
ハンドトラッキング用のOVRHANDPREFABを追加
? OVRHandPrefabを検索し、左右の手のアンカーの下に配置する。
OVRHANDPREFABの設定
? プレハブが左手設定になって
いるので、右手を設定する。
コントローラ用のOVRCONTROLLERPREFABを追加
? OVRControllerPrefabを検索し、左右のコントローラーアンカーの下に配置する。
OVRCONTROLLERPREFABの設定
? 左右のコントローラーにTouchコントローラー
を割り当てる。
両手に
実施
URPプロジェクト
? マテリアルをUpgradeしてURP対応にす
る。
ここからやっとINTERACTION SDKを使う
OVRINTERACTIONを追加
? OVRInteractionを検索して追加。
INTERACTION SDK側に手の表示をゆだねる①
? OVRInteractionに、CameraRigの参照とCameraRigRefを設定する。
INTERACTION SDK側に手の表示をゆだねる②
? Interaction側で手の表示は行うため、両方の手のOVRHnadPrefabの手の表示部分を削除する。
両手に
実施
INTERACTION SDK側に手の表示をゆだねる③
? OVRInteractionの下に、OVRHmd、OVRControllers、OVRHandsを追加。
OVRCONTROLLERSの設定①
? OVRControllerDataSourceに参照を設定
両手に
実施
OVRCONTROLLERSの設定②
? DebugVisualsを非Activeに設定
両手に
実施
OVRHANDSの設定①
? 両方の手のHandFeeaturesに、World Transformの参照をセット
両手に
実施
OVRHANDSの設定②
? 両方の手ののOVRHandDataSourceに
両手に
実施
手でつかむ设定を入れる
コントローラでつかむ①
? ControllerGrabInteractorを検索し、ControllerInteractorsの配下に追加する。
コントローラでつかむ②
? 両方の手のControllerGrabInteractorに、Controllerの参照を設定する。
両手に
実施
コントローラでつかむ③
? 両方の手のCotrollerInteractorsに、追加したInteractorの参照を設定する。
両手に
実施
ハンドでつかむ①
? HandGrabInteractorを検索し、HandInteractorsの配下に追加する。
ハンドでつかむ②
? 両方の手のHandGrabInteractorに、Handの参照を設定する。
両手に
実施
ハンドでつかむ③
? 両方の手のHandInteractorsLeft(Right)に、追加したInteractorの参照を設定する。
両手に
実施
つかまれる侧
CUBEをつかめるように①
? Cubeを作成し、RigidBodyを追加。
? 落ちないようにUse Gravity=True、Is Kinematic=Trueに設定します。
CUBEをつかめるように②
? Cubeに、One Grab Free TransfomerとGrabbableコンポーネントを追加。
? GrabbableコンポーネントにTransfomerを設定。
CUBEを手でつかめるようにする
? Cubeに、Hand Grab Interactableコンポーネ
ントを追加。
? Hand Grab Interactableコンポーネントに掴み
位置とRigidbodyを設定。
CUBEをコントローラーでつかめるようにする
? Cubeに、Grab Interactableコンポーネントを
追加。
? Grab Interactableコンポーネントに掴み位置と
Rigidbodyを設定。
? 手でもコントローラでも、Touch手でもつかめるようにするならば、Interactableを複数つければ良
いです。
その他のコンポーネント
Grabbable 挙動
Grabbable 空中に固定 Use Gravity = True、 Is Kinematic = True
Physics Grabbable 物理挙動をつける Use Gravity = True、 Is Kinematic = False
Grabbableコンポーネントと併用。
Transformaer 挙動
One Hand Free Transformer 片手持ち
One Hand Translate Transformer XYZの相対移動範囲を限定できる。
平面上を動かしたりする場合に利用。
One Hand Rotate Transformer 回転軸を固定、回転のPivotと回転範囲を指定でき
る。
Two Hand Free Transformer 両手持ち
PHYSICS GRABBABLEの例
? 右手から左手に渡せるようにな
る?
ONE HAND TRANSLATE TRANSFORMERの例
? 移動可能範囲を設定する場合は、
Consrainにチェックをいれる。
XとZを-30cm~30cmしか移動
できないようにし、Yの移動制限
はなしの場合。
TWO HAND FREE TRANSFORMERの例
? 両手で握って回転や拡大縮
小させる場合。
拡大縮小に制限を設ける場
合は、Cnnstrainに値を設
定。
HAND POSEの作り方
POSE RECORDER
? Hand Grub Pose Recorderか、Hand Grab Pose Live Recorderを使う2通りの方法があります。
ポーズを作成する前準備
? mugMeshを検索し、シーン上に配置します。握れるようにGrabbableの設定を追加。
左手のポーズ作成
? Hand Grub Pose Recorderをメニューから開きます。
? Handと握られる側のRigidBodyを設定します。
ポーズをとって記録します
? UnityをPlayし、 手で作りたいポーズを演じます。
? 狙いのポーズがとれたら、Hand Grub Pose RecorderのRecordボタンを押下します。
? 全部のポーズが記録できたら、Save to Collectionボタンを押下します。
コレクションを読み込む
? UnityのPlayを停止。
? Hand Grub Pose RecorderのLoad From Collectionボタンを押下します。
手のポーズ設定
? 親指と人差し指を固定し、他の指は自由に設定する。

More Related Content

Oculus Interaction SDK で物をつかむ編