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


VR用アセット「VRTK」の Example 011_Camera_HeadSetCollisionFading の解説です。
ヘッドセットが壁に突っ込んだ時に(向こう側が見えてしまわないよう)視界を遮るようにします。
VRTK_HeadsetCollisionFading

■公式サイトの解説

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

このExampleの解説動画



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

適宜、以下の記事を参照願います。
  • スクリプト「VRTK_HeadsetCollisionFade」の解説
      (今後執筆予定)
  • スクリプト「VRTK_HeadsetCollision」の解説
      (今後執筆予定)
  • スクリプト「VRTK_HeadsetFade」の解説
      (今後執筆予定)
  • スクリプト「VRTK_PolicyList」の解説
      (今後執筆予定)

■Exampleの解説

VRTK/Examples 内にある当該番号のシーンを呼び出すことで、デモを動かしてみることができます。

このデモシーンには3枚の壁があり、うち2枚の壁についてはユーザーが頭を突っ込むと視界が真っ暗に遮られます。このことにより、望まないオブジェクトクリッピング(オブジェクトが切り取られて向こう側が見えてしまう)を避けることができます。
SnapCrab_NoName_2017-2-5_21-20-15_No-00

以下、シーンに配置されているオブジェクトについての概要説明です。
  • 青色の壁(2枚): 通常のCubeで作られた壁。ユーザーが頭を突っ込むと視界が遮られる。
  • 緑色の壁:青色の壁と同様にCubeで作られた壁。タグが設定されているため、ユーザーが頭を突っ込んでも視界が遮られない。
  • PlayArea: [VRTK] ゲームオブジェクトの下に配置されているゲームオブジェクト。
    VRTK_HeadsetCollisionFade、VRTK_HeadsetCollision、VRTK_HeadsetFade、VRTK_PolicyList スクリプトがアタッチされている。

    VRTK_HeadsetCollisionFade スクリプトは、VRTK_HeadsetCollision、VRTK_HeadsetFade スクリプトの成分を使用して、ユーザーの視界を遮る機能を提供する。
    このデモではVRTK_HeadsetCollision の Target List Policy に VRTK_PolicyList がセットされており、そのVRTK_PolicyList では 「ExcludeTeleport」タグのついたオブジェクトを無視するよう設定されている。そのため、ExcludeTeleport タグのついている緑色の壁では視界を遮る効果が発動しない。
    SnapCrab_NoName_2017-2-5_21-29-34_No-00
今回は以上です。