この記事はCyberAgent Developers Advent Calendar 2017 18日目の記事になります。

みなさんこんにちは。

2017年新卒としてVR Agentでエンジニアをしております、中地と申します。
VR Agentは2016年12月に立ち上がった子会社で、VRやARの技術に特化した事業を行なっています。

 

VR Agent

 

さて、VR(※1)における空間表現には、既存の2D/3D表現と異なる点がいくつかあります。VR技術の進歩によって新たな空間表現が模索されていて、非常に探求しがいがある分野です。今回は空間の知覚とインターフェースに注目し、これらの特徴について紹介したいと思います。

(※1: この記事におけるVRとは、主にはPSVRのような立体視ディスプレイを用いたVR技術を指します)


VRが没入感を生み出せる仕組み(空間の知覚)

立体感を得られる仕組み(奥行きの知覚)

VRがその空間にいるかのような没入感を生み出すためは、いくつかの要素があります。

その一つが奥行き(特に焦点距離)の知覚です。

従来の3DCGでは、どれだけリアルで詳細な映像を作成しても、現実のような立体感を生み出せない要因があります。理由は、最終的に平面上のディスプレイに射影されてしまうからです。

まず人は物を見る時に、両目を使って焦点を合わせることによって、その物をはっきりみることができます。逆に焦点が合っていない場所は焦点から近くまたは遠くにあると言えます。これが奥行きの知覚に大きく影響しているのですが、平面のディスプレイを見る場合、焦点は全てディスプレイ上に集約されてしまいます。このため奥行き感が薄れてしまうのですが、VRではこの問題を両眼別々のディスプレイを使うことで解決しています。物体の深度によって両眼にそれぞれからの見え方を表示することで、一つの映像に対して擬似的に異なる焦点を生み出すことができるのです。

ちなみに、360度映像は全視界に映像が投影されるため没入感を感じやすい仕組みになっていますが、一部を除き(※2)ドームの内側から映像をみているような見え方と等しくなります。つまり、平面ディスプレイと同様に焦点距離が常に一定なので、奥行きの知覚は得にくいです。

(※2: 両眼に対応している360映像も存在します。)

大きさ(広さ)の知覚

大きさの知覚は、自分と対象物の相対的な関係を定義する重要な要素です。現実と同じような大きさを知覚させることで高い没入感を生み出すことができる反面、一歩間違えると現実感が薄れてしまう危険もあります。

大きさを知覚するための要素は、自分の知っている情報から大きさが想像できること、目線の高さ、自身の移動に対する見え方の変化などが挙げられます。適切な大きさを知覚させてリアルな体験を作り出すためには、これらのポイントを抑える必要があります。

コツとして、自分の大きさを知覚しやすいものを近くに設置することが有効だと思います。遠くのもの(例えば月など)は視点を動かした時の見え方の変化が小さいため、大きさを知覚しづらいという性質があります。そのため、広い空間であっても近くに比較するための物体がないと適切に広さを感じさせることができないのです。

弊社で開発したVRワイヤーアクションゲームのモックでは、ビルとビルの間を飛び回る現実離れした動きをするのですが、コンテンツの開始地点ではきちんと現実のような景色に見えるような調整しています。この工夫によって、「空想の世界で飛び回る体験」でなく「現実のような世界で飛び回る体験」ができるようになったと思います。


空間的なインターフェース

VRではハンドコントローラーのような入力機器によって、既存のキー入力やタッチパネル以外のUIが模索されています。前段で紹介した空間知覚の仕組みを踏まえた上で、VRに適したインターフェースについて紹介します。

ノン・ダイジェティックUI (Non-diegetic UI)

一般的なゲームでUIと呼ばれるもので、常に画面の最前面に表示されているUIです。ここでは、視点に対して固定されたUIのことを指し、基本的にはVRには適していないUIとされています。

例えば、3D映画で映像を見ていると手前の字幕が読みづらいということがあると思いますが、これは、人が二つの深度に同時に焦点を合わせることができないため、片方に焦点を合わせるともう片方がぼやけてしまうということが原因になります。

もし自分の視点に固定するような表示を作りたい場合は、コックピットのような画面を検討するとよいかもしれません。実質的には後述する空間UIですが、似たようなインターフェースを提供できます。

また例外もいくつかあり、例えばポップアップ表示などです。平面UIにおいては手前の表示に注目をさせるために奥のUIに影を落としたり、ブラーをかけて擬似的に単焦点な見え方を再現するようなことがあります。VRの場合、手前に配置したUIに対してはユーザーが自分で焦点を合わせてくれるため、より直接的な方法で再現することができると思います。

レティクル(銃などの照準を図るための表示)は少し特殊で、一眼の場合は固定距離で良いのですが、二眼の場合は焦点距離をポイントしているオブジェクトと同じような位置で合わせられるよう、動的に奥行きを変える必要があります。さらに、注意することとして、VRでは視界中に固定されたものは認識から外れる性質があります。例えば現実では常に自分の鼻は見えていますが、おそらく意識するまで自分の鼻が見えていることには気がついていません。あるタイトルでは、現在の視点を若干遅延させてから追従するようにしているそうです。

空間UI (Spatial UI)

空間に配置するタイプのUIです。未来を描いたSF映画などでよく使われる表現だと思います(ホログラム表示のディスプレイなど)。見え方として現実世界の画面などと同じようになるため、焦点距離で破綻することが少ないです。

例えばゲームで常に表示したいパラメーター(時間など)は、自分の視点ではなくステージ上に表示するなどすると、没入感を損ねることなくユーザーに必要な情報を与えられると思います。

ダイエジェティックUI (Diegetic UI)

個人的にはVRにおけるUIの真髄が、このダイエジェティックUIだと考えています。

これまで紹介したUIは、所謂UIを表示するための方法ですが、ダイエジェティックUIの考えは、物体自体をインターフェースにするということです。例えば空間内で銃を出したい時に、従来であればメニューから銃にカーソルを合わせて決定ボタンを押しますが、VRでは置いてある3Dの銃を自分の手で掴んで持ち上げれば良いのです。このように、ダイエジェティックUIは、現実世界と同じようにものに触り使うことができるインターフェースのことを指します。

また空間を自由に拡張することもでき、あるタイトルでは腰の辺りで手を握ると銃が掴めたり、他のあるタイトルでは着ぐるみの頭を自分にかぶせると自分のアバターを着せ替えられたりします。


最後に

ダイエジェティックUIについて考えると、逆にいえば既存のUIが平面による制約のもと生み出されていて、現実空間の事象を模した表現(メタファーやアフォーダンス)に依存していることが見えてくるように思います。過去にタッチパネル付きスマートフォンの普及によってカーソルに囚われないインターフェースが模索されてきたように、現在はVRによって平面に囚われない空間的なインターフェースが模索されているフェーズだと思います。

 

こういった既存の枠組みから一歩進んだ表現を生み出せる可能性が高いところもVRの大きな魅力なので、これからも探求を続けて行きたいと思います。