Unityで、Oculus Quest 用のコンテンツを作る際に、手っ取り早くモノを掴めるようにしたい時の方法です。
手順
- Oculus Integration をインポート
- Oculus > SampleFramework > Core > AvatarGrab > Prefabs 内の「LocalAvatarWithGrab」を、ヒエラルキーに配置
- 掴みたいオブジェクトに対して、Add Component で「OVR Grabbable」を追加
- 掴みたいオブジェクトに対して、Add Component で「Rigidbody」を追加(「Use Gravity」にはチェックを入れておく)
解説
- LocalAvatarWithGrab 配下の「AvatarGrabberLeft」「AvatarGrabberRight」を見てみると、「OVR Grabber」がアタッチされていますが、これが「モノを掴むため」に必要なスクリプトになります
- そのため、LocalAvatarWithGrabを使わなくとも、好きな手のモデルに「OVR Grabber」をアタッチしてもOKです
- 一方で、「掴まれるモノ」として機能させるために必要なスクリプトが、「OVR Grabbable」になります
事例
- モノを掴めるようになると、色々と発想の幅が広がって楽しくなるので、ぜひやってみてください
プレゼントを渡す
バレンタインが近いので、ユニティちゃんにチョコレートあげる練習してる。#Unity #unitychan pic.twitter.com/UhglKyeR7r
— tamu (@tamusan100) February 3, 2019
※ このときは Oculus Rift 用に作成していますが、同じ方法です。
ペットにエサを与える
Oculus Quest向けにカメ育てるVR作り始めた。やはり手が使えるのは楽しい。#Unity #OculusQuest pic.twitter.com/f1ktgrfwjS
— tamu (@tamusan100) May 26, 2019