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


今回はVR用アセット「VRTK」に収められているスクリプト「VRTK_BasePointer」の概要を説明します。この抽象クラスによって任意のゲームポインターは、色やマテリアル、使用方法などを実装できます。

■ VRTK_BasePointer は VRTK_DestinationMarker を継承しています。

 SnapCrab_NoName_2017-1-31_9-49-50_No-00

■公式サイトの解説

まずは公式サイトによる解説。これで用が足りる方は以下を読む必要はありません。
VRTK_DestinationMarker · VRTK - Virtual Reality Toolkit

以下、公式サイトの解説をざっくりと直訳または意訳したもの+若干の補足です。誤り等があれば指摘してもらえると大変ありがたいです。また、イベントおよびメソッドについての解説は省略していますので、それらは公式サイトを参照願います。

■概要

  • この抽象クラスは、任意のゲームポインタに、実装されたポインタの状態を知る能力を提供する。
  • これは VRTK_DestinationMarker を拡張し、ポインタカーソルがオブジェクトと衝突したとき、宛先イベントが放出されるのを許可する。
  • これは抽象クラスなので、ゲームオブジェクトに直接適用することはできず、ロジックを実行しない。

■インスペクタのパラメータ

  • Controller: ポインタを切り替えるために使用されるコントローラ。スクリプトがコントローラに適用されている場合、このパラメータは、実行時にスクリプトがオンになっているコントローラによって自動的に設定されるため、空白のままにしておけばよい。
  • Pointer Origin Transform: ポインターの原点として使用するカスタム位置情報。もしこの指定がなければ、スクリプトがアタッチされている(コントローラー等の)位置情報が原点として使用される。
  • Pointer Material: ポインターの描画に使用されるマテリアル。もしマテリアルの指定がなければ、デフォルトの WorldPointer マテリアルが使用される。
  • Pointer Hit Color: 有効なターゲットに衝突したときのビームの色。
  • Pointer Miss Color:  有効でないターゲットに衝突したときのビームの色。
  • Hold Button To Activate: (※VRTK公式の説明文とは異なるが、下記の説明のほうが正しいはず)
    これがチェックされていれば、ポインタービームは1回目の(ポインターエイリアス)ボタンを押したときに作動し、ボタンを押し下げ続けている間維持される(ボタンを離せばポインターが消える)。目的地セットイベントはボタンを離した時に発動する。
    これがチェックされていなければ、ポインタービームはトグルアクションとなり、1回目のボタン押下で作動し、2回目のボタン押下まで維持される(2回目のボタン押下でポインターが消える)。目的地セットイベントは(ポインターが消える)2回目のボタン押下時に発動する。
  • Interact With Objects: これがチェックされていれば、ポインターはコントローラーの拡張として、インタラクタブルオブジェクトにインタラクト(触れる・掴む・使う等)することができる。
  • Grab To Pointer Tip: もし Interact With Objects (すぐ上で説明したパラメータ)とこれがチェックされていれば、(コントローラーにスナップするのではなく)ポインターの先端でオブジェクトを掴む。
  • Activate Delay: ポインタービームを再作動させることができるまでの遅延時間(秒)。連続テレポートをさせないようにするときに便利。
  • Pointer Visibility: いつポインターを表示するかを定める。(※デフォルトでは「On_When_Active」がセットされている。ほかの選択肢には「Always_On」・「Always_Off」がある)
  • Layers To Ignore: 無視するレイヤー。ポインターはここで指定したレイヤーにはヒットしない。
 SnapCrab_NoName_2017-1-31_11-33-21_No-00

■関連するExamples

関連するExamplesについての解説記事です。
  • 対象なし(抽象クラスのため。各種ポインターおよびテレポートに関するExamplesを参照のこと)

■VRTKのセットアップ方法および関連スクリプトの解説

VRTKのセットアップ方法および関連するスクリプトについての解説記事です。

今回は以上です。