【VR】テレポートでの移動を試す
Unity:2019.4.9f1
SteamVR Plugin:2.6.1 (sdk 1.13.10)
を使用しています。
「テレポート」といえば、真っ先に「テレポート山陰」を思い出す方が多いと思いますが・・・思いますが!
今回はVRでの移動手段の方の「テレポート」です。
SteamVR Pluginを使いますが、使い方はここを参考にしてください。
takoyakiroom.hatenablog.com
決まった場所にテレポート
最初はこんな感じで、行ける場所にマーカーが出るやつを作ってみましょう。
正直、使ってるゲームはあんましみたことないけどね・・・
まず準備として、「Player」のプレハブを置きます。
あと、地面がわからないので、目印に床(Floor)をメニューから「GameObject」→「3D Object」→「Plane」で作っときます。
次に「SteamVR」→「InteractionSystem」→「Teleport」→「Prefabs」から「Teleporting」を選んで、ヒエラルキーに配置します。
これがテレポート移動の根幹になっています。親分です!
置く場所はどこでも良いです。
最後に、同じく「SteamVR」→「InteractionSystem」→「Teleport」→「Prefabs」から「TeleportPoint」を選んで、ヒエラルキーに配置します。
これがテレポート先ですね。飛びたい場所に置きましょう。
実行すると、テレポートで移動できるようになります。
トリガーとかタッチパッドの上を押すと、移動先のマーカーが表示されますよ。
自由にテレポート
ある程度自由な移動できるテレポートを試してみましょう。
画面にPlaneを配置して、このPlaneの上なら自由に移動できるようにしてみます。
作ったPlaneに「SteamVR」→「InteractionSystem」→「Teleport」→「Scripts」の「TeleportArea」をアタッチします。
すると、Planeの外観が変わります。
これで完成、実行すると「TeleportArea」をアタッチしたところにテレポートできます。
「TeleportArea」をアタッチしてない場所には行けませぬ。
TeleportAreaをアタッチしたらオブジェクトのマテリアルが変わるんだけど、変わってほしくない時はスクリプト修正するしかないのかな?
設定いろいろ
インスペクターから設定できる項目をちょっと解説です。
TeleportAreaとTeleportPointのスクリプト
Locked | マーカーは表示されるけど、移動できません |
MarkerActive | チェックなし:常にマーカーが表示されます チェックあり:移動する時だけマーカーが表示されます |
Teleportのスクリプト
AreaVisibleMaterial | 通常時のTeleportAreaのMaterial |
AreaLockedMaterial | TeleportAreaがロックされている時のMaterial |
AreaHighlightedMaterial | 飛び先に選んだ時のTeleportAreaのMaterial |
ShowPlayAreaMarker | プレイエリアの枠を表示するかどうか |
TeleportFadeTime | 移動先を決定してから移動するまでの、画面切り替えのフェードアウト時間 |
ArcDistance | 飛べる距離 |
試してみる
・「ShowPlayAreaMarker」のチェックを外した時
プレイエリアの枠が消えています。上の方の画像と比較してみよう。
・「ArcDistance=1」の時
ちょろちょろ