Oculus Rift DK2のスケール感の謎を追求しようとしてあきらめた話
この記事は、Oculus Rift Advent Calender 2015の15日目の記事です。
約1年ぶりのブログとなってしまいました。それくらい2015年は(も?)VRが熱い1年でした・・
魔女をGearVR化してみたり、ガジラVRという異形のVRに取り組んだり、
そもそもカヤックでVR部を立ち上げたりと、振り返ればなかなかに激動な1年でした。
今回は、常々疑問に思っていた「スケールの違和感」の謎を解こうとしたけど、結局解けずに断念してしまった話を書きます。
Oculus Rift CV1の「スケール感」が優れている(個人的感想)
幸運なことに、私は
・Oculus Rift CV1
・HTC Vive
・PS VR
これらのVR HMDをいずれも体験することができました。
いずれも素晴らしいVR体験をもたらしてくれる来年が楽しみになるHMDなのですが、それぞれを体験してみて、特にOculus Rift CV1が素晴らしいと思えました。
そう思った理由の1つに、
・Oculus Rift CV1は実世界とVR世界のスケール感が一致して見える
という点があります。
これは、他の人と話していて、あんまり同意を得られた事がないのですが
たとえば、このToyBoxをユーザー視点で記録した映像があります。
この映像を見ると、ユーザーの手の動きとVR上の手の動きがぴたっと一致していてすごいのですが、
この「ぴたっと合う」という感覚は、実際にVRを体験している時にも感じることができます。
touchを持ったまま手を伸ばし、手が自分の視界に入った状態でゴーグルをずらすと全く同じ位置に自分の手がある。
また、巨大なドラゴンや恐竜を見るようなコンテンツも拝見しましたが、DK2の時に比べて「本当に大きい」と感じることができます。
このように、「実世界とVR世界のスケールが完全一致する」という感覚を、唯一Oculus CV1で得ることができました。
ちなみに、PS VRでものすごい評判の「サマーレッスン」をこの前のUnreal Festで遂に体験することができたのですが、まさにこのスケールの違和感によって、そこまで楽しむことができませんでした・・
等身大のはずの金髪のお姉さんが、スーパードルフィーくらいのミニサイズに感じられてしまったのです。
Unityにおけるスケールの決まり
Unityは物理エンジンの設定などの必要性によって、Unityの単位と実世界のスケールの設定が定められています。
「Unity の物理エンジンでは 1 単位が 1 メートルに相当することに注意してください。」
UnityではScene上の単位をUnit(ユニット)と呼ぶ。Unitは1メートルと同じ長さ。 1Unit=1メートル
Oculus Riftにおいてもこの設定の通りで動くということなのでしょうか。
DK2を検証してみる
実世界とVR世界のスケールを比較するために、こちらのようなものを用意してみました。
ティッシュボックスを2つ用意し、片隅にトラッキングカメラを置きます。
Unity上では、さきほどのスケール設定に従ってティッシュボックスとトラッキングカメラと同寸のCubeを配置します。
そして、トラッキングカメラを親にして「TrackerAnchor
」の下に原点配置します。
この状態で、どのように見えるのか確認してみます。
サイズの辻褄はあってるように見える。けど・・
こちらが実際に見ている様子です。このようにOculusをかけたりずらしたりして
サイズがずれないかを見てみています。
映像ではレンズがあるせいか、VR側が広がって見えると思いますが
実際には実物とVRのサイズのずれはほぼないです。
そう、こうしてオブジェクトの位置、視界の切れ目を確認する限りはほぼずれはないんです。
ただ、Riftで見た時にCubeがティッシュ箱くらいのサイズがあるか、言われると
いや、そんなにないな・・という感想を抱いてしまいます。
もはや感情論ですが、こうなると「何がスケールの違和感をもたらしているか」がわからない状態になってしまいました。
何がスケールの違和感をもたらすのか
IPDの設定が悪い?
Oculus Riftのスケール感について、同じようなテーマの議論が海外の掲示板で見つかったのですが(ウィルス騒ぎが怖いのでリンクは割愛しますが・・)、割と書かれているのが「IPDの設定が悪いのでは?」とのことでした。
なるほど、と思いIntegration Toolで正しくIPDを設定しましたが、結果は変わらずでした。
AレンズとBレンズの違い?
普段から、眼鏡の人も裸眼の人も大丈夫なようにBレンズで設定しているので、もしかしてこれが悪い?と思い変えてみましたが
あまり変化はありませんでした。
レンズの位置と瞳の位置が違うが、カメラの位置が目の位置に合わせてあるため遠くになっている→小さく見えるということでは?
AレンズとBレンズでは?と思う前に、まずこの可能性を思いつきました。というのは、思いっきりレンズの位置を近くにした時にスケール感の違和感が軽減されたように感じたからです。(でも、若干まぶた接触するくらいだったので使える設定ではありません)ということは、カメラのデフォルト位置を調整すればいける!?と思ったのですが・・
最近のSDKは頭の中心→目の位置の設定ができなくなってるっぽいんですよね。
以前のSDKはこれの設定できた気がするのですが、いつの間になくなってしまったのか・・
Eye To neck Distanceという設定もOculus Configuration Utilityにアリましたが、こちらの設定を変えても見た目の印象にあまり変化はありませんでした。
有効視野角が狭いから?
これはもしかしたらあるかもしれないのですが、いい感じの検証方法が見つかりませんでした。
うちの会社から窓の外の富士山を見た時、窓の遠くから見ると超巨大に感じますが、窓に近づくにつれて小さく見えるようになっていきます。
これは部屋の中の風景と富士山を比較して見てしまうことからくる錯覚だと思いますが、有効視野角が狭い時に、同じような錯覚がおきて見えているものが小さく感じてしまう、ということはあるかもしれません。
とりあえずの対症療法
手っ取り早くこの違和感を解決する方法として、見た目の印象にあわせてスケールを変える方法を取ってみました。
「小さいな」と思った時にスケールを調整すると感覚的な違和感はなくなりますが、先述のようにゴーグルをずらして絵的に一致するか見てみると、
明らかに視覚上のサイズとずれてしまっていました。これはいいのか悪いのか・・
結論はわからず・・
このティッシュ箱を長時間見つめ続けていて思ったのは、近くに寄って見ている時はそれほど違和感はないのですが、遠ざかるほどに違和感が増してくるというところでした。
となるとおそらく、サイズうんぬんというよりは歪みの微細な違い、パースの差異によってもたらされるものである可能性が出てきます。
それがレンズの歪みそのものによってもたらされるものだとしたら、アプリ側でなんとかするのはちょっと無理があるかも・・と思います。
なんにせよ、Oculus CV1が手に入ればこの話は解決するのですが。
2015年、このタイミングでしか悩めないことを悩んで1年の締めといたしました。
次回はGOROmanさんの「中の人になる方法」です!お楽しみに。