VRTK4.0Beta テレポータの追加

今回はいよいよテレポート機能を実装します。
これができれば、VR空間内を自由に移動できるようになります。
VRTKには「ダッシュ」「インスタント」の2種類のテレポータが用意されています。
今回は インスタント を利用したテレポータを実装します。

前回の記事「VRTK4.0Beta カーブポインタの追加」の続きとなります。
前回の記事はこちら

今回は以下のドキュメントをもとに進めていきます
https://academy.vrtk.io/Documentation/HowToGuides/Locomotion/AddingATeleporter/

インスタントプレハブの追加

用意されているインスタントプレハブをシーンに追加します

プレハブのセットアップ

実際にテレポートさせるオブジェクトをプレハブに指定します。
ここでは、トラッキングエイリアスを設定します。

さらに、テレポート時に位置を適切に調整しないと、ずれた位置に移動したように感じてしまいます。
説明は本家ドキュメントにまとめられているので一読いただければと思います。
正しくお布施っとされるよう、プレハブのオフセットをセットアップします

さらにさらに、テレポート実行時にフェードが行われるようにするため、カメラオブジェクトを指定します

以上でテレポートを利用するためのセットアップが終了しました

ボタンの設定

タッチパッドをクリックしたときにテレポートが実行されるよう設定します。
といっても、これもプレハブの所定の位置にボタンアクションを設定するだけです。

ただ設定先のプレハブが「ObjectPointer.Curved」になるのでそこだけはご注意を・・・

イベントフックの設定

上記の設定でタッチパッドをクリックしたときに位置のデータが送信されるようになりました。
あとはテレポータプレハブでイベントを検知し、テレポートが行われるように設定します。

ObjectPointer.CurvedのSelectedイベントの+ボタンを押してイベントを追加
そこにTeleporter.Instantプレハブを設定し、呼び出すメソッドにTeleportFacade.Teleportを指定します

以上

以上の設定でVR空間上を移動できるようになりました

このように、フロアの端まで来ることができました。
次回はVR空間内で物を持つ、という動作を作っていきたいと思います。