【Unity/VR】Oculus TouchでVRTKを使ってテレポートや掴むを簡単に実現
- 環境
- Windows 10
- Unity 5.5.1f1
- Oculus Touch
- VRTK 3.1.0
VRTKとは
VRTK(Virtual Reality Toolkit)とは、VRなら必ずやりたくなるようなテレポート(ワープ)や掴むといったことが コードを書かずに簡単に実現できてしまうという素晴らしいアセットです。 しかも無料です。
VRTK - Virtual Reality Toolkit
使い方は、動画の解説がわかりやすくこれを見るだけでできるようになりますが、 備忘録としてメモしておきます。
実装
準備
はじめに以下の準備をしておきます(ダウンロード:Unity | Oculus)
ダウンロード後、UnityパッケージからAssetsに加え、以下をシーンに配置します。
- OVR/Prefabs/OVRCameraRig
- OvrAvatar/Content/Prefabs/LocalAvatar
次に、VRTKをAssetStoreよりダウンロードし、Assetsに加え、
以下のようにGameObjectを配置し、VRTKにVRTK_SDK ManagerのScriptを追加します。
VRTK + VRTK_SDK Manager Left Right
(印がないもの … GameObject, + … Component)
ポインター
ジョイスティックを押すとポインターが出るようになります。 動画ではVRTK_SimplePointerを使用していますが、deprecatedのようで、 代わりにVRTK_PointerとVRTK_Straight Pointer Rendererを使用します。
VRTK Left + VRTK_Controller Events + VRTK_Pointer + VRTK_Straight Pointer Renderer //VRTK_PointerのPointer RendererにVRTK_Straight Pointer Rendererをセット Right //Leftと同様
ワープ
上記のポインターを設定後、PlayAreaにTeleportを追加すると、ポインターで指定した位置にワープできます。 (ただし、オブジェクトがある緑の場所のみ)
VRTK Left ... Right ... PlayArea + VRTK_BasicTeleport
掴む
まず、手の設定をします。
VRTK Left + VRTK_Interact Grab //セットするとEvents, Actions, Touchも追加される + VRTK_Controller Events + VRTK_Controller Actions + VRTK_Interact Touch Right //Leftと同様
適当に地面を用意し、掴む対象のオブジェクト(Cube)を配置します。
Cube ... + RigidBody + VRTK_Interactable Object //Is Grabbableにチェック + VRTK_Fixed Joint Grab Attach //VRTK_Interactable ObjectのGrab Attach Mechanic Scriptにセット
別の手で掴み直す
上記の掴むに加えて以下を追加します。
Cube ... + VRTK_Swap Controller Grab Action //VRTK_Interactable ObjectのSecondary Grab Action Scriptにセット
これで片方の手でつかんだものをもう一方でつかみ直すことができます。