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
にすることで,掴まれる物体が我が子になり,手に完全にフィットする状態になる.
実際に掴んでみる
ほうきを掴んでみた.