Oculus Rift DK2 購入から1年以上経ったけど、ようやくまとまった時間が取れたので一通りいじってみた。
VR は実際に試してみないとわからない点が多いので、とりあえず手元で色々実験するためのたたき台として、以前作った ToyHeli の VR 版を作ってみた。



■開発環境
unity 等を使えばわりと簡単に VR 対応アプリが作れそうだけど、今回は VR デバイスの制御方法を学ぶ意味もあるため、自前の DirectX11 レンダラーを VR 対応に改造。


■ランタイムバージョン
現時点(2016/02/06)で最新の PC ランタイムが 0.8.0.0-beta なのだけど、世に公開されている DK2 対応アプリのほとんどが 0.6.0 で作られていて 0.8.0 では動作しない。
0.6.0 を入れておけばいいのだけど Windows10 ではちゃんと動作しないようで、自分のメイン PC ではうまくいかなかったので 0.8.0 で作ることにした。

それから、いくつかのバージョンのランタイムをインストールしたりアンインストールしたら、0.8.0 でトラッキングが動作しない不具合が起こった。
解決法を検索したところ、ランタイムのインストール後に C:\Users{USER}\AppData\Local\Temp\Oculus Inc\OculusPTDriver_Win8_x64.msi を実行すれば良いらしい。



■ToyHeliVR
以前作った ToyHeli を VR 化してみた。
元々、仮想空間で IR リモコンのおもちゃのヘリを操作するアプリなので VR 対応にするにはちょうど良い。
ゲームと呼べるような要素はなく単にヘリを飛ばして楽しむだけなので内容自体は 3 分で飽きると思うけど、まあ技術研究が目的なので。

・VR 酔い
基本的にプレイヤー自身は部屋の中に立っていてその場から動かずにヘリを操作するという仕様なので VR 酔いはほぼない。
ヘリの背後視点やコクピット視点にも切り替えできるが、このモードでは視点が不用意に動くためかなり酔う。

・立体視
立体視によって距離感が正しく把握できるため、非 VR 版の時には目的の場所に着陸させるのが難しかったのに対して、VR 版では比較的楽に着陸させられるようになった。
空間の把握が正確にできるようになるのは VR ならではかもしれない。

・ズーム
VR デバイスの特性上、デバイスの設計に合わせて画角が決まってしまうため、基本的に見たい場所にズームするということができない。
例えば、VR デバイスを使えば、シムシティのようなゲームで雲の上から街を見下ろすような視点でゲームを進めることができるが、任意の場所にズームできないのはなにかと問題がある。

というわけで、ToyHeliVR にも実験的に双眼鏡をのぞくような視点を入れてみた。
案の定酔うけど、この辺は現実でも双眼鏡をのぞいたまま視点を振り回せば酔ってしまうのと同じ現象かもしれない。


■技術的なこと
VR 対応アプリを作るにあたって「ヘッドトラッキング」と「立体視」の2つが必要になるわけだけど、
Oculus VR DK2 の PC-SDK(V.0.8.0.0-beta) では、デバイス依存の処理は完全にブラックボックス化されていて、かなり簡単に使うことができる。
透視変換と姿勢制御(アフィン変換)の基本的な部分(と、ちょっとだけクォータニオン)がわかっていれば、特に問題なく開発することができる。

やはり VR 対応アプリを作るうえで難しいのは、VR の特性に応じたゲーム仕様の決定だと痛感する。
VR の良さを活かしたゲームを作るには、かなりの試行錯誤が必要になるはず。




メニュー画面にコントローラーを表示して操作説明
この角度だと LR ボタンが見えないけど VR なので横からのぞき込めば見える
コントローラーのトラッキングには対応していない


画角が広いのでこうみると小さく見えるけど
VR 空間では目の前 50cm ぐらいにあって手を伸ばせば触れそう


おもちゃのヘリに自分自身が乗り込んだ状態
レンダリング時にワールドを 25 倍に拡大表示している


部屋の近くに 1/25 スケールの高層ビル


コクピットから見るビル屋上のヘリポート
コクピット視点は 25 倍拡大なので、実際のビル屋上ぐらいに見えている


この画像だとわかりにくいが
ビル屋上の固定視点も 25 倍拡大にしているため、目の前に高さ 1.8m のヘリがあるように見える


双眼鏡モードで 3 倍に拡大
これでも VR 画面では結構大きく見えている



■おまけ - たまごひこーきに乗ってみた

ヘリのモデルデータを「たまごひこーき ポリカルポフ I-16」に差し替えて、たまごひこーきに乗ってみた。
挙動はヘリのままだけど、仮想空間でおもちゃに乗ってみるという試みは VR ならではで、結構ワクワクする。
※仮で差し替えてみただけなので、今回公開した ToyHeliVR には入ってません。


実際には存在しない「たまごひこーき ポリカルポフ I-16」
以前妄想でなんとなく作ってみたもの




back