凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

VR 向けの自作 Grabber を作ってみた

はじめに

VR 内でオブジェクトをつかむには OVRGrabber や VRTK などが挙げられると思います。

framesynthesis.jp

ただ、両手のインタラクションや遠くのものを取ったり遠くに置いたりといった機能が欲しかったので、自分で作ることにしました。

環境

  • Unity 2017.1.0b5
  • Oculus Utilities for Unity 5 1.14.0

現状 Oculus Rift / Touch のみの対応になります。Plugin 不要の OpenVR 版は追々サポートします。

デモ

両手での移動、回転、拡縮が出来ます。 f:id:hecomi:20170730233647p:plain

レイが出ているので遠くのものも取れます。また、スティックで距離のコントロールが出来るので近くのものを遠くにやったり逆に遠くのものを取り寄せたり出来ます。 f:id:hecomi:20170730233705p:plain

距離が遠いとプルプルするので安定するよう、遠い場合は大きめのフィルタがかかります。線も遅延させてしまうと気持ち悪さが残るのですが、始点の向きは変えずに線を曲げてあげると良い感じに気持ちよくなります。 f:id:hecomi:20170730233707p:plain

ダウンロード

github.com

リリースページから最新版を取得して下さい。

セットアップ

  1. OVRCameraRig > TrackingSpace の下に VrGrabber > Prefabs 以下の Vrg Left GrabberVrg Right Grabber を追加
  2. 掴みたいオブジェクトに VrgGrabbable を追加

f:id:hecomi:20170730233330p:plain

f:id:hecomi:20170730233619p:plain

おわりに

線のエフェクトや諸々のパラメタ、ハプティクスのサンプルといったものは追って追加していきます。要望があればどしどし Twitter: @hecomi までお願いします。