akyboxブログ

旧AkiIroブログ

【Unity】VRのカメラにおける距離感with天球画像

VRで感じる「大きさ」を考えてみる

はじめに

本記事は実際にやってみてこうだろう、という記事です。
細かいところには間違いがあるかもしれません。ぜひご指摘いただければ幸いです。

VRにおける大きさの誤認

例えば天球画像で部屋を作ったとします。
その中に60m四方のキューブをひとつ、90m離して出したとき、人はそのキューブを60m四方だと感じるのか。
答えはNOです。
人の脳は天球の情報量から大きさを推測し、キューブとの距離感を正しく認識できません。 f:id:AkiIro:20161015052208p:plain VRに限ったことではないですが、
椅子や机の天球に騙されて大きさを正しく認識できません。
つまり、
「すごく大きな部屋にいて、60mクラスの大きな箱が遠くにある」と感じるのではなく、
「普通の大きさの部屋にいて、せいぜい2mくらいの箱が近くにある」と感じます。

距離感ってなんだっけ

そもそも距離感は比較で語られるはずです。
ですから、比較する対象がなければ、
単純には1m離れたところの1m四方のキューブと2m離れたところの2m四方のキューブは同じ大きさに見えるはずです。
f:id:AkiIro:20161014232654p:plain
緑のキューブと青のキューブの大きさは同じにみえるはず。

実際に試してみる

実際にUnity上で試してみます。
まず、VRSupportedをオフにして試してみます。

VRSupportedオフの場合

カメラの位置からみると二枚のパネルが完全に同じ大きさにみえて重なっているのがわかります。
f:id:AkiIro:20161015044519p:plain 手前の緑の半透明のパネルを消してみます。
f:id:AkiIro:20161015044734p:plain 手前のパネルを元に戻して奥の青のパネルを消します。
f:id:AkiIro:20161015044824p:plain これをVRで試します。

VRSupportedオンの場合

実行してみると先ほどと違い、ずれているのがわかります。 f:id:AkiIro:20161015045131p:plain これはなぜでしょうか。

立体視の仕組みを考える。

基本に立ち返ると、人は目に映るものの差で立体としてものを見ます。
したがって以下の図のように見えているのです。
f:id:AkiIro:20161015045814p:plain
これは単体のカメラより大きさを正しくとらえられているとも言えます。
ちなみにエディタのウィンドウには左目の映像が出ています。

立体視ができれば大きさを正しく認識できるのか

答えはNoのようです。テストのように著しく情報の少ない状況かつ、きわめて視差を取りづらい中で正しく距離感を得ることは難しいようです。

VRにおけるスケール感のカギ

以上のテストから、

  • VRは立体視、ディスプレイより物の大きさをしっかりととらえる(距離の差を理解して完璧に重なって見えたりしない)
  • とはいえやはり周りの状況にも引っ張られる。

といった知見を得ました。
やはりVRという架空の世界において物の大きさを感じさせるには、周りのもので情報を与えてあげる必要があるようです。
ユーザーに感じてほしい大きさを感じてもらうためには周りの比較対象を正しく選ぶことが肝要と言えるみたいです。