(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]



SteamVR Pluginを使ったテレポートの実装【Unity】【Steam】【VR】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2019.2.21f1
Steam VR Plugin 2.5.0 (sdk 1.8.19)


はじめに

UnityでSteam向けのVRゲームを開発する際は、

SteamVR Pluginというアセットを使うのが一般的ですが、

SteamVR Plugin | Integration | Unity Asset Store


今回はそのSteamVR Pluginを使って、VRの移動ではお馴染みのテレポートを実装してみようという記事。


イメージとしては以下のような感じ。



ちなみにSteamVR Pluginの導入は済んでいる前提なので、あしからず。

なお、SteamVR Pluginの導入については以下の記事を参照の事。





ステージ作成

まず、Cubeで適当なステージを作成します。

「青の所がテレポート出来て、赤の所は出来ない」みたいな感じです。

f:id:kan_kikuchi:20200402045210j:plain


なお、各CubeにはColliderが付いています。(生成時に自動で付くやつ)

f:id:kan_kikuchi:20200402045258j:plain



Player

次にHierarchy上のMain Cameraを削除し、

Assets/SteamVR/InteractionSystem/Core/Prefabs/Playerを置きます。

f:id:kan_kikuchi:20200402050047j:plain


なんとこれだけで手の表示やアニメーション等の実装は完了です……!

f:id:kan_kikuchi:20200403052221g:plain


またGameViewに2D Debugというボタンが表示されるようになり、

f:id:kan_kikuchi:20200403051416j:plain


これを押すと、FPSでよくあるキーボード移動(wasd)+マウスでの回転が出来るようになります。

f:id:kan_kikuchi:20200403051810g:plain



Teleporting

本題のテレポートの実装には

Assets/SteamVR/InteractionSystem/Teleport/Prefabs/Teleportingを使います。

f:id:kan_kikuchi:20200403052434j:plain


その後、最初に作ったCubeのうち、

移動出来るもの(青いやつ)Teleport Areaというコンポーネントを付けます。

f:id:kan_kikuchi:20200403052538j:plain


ただし、Teleport Areaを付けたものは透明になってしまうので、

表示用に移動出来るもの(青いやつ)を複製(Teleport Areaは付けない)し、

f:id:kan_kikuchi:20200403052934j:plain


さらに、テレポート判定の邪魔になってしまうので

Teleport Areaを付けなかった方のColliderを無効にします。

f:id:kan_kikuchi:20200403053544j:plain


なんとこれだけでテレポートの実装も完了です!

Teleport AreaとColliderが付いてる所に飛べて、それ以外には飛べない感じになります。

また、テレポート時のSEやフェードまで実装されています……!



なお、どのボタンでテレポートするのかどのレイヤーのColliderでテレポートの判定をするか等の設定は

Teleportingに付いてるTeleportというコンポーネントでする事が可能です。

f:id:kan_kikuchi:20200403054054j:plain


ちなみにTeleport Areaの子にColliderを作れば、子も全てテレポートの対象になります。

f:id:kan_kikuchi:20200403060603j:plain