Oculusでものを掴むのに必要なOVRGrabbableの使い方

Unity

少し前にOculusQuestを購入して, Unityで遊んでいます.
物体を掴む時に必要なOVRGrabbableについて色々わかってきたので, その解説をしていきます.

まず, OVRGrabbableはUnityのオブジェクトに「掴まれる」機能を追加するためのスクリプトです. 次の属性を設定できます.

  • Allow Offhand Grab: 掴めるかどうか. 基本的にはTrueにする. 状況に応じて掴めたり掴めなかったり変えたい時に操作する.
  • Snap Position: 掴んだ時にオブジェクトの位置をスナップするかどうか. 基本的にSnap Orientationと同時に使う. 銃や剣のように掴んだ時の位置と姿勢を固定したい時に使う.
  • Snap Orientation: 掴んだ時にオブジェクトの姿勢をスナップするかどうか.
  • Snap Offset: 使わない方がいい, 不評属性
  • Grab Points: 掴める箇所を指定する時に使う. 銃や剣のように掴める箇所が限られている時に使う. そのはずなのだが, 7月末のアップデート以降機能していない.

銃や剣の場合はSnap PositionSnap OrientationをONにした状態でオブジェクトを次のように配置するのが基本となります. Snap PositionSnap OrientationがONの時は, OVRGrabberのGrabPointに掴まれるオブジェクトの位置と姿勢が一致するように動かされます. デフォルトではGrabPointは握り拳の中指にあります. またz軸が拳の正面でy軸が拳の上側になります. 剣の場合は刃に対して60°回すといい感じに拳に収まります.

一方でSnap Offsetは直感的ではないので基本的に使用しない方がいいです.

【Oculus Quest】OVRGrabbableでかっこよく銃を実装する - Qiita
# はじめに 以下の記事の中で、「Individualなキーマッピングは左右を区別しないため、**モノ自体にトリガーを持たせる**場合に活躍をする」という話をしました。この記事では、その思想に則ってキー入力を必要とする「銃」の実装を...

試しに, 刀に緑色の子の球をSnap Offsetに設定してみたら, 次のような結果になりました.

Grabbable Katana with oculus snapoffset

コメント