視差無し立体視のススメ

本記事は こりんさんに続く、Oculus Rift Advent Calendar 2014の第18日目の記事となります。
対象読者は、「DK2 を購入したけど、日常的に楽しめるゲームも立体視動画もまだ少ないので、 主に2Dの動画(ライブ動画、MMD動画、R18動画等)を楽しんでいる人達」向けになります。




■はじめに

立体映画ブームの到来(2008)
http://eiga.com/extra/oguchi/1/
「3D世紀 立体映画の100年」(2012)
http://www.4gamer.net/games/017/G001762/20121031071/

この辺りを読みますと、3D映像技術の発達が商業的な立体映画ブームを何度も巻き起こしてきたことが分かります。
一方の個人制作では、例えば、ニコニコ動画の総動画数 約1100万件の中に立体視タグが付いているものは786件しか無く、ごく一部の人が制作し、ごく一部の人が楽しんでいる状況がずっと続いています。
個人に普及しない一番の理由は、やはり視聴環境が限られているのがネックなのではないか?と私は思っています。
(平行法/交差法は慣れないと難しいですし、裸眼立体ディスプレイは普及しないし..。見る人が少なければ、作り甲斐も薄いし...)



ただ、最近では立体視可能な2眼のスマフォHMD ( タオバイザー , Google Cardboard 等)が廉価なので、スマフォを買うとおまけに付いてくるぐらいの勢いで普及すれば、サイド・バイ・サイド形式等のステレオ立体視動画を作る個人も増えてくるのでは?と期待しています。(実際に、「サイドバイサイド動画生成方法まとめ」という記事を書かれている人も現れています…)



そうは言っても、個人が2眼のステレオカメラを日常的に使ったり、CGソフトから立体視動画を出力するのが当たり前になるのはまだまだ先になりそうです。

…だったら、今ある 2D の動画をどうすればもっと楽しめるのか?を追求するしかないじゃない!


との思いで、自作の動画再生ソフトでいろいろ実験した結果、2Dの動画でも強い立体感を感じる特殊能力 ( 異能?! ) を獲得できたので、その体験について書きます。






■立体感を知覚するメカニズム
立体視を探求するには、まず、立体感をどのように知覚しているのか?について知る必要があります。
視覚心理入門(オーム社)によれば、
・ピント(水晶体の厚み調節)
輻輳角(左右の視線が作る角度)
・絵画的手がかり(陰影、遮蔽、線遠近法、空気透視…)
・動きによる手がかり
・左右の眼で異なるステレオ映像(両眼視差)
といった情報を脳内で統合して、立体感を感じているのだそうです。


以下のサイトには、立体感を感じさせる要素について平易な言葉で解説されています。

3D立体視の解体新書 -
立体視という知覚(1)〜単眼立体視(1)
http://news.mynavi.jp/column/graphics/096/
立体視という知覚(2)〜単眼立体視(2)
http://news.mynavi.jp/column/graphics/097/
立体視という知覚(3)〜両眼立体視
http://news.mynavi.jp/column/graphics/098/
立体視という知覚(4)〜単眼立体視と両眼立体視の有効範囲の考察
http://news.mynavi.jp/column/graphics/099/

様々な情報を元に立体感を判断しているのであれば、両眼視差という要素が抜けても
立体感を感じられる状況があり得るわけです。実際に、その特性を利用したコンテンツとして「単眼立体視」もしくは「片目3D」というタグを付けられた動画がニコニコ動画に投稿されています。

単眼立体視(32件)
http://www.nicovideo.jp/tag/%E5%8D%98%E7%9C%BC%E7%AB%8B%E4%BD%93%E8%A6%96
片目3D(261件)
http://www.nicovideo.jp/tag/%E7%89%87%E7%9B%AE3D

単眼立体視を意識した動画の作例


「Tell Your World」のMusic Videoを片目で見ると立体視できるらしい件
http://vocaloid.blog120.fc2.com/blog-entry-11545.html

Wink3D (単眼立体視に絡む特許の例)
http://galgali.net/wink3d/summary.html


OculusRift で単眼立体視を体験しようと思ったら、片目の映像を隠すだけなので
Unityであれば、カメラの前にレイヤー名を付けた巨大な黒い壁を置いて片方のカメラの Culling Mask でそのレイヤーを外すだけ
(Culling Mask の設定次第で片方の目には見えない壁ができる)
で作れるのですが、それはあまりに虚しいのでもう少し考えます...。








■なぜ 2D は 2Dに見えるの?
さて、単眼では立体感を感じられる単眼立体視映像が 両眼では平面状に見えてしまう理由は何でしょう?
これを直接研究した論文は見つけられなかったのですが、私自身は輻輳角による距離認識が効いているのではと考えています。

図1
上図のように遠くにスクリーンがあれば、その1点を見つめた時の輻輳角は狭くなり、近くなれば輻輳角は広くなります。




図2
輻輳角による距離判断ができると、スクリーン上の点は経験的に同一平面上と判断してしまい、
「平面上にあるものに奥行きがあるわけがない」
と脳が判定してしまうために、他の手がかり情報からの奥行き推定を行わなくなるのでは?と思っています。

図3
…ということは、、輻輳角をゼロにしてしまえば 輻輳角による距離判断を無効化できるかもしれません。

ちなみに、このアイデア自体は古くから知られていて、1907年にカール・ツァイスシノプター(Synopter)として特許を取っているそうです。 ( 参考:On so-called paradoxical monocular stereoscopy )




Oculus-Unityアプリで 輻輳角をゼロにする方法としては、
無限遠に無限大のスクリーンを置く…のは無理なので、
・十分に遠い位置に巨大なスクリーンを置く… 35m離れると 輻輳角は0.1度以下になります。
・左右の眼に見えるスクリーンを分離して位置をずらす
・OVRManager の Monoscpic モードを使用する
・IPDをゼロにする
等が考えられます。


KaleidoPlayerでは、起動初期の状態でスクリーンとの距離が40メートルあるので 輻輳角はほぼゼロです。

私自身の経験では、輻輳角ほぼゼロでも十分に立体感を感じる時と 平面に感じる時があって、その場合は
マイナス側に少し広げることで平面感を消すことができました。

↑図4

↑図5
KaleidoPlayerのSynopter 画面の数値をマイナスにすると、スクリーンの位置がメートル単位で広がってゆきます。
−0.07m 前後で輻輳角ゼロ、さらにマイナスを増やすと徐々に見づらくなり、最終的には左右の映像を1つの映像として見ることが出来なくなります。
本来、眼球は輻輳角がマイナスになるような動きは出来ないはずなので、眼が疲れず且つ平面に感じない程度の小さな範囲で調節することが望ましいです。




↑図6
輻輳角をゼロ以下にする以外にも 平面を見ているという感覚を消す方法があって、
1つは プルフリッヒ効果で使われるような、左右の映像の明るさを変える手法です。


図7
プルフリッヒ効果を確認したいだけであれば、プルフリッヒ方式の設定画面で 色をGrayにすると明るさを調節できます。
但し、この機能での長時間の視聴は避けたほうが良い気がします..。私が試した範囲では、視聴後に明らかに眼に違和感がありました。
根拠は無いのですが、左右の目で映像の明るさが異なると 瞳孔の開き方で適応してしまうのではと疑ってます。


図8
本来のプルフリッヒ効果は現れにくくなりますが、色味を黄色と青色に変えただけのほうが 目に優しく平面感を消せると思います。
脳内の画像統合能力は優秀で、少々色味が異なっていても ほぼ元の色として見えます。



明るさ・色みを変える以外には画像の大きさを変える方法があります。

図9
KaleidoPlayerのSynopter 設定中に下にでるこの設定で、左目のスクリーンの横幅の倍率を変更することができます。
右目と左目で横幅の異なる画像を見せられたら 脳はどう判断するのだろう?との素朴な疑問が作ってみた機能ですが、平面を見ているという感覚を消すのに役に立ちました。



■立体感覚は鍛えられる
1年近くKaleidoPlayerで75fps化動画を見続けた結果、概ね以下の様な順に 2D映像に対して立体感を感じる能力が徐々に強化されたように思います。

平面状のスクリーンを見ている感覚が消えて、映像の中に居るような臨場感を感じる

動きのあるシーン限定で
前景(キャラクタ)と後景(背景)になんとなく距離差を感じる
カメラの動きを自分の動きのように体感する

前景(キャラクタ)の形状=立体感をより正確に感じる

陰影が少ない、動きの少ない動画・静止画でも同様な立体感を感じる

普通の液晶ディスプレイでも離れてみると、ディスプレイの奥側に空間が広がっているように感じる

もちろん、私自身の体験が万人向けに一般化できるとは思いませんが、参考にして頂ければ幸いです。



■終わり
OculusRift で 2Dな動画を見せるコンテンツを作る機会があれば、スクリーンとの距離を長く取って欲しい…。
動画視聴マニアからのささやかな要望です。よろしくお願いします。



明日は、@hecomiさんによる「VR 内で自由自在に魔法を描いて遊べる MagicVR を作って公開してみた」です。お楽しみに!