VR空間での移動についての調査
移動方法の実装は、VRアプリのUXを左右する重要なポイント。理想的な方法には、実空間での動作がそのままVR空間での動作に対応する次のような方法がある。
理想的な方法
- 6DoFトラッキング
実空間での前後・左右・上下・回転の移動がそのままVR空間に反映される。 - VRトレッドミル
円形のコンベアベルトのようなものに乗って歩く。ジャンプなども検知できる。映画「Ready Player One」でも取り入れられていた。
この理想的なUXを提供するためには、ユーザーが広いスペースを確保していることや、新たにデバイスを導入する必要がある。代替策として、現在、VR空間での移動に用いられている主な方法が次のようなもの。
メジャーな方法
- テレポーテーション
移動したい位置をコントローラーでポイントして瞬間移動する。視界切り替え時にフェードエフェクトを加えると少し楽になる。 - ジョイスティック
従来のゲームと同様の手法で、操作性は高いものの、VR酔いを招きやすい。スティックの傾きやボタンとの組み合わせで、速度・加速度を変更することも考えられる。
そのほか、メジャーではないものの、次のような手法も考えられる。
その他の方法
- Chicken Acceleration (https://youtu.be/6FQ4c1y3g8g)
まるで鶏が首を前後に振って歩くように、HMDが初期位置に対して前にある状態では前進、後ろにある状態では後退する。可もなく不可もなく、という印象。 - Nodding Acceleration (https://youtu.be/9KPLLNmA6As)
頷くと前進する。首が疲れそう。
どのような方法であれ、VR酔いを防ぐために大切なことは「体の動きとVR空間での動きを対応させる」こと。それにより没入感が高まり、現実とVR空間での「ずれ」から意識が薄れ、酔いの防止につながる。このことを踏まえると、あまりメジャーではないが、次のような方法も良いように思える。
- 乗り物に乗っての移動
セグウェイなどの乗り物で移動する方法なら現実世界とのずれは少なそう。つまり、視界の中に固定されているオブジェクトがあると、酔いの軽減につながるのではないか、という発想。 - 腕振り歩行
コントローラーを交互に振ることで歩行、振る速度によって歩行速度の調整、魚を釣り上げるような動きでジャンプ、などを実装すれば、回転する椅子などに座った状態でそれなりに快適にVR空間を移動できそう。誤認識などをどうやって防ぐのかも対策が必要そう。要 実装+検証。
これらのメジャーではない方法も、実際に実装してみて検証したい。