【GDC2017】モバイルVRむけ高品位コンテンツ開発をサポートしたい! ARM、エピックゲームズ・Oculus VRが共同セッション

「VR元年」と言われた2016年のゲーム業界。しかし、GearVRを筆頭にいち早く市場に投入されたモバイル系VRは、今ひとつこの波に乗り切れなかった印象がある。背景にあるのが端末のスペック不足で、高品位なVRコンテンツを作るには、まだまだ限界があるのが実情だ。ただし、端末スペックの上昇が今後も続くことは言うまでもない。
 
こうした中、モバイル向け半導体製造大手のARMはGDC2017で3月2日、エピックゲームズ、Oculus VRと共同で「High Quality Mobile VR with Unreal Engine and Oculus(アンリアルエンジンとオキュラスによるハイクオリティなモバイルVR)」という協賛セッションを実施。アンリアルエンジン(UE)4のモバイルVR向けサポートを中心に、今後実装される予定の技術を紹介した。
 

Oculus VR・Remi Palandri氏
 

はじめにOculus VRのRemi Palandri氏は、GearVRでVRゲームを開発する際の一般的な注意事項について述べた。

モバイルではバッテリーと発熱量の問題が発生し、電圧に応じて処理速度が低下していくこと。そのため最適化処理が極めて重要になること。そのためにはダイナミックライティングではなく、陰影をテクスチャーにベイクする、一世代前のやり方が有効であること。その中でも、UE4.1.4で実装されたフォワードシェーディングレンダラが有効であること……などだ。

ひとことでまとめると、モバイルVRの開発はPCやコンシューマ以上に「制限との戦い」が求められるということだ。もっとも、この制限は時間と共にゆるやかになっていく。半導体とミドルウェアが共に進化していくからだ。Palandri氏からバトンを受け継いだエピックゲームズのRyan Vance 氏は、近く実装されるUE4の新機能について紹介した。

はじめにVance氏は「UE4では高品質なVR開発をエンジンレベルでサポートしており、こうした機能はモバイルVRでも役に立つ」と切り出した。UE4.14から実装された自動LOD機能は好例だ。マテリアル情報とライトマップ情報はそのままに、自動的に距離に応じてポリゴン数を減算してくれるもので、多くのゲーム開発者に使用されている。
 

エピックゲームズ・Ryan Vance 氏
 

その上でVance氏はUE4で今後実装が予定されている「モノスコピック・ファーフィールド・レンダリング」「モバイルマルチビュー」「フォビエットレンダリング」という3つの新機能について解説した。

①モノスコピック・ファーフィールドレンダリング
 

一部の単眼HMDをのぞいて、ほとんどのVR HMDでは両眼視差による立体視機能をサポートしている。元の画像データを、両眼視差をふまえつつ微妙にずらして二回レンダリングし、右目用と左目用に出力することで、立体視を演出する手法だ。そして、これが大きな負荷原因になっていることは、良く知られているとおりだ。
 

一方で人間の目は近くの物体ほど視差の影響が大きく、遠方の物体ほど奥行き感を感じなくなっていく性質がある。そのためシーンをクリッピング平面で区切って、近くの映像は二眼用にレンダリングし、奧の映像は一眼用にレンダリングして、重ねてやる。ただし、そのままでは重複部分が出てしまうので、そこはレンダリングを省略する。これがモノスコピックレンダリングの基本的な考え方だ。
 

このようなステレオスコピックレンダリングの映像をレンダリングするとして・・・
 

奥行き情報で手前と奧の映像を二つにわけ、手前はステレオスコピックレンダリングを行う。
 

奧の情報は両眼視差の影響を感じにくいので、両眼の情報をまとめて(モノスコピックで)レンダリングする。
 

しかし、そのままでは手前と奧とで重複部分が出てしまう。そこで、その部分はあらかじめマスクしてレンダリングを省略する。その上で手前と奧とを重ねてやれば良いというわけだ。なお、本機能はUE4.15でモバイル向けにサポートされた実験的機能で、UE4.16ではPCとコンソール向けにもサポートされる予定だという。

②モバイルマルチビュー

モバイルマルチビューはUE4.14で実験的に実装された機能で、CPU上でのステレオスコピックレンダリングのためのパスを最適化し、1回のドローコールで両眼向けの映像をレンダリングできるというものだ。
 

これまで左右で最低でも2回、ドローコールが発生していたのに対して、これが1回ですむというのだから効果は大きい。CPU上のレンダースレッドのパフォーマンスが大幅に向上でき、20〜35%の速度向上が見られたという。
 

もっとも現時点では、本機能はOSがAndroid N にアップデートされた、Galaxy S7以降の端末でしかサポートされていない。もっとも、Vance氏によるとGoogleのスマホVRプラットフォーム「Daydream」でも、近く本機能のサポートが行われるという。

ちなみにモバイルマルチビューとモノスコピック・ファーフィールド・レンダリングの併用はUE4.15ではサポートされていない。しかし、これもUE4.16では併用可能になる。そのため、さらに高速化が期待できるとのことだ。

③フォビエットレンダリング
 

これまでの2つでかなりお腹いっぱいな感じがあるが、今回の目玉がフォビエットレンダリングへの対応だ。
 

大前提として、人間は網膜に映る画像情報のうち、ある一点にしかピントを合わせていない。そこでプレイヤーの視線を認識し、その周囲だけ高解像度でレンダリングし、その周辺は低解像度でレンダリングすれば、マシンパワーをより有効活用できる。これがフォビエットレンダリングの基本的な考え方だ。
 

もっとも、この機能を実装するにはデバイス側で視線追跡機能が必要になることは言うまでもない。ただし、フォビエットレンダリングは次世代VR HMDの標準機能になると期待されており、現行機でもFOVE 0が視線追跡機能を備えている。Vance氏は「デバイス側の対応が進めばUE4でもサポートされる」と語るに留めたが、こうした方針が明らかになったことは、VRゲーム開発者にとって朗報だろう。

最後に登壇したARMのDaniele Di Donato氏は、同社のGPU「Mali」むけに提供されている「Mali Offline Shader Compiler」「Mali Graphics Debugger(MGD)」「Streamline」について紹介した。
 

ARM・Daniele Di Donato氏
 

Mali Offline Shader Compilerはシェーダーのパフォーマンス計測を行うツールで、コマンドラインで実行され、ゲームエンジンなどに容易に組み込める。ゲーム開発者はこれを使用すると、パイプライン上のボトルネックを計測することができ、最適化を進める手がかりが得られる。当然UE4にも統合可能だ。

MGDはランタイムAPIをトレースしてリソースを計測し、フレーム単位でパフォーマンスのチューニングを可能にするツールで、OpenGL ESと、OpenCLにも対応している。Di Donato氏は「UE4.15で使用可能になる」と述べたが、まだVR向けではなく、非VRゲームのデバッグに活用してほしいと留めた。
 

最後に紹介されたStreamlineはCPUとMaliコアのGPUのパフォーマンスを可視化するものだ。UE4でレンダリングを行う際、マルチビューのオンオフでCPUのスレッド処理がどのように変化するかといった状況を、グラフィカルに確認できる(スライドではマルチビューのオンで23%の向上効果が得られたとしている)。

Di Donato氏は「これらの機能を活用して、モバイルVR向けに高品質なコンテンツを作って欲しい」とまとめた。

モバイルVRはPCやコンソール向けのVRに比べて、より手軽で、コードレスで使用できるため、VRのコンテンツ体験をよりカジュアルなものにする力を秘めている。その分野でチップメーカー・ゲームエンジンベンダ-・VRデバイスメーカーの三者が共同でアピールした意味は大きい。今後の展開が楽しみだ。


(取材・文:ライター  小野憲史)