VR物体を掴む [OVR Grabbable / Grabber 編]
何番煎じって感じではありますが. Oculus Integration の OVR Grabbable / Grabber を利用して,VR物体を掴む方法の手順.
手順
掴まれる物体への準備
Rigidbodyをつける
物体が剛体であることが保証できなければ掴めないはず.
この時,物体を落としたくない場合はUse Gravityはfalse,Is Kinematicはtrueに設定する.
物体を放り投げたい場合は,Use Gravityはtrue,Is Kinematicはfalseに設定する.
Colliderをつける
Mesh Colliderがあれば,それをそのまま使ってもよい.
ただし,掴める部分を限定したい場合は,その範囲にBox ColliderやSphere Colliderを取り付ける.
Is Triggerはfalseにする.
OVR Grabbableをつける
OVR Grabbableスクリプトをつける.
Allow Offhand Grabはtrueにして,それ以外はfalse(オプションとして各々をtrueにしてもよい)
Grab Pointsは掴める部分を限定したい場合はsizeを設定して,掴む部分のColliderを設定する.
最終的にはこんな感じ.

掴む役割を与えたい物体への準備
まあ,手とか.
Oculus Integration 14.0 以上の環境ならば,CustonHandLeft,CustomHandRightにデフォルトで,
OVR Grabberスクリプトがついていますが,デフォルトの設定のままだとまずい部分があります.
Parent Held Object を true にする
デフォルトでは,Parent Held Objectをfalseになっております.
この場合だと,掴まれる物体がOVR Player Controllerのコライダと衝突するために完全に掴む状態にならない.
Parent Held Objectをtrueにすることで,掴まれる物体が我が子になり,手に完全にフィットする状態になる.
実際に掴んでみる
ほうきを掴んでみた.
