(この記事の使用環境: Unity5.5.0f3 Personal、Windows10、SteamVR Plugin 1.2.0、VRTK3.0.1)


今回はVR用アセット「VRTK」に収められている Example 014_Controller_SnappingObjectsOnGrab の解説です。オブジェクトをコントローラーにスナップする複数パターンのメカニズムのデモです。

■公式サイトの解説

VRTK公式サイトでこのExampleの解説文及び解説動画を見ることができます。ただし、動画に関してはVRTK旧バージョンのときに作られたものであり、VRTK3.0(以降)とは設定は異なっていることに留意してください。動きを中心に見てもらえれば良いかと思います。

このExampleの解説動画


■VRTKのセットアップ方法および使用されているスクリプトの解説

適宜、以下の記事を参照願います。

■Exampleの解説

VRTK/Examples 内にある当該番号のシーンを呼び出すことで、デモを動かしてみることができます。オブジェクトをコントローラーにスナップする複数パターンのメカニズムのデモです。2つの緑色の Gun と LightSaber と Sword は、Snap Handle により指定された位置・回転のとおりコントローラーにスナップされます。赤色の Gun はベーシックなスナップ設定であり、回転についてはコントローラーが掴んだとおり、位置についてはオブジェクトの中央でスナップされます。赤・緑混合の Gun は Precision Snap(精密スナップ) が有効になっており、コントローラーがオブジェクトにタッチした位置・回転のとおりスナップされます。
SnapCrab_NoName_2017-1-28_21-54-39_No-00

以下、シーンに配置されているオブジェクトについての概要説明です。
  • 2つの緑色の Gun と LightSaber と Sword: VRTK_InteractableObject スクリプト(またはそれを継承した Gun ・ LightSaber スクリプト)のインスペクタで、Grab Attach Mechanic Script にはデフォルトの VRTK_FixedJointGrabAttach が指定されている。その VRTK_FixedJointGrabAttach スクリプトの Right Snap Handle には位置・回転を指定するための空のゲームオブジェクト「SnapPoint」が指定されている(このデモシーンでは、それぞれのオブジェクトの子オブジェクトとしてぶら下げられている)。SnapPointオブジェクトに指定された位置・回転でそれぞれのオブジェクトをスナップする。
    SnapCrab_NoName_2017-1-28_22-7-11_No-00
    SnapCrab_NoName_2017-1-28_22-14-45_No-00
    SnapCrab_NoName_2017-1-28_22-21-59_No-00

  • 赤色の Gun :上記の4オブジェクトと同様に Grab Attach Mechanic Script はデフォルトの VRTK_FixedJointGrabAttach だが、Right Snap Handle には何も指定されていない。そのため、ベーシックなスナップ設定として、回転についてはコントローラーが掴んだとおり、位置についてはオブジェクトの中央でスナップされる。
    SnapCrab_NoName_2017-1-28_22-7-11_No-003
    SnapCrab_NoName_2017-1-28_22-36-40_No-00

  • 赤・緑混合の Gun : 赤色の Gun とほぼ同様の設定だが、VRTK_FixedJointGrabAttach の Precision Snap(精密スナップ) が有効になっているため、コントローラーがオブジェクトにタッチした位置・回転のとおりスナップされる。
    SnapCrab_NoName_2017-1-28_22-7-11_No-002
    SnapCrab_NoName_2017-1-28_22-44-13_No-00

今回は以上です。