[Oculus]オブジェクトを掴んで投げられるようにする - OVRGabberとOVRGrabbable

2020年10月20日

直感的に物を掴んで投げられるのはVRならではの楽しみ方です。

オブジェクトを掴めるようにするには"Oculus Integration"に含まれるスクリプトを利用すると楽です。

掴む側(手)の設定

掴む側のオブジェクトには、スクリプト OVRGabberCollider を設定します。左手を例に詳細を記載します。

まず、左手の LeftHandAnchor の子要素として、適当な Cube を作成します。ここでは名前を LeftHand としました。

Oculusで物を掴む左手となるオブジェクト

これが物を掴む手となります。スケールは(X:0.1, Y:0.2, Z:0.3)としています。

この LeftHand の"Box Collider"のプロパティである"Is Trigger"をONにします。これを行わないと掴もうとするオブジェクトと物理的衝突が起こってしまいます。

掴もうとするオブジェクトと手が衝突するのを避けるためにIsTriggerを有効にする

次は LeftHandAnchor の設定です。

ここにスクリプト OVRGrabber を追加し、"Grip Transform"に、先程追加した LeftHand をドラッグ&ドロップします。さらに Controller を"L Touch"に変更します。Player には両手を操作するプレイヤーとなるオブジェクトを指定します。

物を持ち上げるためのOVRGrabberスクリプトを追加して値を設定

以上で掴む側の設定は完了です。右手も同様に設定します。

掴まれる側(物)の設定

掴まれるオブジェクトとして、適当な立方体(Cube)を作ります。

そのオブジェクトに、スクリプト OVRGrabbable を加えます。特にプロパティを変更する必要はありません。この時、持ち上げるのに必要な Rigidbody も自動的に追加されます。

掴まれるオブジェクトにOVRGrabbableを設定

これで掴まれる側の設定は完了です。

物を掴むテスト

手の部分が立方体(LeftHand)となっています。ゲーム内に直方体をいくつか配置し、手を近付けて中指のトリガーを引くと掴み上げることができると思います。

OVRGrabbableなオブジェクトを持ち上げるサンプル

腕を振って中指を離せば、掴んだ物体を投げ飛ばせます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です