Table of Contents
直感的に物を掴んで投げられるのはVRならではの楽しみ方です。
オブジェクトを掴めるようにするには”Oculus Integration”に含まれるスクリプトを利用すると楽です。
掴む側(手)の設定
掴む側のオブジェクトには、スクリプト OVRGabber と Collider を設定します。左手を例に詳細を記載します。
まず、左手の LeftHandAnchor の子要素として、適当な Cube を作成します。ここでは名前を LeftHand としました。
これが物を掴む手となります。スケールは(X:0.1, Y:0.2, Z:0.3)としています。
この LeftHand の”Box Collider”のプロパティである”Is Trigger”をONにします。これを行わないと掴もうとするオブジェクトと物理的衝突が起こってしまいます。
次は LeftHandAnchor の設定です。
ここにスクリプト OVRGrabber を追加し、”Grip Transform“に、先程追加した LeftHand をドラッグ&ドロップします。さらに Controller を”L Touch“に変更します。Player には両手を操作するプレイヤーとなるオブジェクトを指定します。
“Grab Volumes” の項目は折りたたまれていますが、ここには LeftHand にアタッチしたコライダーを紐付ける必要があります(コメント欄参照)。
以上で掴む側の設定は完了です。右手も同様に設定します。
掴まれる側(物)の設定
掴まれるオブジェクトとして、適当な立方体(Cube)を作ります。
そのオブジェクトに、スクリプト OVRGrabbable を加えます。特にプロパティを変更する必要はありません。この時、持ち上げるのに必要な Rigidbody も自動的に追加されます。
これで掴まれる側の設定は完了です。
物を掴むテスト
手の部分が立方体(LeftHand)となっています。ゲーム内に直方体をいくつか配置し、手を近付けて中指のトリガーを引くと掴み上げることができると思います。
腕を振って中指を離せば、掴んだ物体を投げ飛ばせます。
はじめまして。
参考にさせていただきまして、無事に実装出来ました。
ありがとうございました。
OVRGrabber の設定なのですが、Grab Volumes に LeftHand/Right Hand のコライダーを登録しないと、掴むことが出来ませんでした。
1時間位悩んで出来たのですが、今後参考にされる方のため、よろしければ加筆いただけますと幸いです。
コメントありがとうございます!
参考になったのであれば幸いです。
>OVRGrabber の設定なのですが、Grab Volumes に LeftHand/Right Hand のコライダーを登録しないと、掴むことが出来ませんでした。
こちらを明記することを失念しておりました。追記させていただきます。
JoyPlot 様
>こちらを明記することを失念しておりました。追記させていただきます。
お忙しい中をご対応いただきまして、ありがとうございました!
他の記事も参考にさせていただいており、大変助かっております。