はじめに
記事のタイトル通り、UE4+Vive(Pre)で開発を始めたので、
色々と解説を書き始めます。使用するUE4のバージョンは4.11系です。
セットアップ周りはこちら
pafuhana1213.hatenablog.com
サンプルプロジェクトはこちら
github.com
まずは、基本的な以下の点について
- OculusRiftを使った開発都の違い
- プレイヤー・カメラの配置について
- PlayerPawnの移動・回転に関して
- モーションコントローラの配置に関して
OculusRiftを使った開発との違い
基本的な部分は同じです。が、所々違う部分があります。
- レベル上のプレイヤー・カメラの配置(主に高さ)
- モーションコントローラ
- 一部のVR用コンソールコマンドが使えない
- などなど(調査中)
この差異部分さえカバーしてあげれば、Rift・Vive両対応は夢では無いと思います。
プレイヤー・カメラの配置について
Viveを使ったVRコンテンツを作る際は、
PlayerPawnになるActor(又はPlayerStart)とそのBPが持つカメラの
レベル上での配置に注意する必要があります。
なぜなら、
「PlayerPawnの座標 = Viveのトラッキングエリアの床面の中心」
だからです。
具体的にどうしたらいいかと言うと、まずは以下の点を守る必要があります
- PlayerPawnのZ値(高さ)= 床のZ値
- カメラコンポーネントのZ値 = 床のZ値
つまり、こんな感じの配置になります。
この2点を守らなかった場合、現実のHMDとゲーム中のカメラの高さに
差異が生じるため、とても気持ち悪い感覚を得ることになります。
PlayerPawnの移動・回転に関して
「PlayerPawnの座標 = Viveのトラッキングエリアの床面の中心」なので、
PlayerPawnのTransformを操作した場合、その処理に応じて
トラッキングエリアの位置・向きが変化します。
つまり、実際に動くのが面倒だからといって
Add Movement Inputなどを使ってデバッグの移動処理を実装すると
場合によっては大変なことになる可能性があります。
なので、デバッグ用の仮想プレイヤーを作る場合は、
Actor自身ではなく、Actorが持つカメラコンポーネントを動かすようにしましょう。
逆に言うと、トラッキングエリアを動かしたい時は
PlayerPawnを動かせばいいことになります。
上手く利用すれば、以下の様な新たな移動方法を開発できるかもしれません
shiropen.com
モーションコントローラの配置に関して
モーションコントローラ用Actorは、Viveのトラッキングエリア底面の中心、
つまりPlayerPawnと同じ座標に配置する必要があります。
もし異なる座標に配置した場合、現実のコントローラの位置とズレが生じてしまいます。
こんな感じにBPを組んで、常にPlayerPawnに付いて行くようにすると便利です。
とりあえず今日はここまで。
次は、モーションコントローラ用Actorのセットアップ周りに触れます。