【連載】インディーゲーム開発者のためのVRゲーム入門ガイド(4):VRゲームのグラフィックス・最適化のすすめ

IndieGamesJp.dev編集部より:
Expert seriesは、さまざまな有識者に寄稿を依頼し、個人・小規模ゲーム開発に役立つ情報を発信する連載シリーズです。第一弾シリーズの「VRゲームのいま」は、今回で最終回となります。執筆は渋谷 宣亮氏です。書籍『「VRならでは」の体験を作る Unity+VRゲーム開発ガイド』を執筆し、mydearest株式会社で『クローバークライマー』などを開発しています。
連載の前回はこちらです。
—
●VRゲーム開発時の一番の課題は「パフォーマンス」
ゲームデザインはセオリーがあれど究極的には開発者の個人の嗜好によるものですが、ビジュアルと最適化についてはすべての開発者が同じ制限と問題を抱えることになります。VRゲームの動作要件がふつうのビデオゲーム(以下、便宜的に「平面」と呼称します)と違うところは「高解像度と高フレームレートを安定して維持しなければいけない」という点です。
平面のビデオゲームでは解像度とフレームレートのどちらを優先するか、ユーザーが選べるものが増えてきていますし、モバイル端末などであれば利便性のためにフレームレートや解像度を妥協することができます。しかし、VRは据置だろうが携帯だろうが解像度もフレームレートも妥協できません。なぜならば、解像度とフレームレートの低下はVR酔いという健康への影響を起こすからです。
平面のゲームと違ってプレイヤーの目となるモニターがそのまま人間の目を覆うわけですから、テレビを見ているときのそれと負荷が段違いなのです。解像度が低下すると、メガネを外して視力が下がったような(裸眼で水の中に入ったときのような)ボヤけが起こり、集中力や快適さ、プレイしやすさが劇的に削がれます。
・じゃあ実際にどれくらいのパフォーマンスがあればいいの?
VRにおいて最適化は重要な課題ですが、実はVRのパフォーマンスの目安は時代によって変動します。VRデバイスのパーツやそれを動かすコンピュータの性能ごとに、それらプラットフォーマーがそれぞれ異なった見解を出すわけです。現時点のMeta Questシリーズは72FPS, 90FPS, 120FPSをサポートしており、Meta Questで動作するVRゲームは72FPSをターゲットにしています。PC向けにVRゲームを作るときは、Meta Quest以外のデバイスも加味すると90FPSは安定して出ることが望ましいです。
では、VRに適切な解像度は一体どうなのでしょうか?VRに適したフレームレートの基準はVR元年である2016年ごろからあまり変わっていませんが、デバイスの解像度はハードウェアの進歩によって指数関数的に増しています。以下に2026年時点のざっくりとした図を用意しました。ゲーム端末において、グラフィクス処理能力は「1秒あたりのピクセル数」が多ければ多いほど、1ピクセルごとにかけられるグラフィクス処理のリソースは減少します(処理が重くなります)。
| 解像度(ピクセル数) | フレームレート | 1秒あたりのピクセル数 | |
| PS5 Pro | 3840×2160 | 60FPS | 497,664,000 |
| PS5 (パフォーマンス優先) | 2560×1440 | 60FPS | 221,184,000 |
| Meta Quest 3 (PC) | 4128×2208 | 90FPS | 820,316,160 |
| Nintendo Switch 2(携帯) | 1920×1080 | 60FPS | 124,416,000 |
| Meta Quest 3 (Native) | 3360×1760 | 72FPS | 425,779,200 |
「なぜMeta Quest 3がPCとNativeに分けられているのか?」というと、Meta Quest 3はPCに接続せず単体で動かすときは、標準でディスプレイの6割の解像度でレンダリングされるからです(Meta公式のドキュメントより)。とはいえ、Meta Quest 3のグラフィクス処理能力はPS5の約1/8程度なのに、一秒間に描画すべきピクセルの数はPS5の2倍近くあるわけですから、Meta Quest 3の描画解像度がディスプレイの6割でもグラフィクス処理の性能のわりには相当な無茶をしていますし、PC VRでディスプレイの実解像度に合わせて描画するならば、性能の高いゲーミングPCといえど余裕がありません。なので、VRゲームは低予算であるとか市場規模が小さいとか以前の問題として「リッチなビジュアル」を実現するのが環境的に難しいのです。
なお、VRデバイスはディスプレイの解像度に対する割合で描画スケールを指定するので、Meta Questの解像度が将来的に向上すれば、プログラムはそのままでも次世代のMeta QuestでVRゲームの解像度は上昇します。とはいえ、もしサポート可能であるなら、ハードウェアが更新され次第、パフォーマンス設定も変えられると理想的ですね。
・理想はともかく実態はどうなの?
ベストセラーのゲームが必ずしも最適化がされているわけではないのと同様に、VRゲームも売れたり人気があるからといって最適化されているとは限りません。そもそも、最適化されていたとしてもゲームが面白くなければ意味がないわけです。
昔のMetaはMeta QuestでリリースされるすべてのVRゲームに対して、審査中にフレームレートの低下がわずかでも生じたらリリースを却下する厳しい姿勢をとっていました。しかし、途中から方針を変えてある程度のパフォーマンスの低下を許容するようになりました。その結果「Meta Quest 3ではフレームレートが72で安定するけど、Meta Quest 2だとフレームレートが40~50に低下する不安定なVRゲーム」がそれなりに生まれたり、そんなパフォーマンスでも人気が出ているVRゲームもあったりします。
それに、VRChatほかメタバースなどUGC系VRアプリケーションは、開発者が描画負荷やリソースを制限できるゲーム開発とは違ってユーザーひとりひとりが作ったオリジナルのオブジェクトを持ち寄るわけですから、最適化しようがありません。VRChatのヘビーユーザーの中は、ふつうのVRゲームであればユーザーを一発でVR酔いにさせるようなフレームレートが激しく低い環境に耐性がある場合が少なくないそうです。MetaのメタバースことHorizon WorldsはQuest 2で動かすと当然のように40FPSぐらいまで低下していました。
それでも、最適化されていないよりは最適化されている方がみんな幸せになることができますし、そもそもリリースするプラットフォームやハードウェアを(ローエンドを切り捨てる方向で)選ぶことだってできます。
●VRゲームにおけるビジュアルの指針
VRゲームにおけるビジュアルの品質や方向性を決めるにあたって、最初に決めた方がよいことと、そもそもやるべきでないことの二つがあります。まずはやるべきでないことについて説明します。
・VR専用か、VR対応か
ひとことでVRゲームといっても、いろいろあります。たとえば、SteamにはVR専用とVR対応のタグづけがあり、言葉通りVRなしでもプレイできるものとVRじゃないとプレイできないものがあります。これがVRのグラフィックスにどうかかわってくるのかというと、これが最初の大きな決断といっても過言ではありません。
・Forward RenderingとDeferred Rendering
現代のゲーム開発において、グラフィックスでいちばん最初に決めることが「レンダリングパイプライン」の選択です。もしVR専用のゲームを作るのであればForward Rendering一択ですが、VR対応ゲームの場合はその限りではありません。
さっくりいうと、Forward Renderingは軽い処理方法ではあるものの複雑なライティング処理には向かず、Deferred Renderingは重い処理方法ではあるもののリアルで複雑なライティング処理に向いています。(以下のもんしょ氏の解説スライドが詳しいので、必見です)
UnityもUnreal Engineも、公式ドキュメントには「もしもVRゲームを作るのであればForward Renderingにしてください」とはっきり書いています。冒頭で述べたように、VRはフレームレートも解像度も要求水準が高く、あまり複雑なライティングに処理能力を割く余裕がないためです。とくにMeta Questなどモバイル相応のスペックのハードではDeferred Renderingをスムーズにさばくための処理能力がありません。UE5の目玉機能であるLumenやNaniteなどの先進ビジュアル技術もEpic Gamesが「VRでの動作はサポート対象外」としています。
「じゃあMeta Questに対応するつもりがさらさらなくて、ビジュアルを優先したい場合はDeferred Renderingでもよいの?」と思う方もいるかもしれません。そのようにしたければ、してもよいです。ただ、後から「やっぱMeta Questでも出したいな~」と思ったのにDeferred Renderingだったら、地獄のような手間がかかります。
実際のところ、モダンでビジュアルに予算のかかっているビデオゲームは(最初からモバイル端末や軽量化、あるいはトゥーンレンダリングを狙っていない限りは)ほとんどDeferred Renderingで作られています。そのため、大手ゲームが「あとからVRに対応させました!」というときは、ほぼほぼDeferred RenderingのままVR化されています。これはリッチなゲーミングPCであるとか、ハイスペックな端末でだけ動けばいいとか、そういった限定的な状況なら問題になりません。
世の中には、UEVRというなんとも強力なMODツールがあります。Unreal Engine 4|5製のゲームのカメラを、外部から強制的に立体視に対応させてVRでプレイできるのです。モーションコントロールにこだわりがなければ「私の作ったUnreal EngineのゲームをUEVRでVRプレイしてください!」で済ませちゃうのも、手段の一つなわけです(Unityの場合はこういったことは仕組みとしてできないようです)。とはいえ、それで済まないから、VR専用ゲームを作る必要がある、もしくは作りたいと思うときがあります。そういったときはForward Renderingを選びましょう。
●VRで使える負荷軽減テクニックと使えないテクニック
上記のように動作要件がつねに厳しいVRですが、使えるテクニックがいろいろあります。使うかどうかはともかく、知っておくことが大切です。
・Foveated Rendering:見える場所だけ解像度を高くする
人間の眼球はもともと視界の中心に視覚のセンサーが集中していて、視界の外側はあまりはっきりと見えていません。人間はテレビやモニターを見るとき、視界の真ん中に映像がすっぽりと収まるように位置を調整するのですが、VRヘッドセットは人間の眼球を覆うようにしているわけです。このため「人間の視覚センサーがない部分に映る映像をはっきりとレンダリングするは、GPUリソースの無駄ではないか」ということで「Foveated Rendering」というテクニックが開発されました。これは「人間の目線の先だけ解像度を高くして、それ以外の解像度を下げる」というものです。

画像はNVIDIA公式ブログより。
一見かなりスマートに見える解決策ですが、一つ大きな問題がありました。これまでに普及したほとんどのVRヘッドセットには人間の目線を追跡するためのセンサー(いわゆるアイトラッキング)が入っていないことです。Apple Vision ProやPlayStation VR2にはアイトラッキングが搭載されていましたが、いずれも広範に普及したハードウェアではありません。ハードウェアに依存した技術はハードウェアが普及しないことには普及しないのです。そのため、妥協案として「Fixed Foveated Rendering(FFR)」が普及しました。これは「どうせ視界の真ん中しか見ないのだから、視界の真ん中だけ解像度を高くして、それ以外の解像度を下げればいいのでは」という技術です。Meta QuestやPICOではこれが採用されており、そこそこ使われている技術です。適切に使用すれば、GPU負荷がおよそ10%は下がることがMetaより確認されています。

画像はQualcomm公式ブログより。
ところが、実はFoveated RenderingはPC向けのVRだと普及がまったく進んでいません。とはいえ、PCのVRはOculusやSteamが負荷に応じて解像度を上げたり下げたりしてくれる機能に対応しているのと、そもそも負荷を下げたいのであればグラフィックス設定をいじって画質を下げればいいわけですからね。PCゲームは柔軟に作られているのです。
正確には、Foveated RenderingはPCだとDirectX12から対応しているのですが、ほとんどのVRゲームはDirectX 12のハイテク技術(レイトレーシング、パストレーシング、そのほか)を必要としないためにDirectX 11でリリースされているためFoveated Renderingを採用することができません。AAAゲームや先進的なビジュアルを特徴とするゲームは今後DirectX12でリリースされていきますが、枯れた技術だけで構成されるゲームであればDirectX11で問題ありません。なんのこっちゃという方は、DirectX 12で検索してみてください。
●補遺:Foveated RenderingとVariable Rate Shading
Foveated RenderingはもともとVariable Rate Shading(以下、VRS)と呼ばれるものを応用したものです。かつては平面のゲームにおいても「人間の目からあまり正確に見えない場所だけ解像度を下げる(たとえば、レースゲームでは車体と遠景は安定してよく見えるが、近場の道路は高速で過ぎ去るのではっきりとは見えない)」という描画負荷軽減のために開発された技術でした。しかし、ふつうのゲームにおいてはDLSSやFSRほか低解像度から高解像度へ補正するアップスケール技術が普及したため、あまりVRSは普及していません。

・リプロジェクション:フレームレートを半分にして、残りは補正する
率直に言って、これは使わないなら使わないに越したことはない、パンドラの箱のような技術です。簡単にまとめると、「通常通りに描画したフレーム」を「頭の向きにあわせて位置・角度をずらしたフレーム」に使いまわして、一枚のフレームを二枚のフレームのように見せかける技術です。MetaのデバイスではASW(Asynchronous Spacewarp)と呼ばれます。
これがなぜ禁断の技術なのかというと、やっぱり補正だけでは無理が生じるケースがほとんどだからです。表面的には72FPSに見えても入力自体は36FPSなのでラグがありますし、プレイヤーが頭を高速で振ったり、視界の描画との相性が悪かったりすると補正フレームの見た目もぐちゃぐちゃでひどいものになります。
とはいえ、まったく使えないというわけではありません。Metaが出している技術デモ『North Star』では45FPSをリプロジェクションで90FPSにしていますし、VRパズルアドベンチャー『Ghost Town』でも、45FPSをリプロジェクションで90FPSに補正して破綻なく動いています。それでも、使わずに済むならそれに越したことはないと思います。
●補足:リプロジェクションの影響
リプロジェクションはもともとVRのために生まれた技術でしたが、NVIDIAがこれを「NVIDIA Reflex 2」のFramewarpとして非VRゲームでも使えるようにしました。FPSなどでプレイヤーが視界を高速で旋回したとき、画面を新しくすべて描画しきる前に前フレームの描画を少し残して合成することでフレームの枚数を高速に増やすものです。だいたい同じ仕組みですね。
●VRとアンチエイリアス
・そもそもアンチエイリアスってなに?
アンチエイリアスとは、画面のギザギザした部分を補正してなめらかにする技術のことです。画像はUnity公式マニュアルより。PCのモニターやTV、VRヘッドセットの中にある液晶ディスプレイまで、基本的にはデジタルの画像というのはちっちゃな四角形の集合体です。当然、四角形の集合体であれば斜めの表現に弱いのは当然なわけで、これをいい感じに補正するのがアンチエイリアスです。

しかし、このアンチエイリアスという技術、コンピューターにそこそこ負荷がかかるので、ゲームグラフィックス悩みの種の一つでもあります。グラフィックス要件の厳しいVRであればなおさらです。さらに言えば、言い換えればアンチエイリアスは「画面をいい感じにぼかす」技術とも言えるのですが、VRで視界をぼやかすというのは、やり方を間違えると見た目が悲惨なことになります(さらに悲惨なのは、開発者はそれが悲惨だということに往々にして気が付かないことです)。悲しい事故を防ぐために、よいアンチエイリアスを知りましょう。アンチエイリアスの技術的解説は各々お調べください。
●MSAA:VR専用ゲームはだいたいコレ
VRでアンチエイリアスといえばMSAA(Multi Sampling Anti-Aliasing)です。MSAAは各ピクセルごとに映っているポリゴンたちの奥行きから色を混ぜる技術です。MSAAはDeferred Renderingで使用できないという欠点がありますが、VR専用ゲームはほぼForward Renderingで作ることになるので問題ありません。
とくにMSAAはハードウェアの構造によりモバイル系のコンピュータと相性がよく(PCや据置ゲーム機よりも効率がいいというのは意外ですよね)、UnityとUnreal Engine、およびMetaはいずれも「Meta Quest向けにVRを作るならMSAAを使うとよい」と案内しています。MSAAにはレベルがあり(ピクセルのうち何か所から色をサンプリングするか、というものです)、このレベルが高いほど精度は上がるのですが、MetaはMSAA x4を利用するよう推奨しています。
●FXAA:処理負荷も品質もほどほど、PCならあり
FXAA(Fast Approximate Anti-Aliasing)は、ポストプロセスのアンチエイリアス処理で「色の輝度が激しいところをなじませる」という挙動を実現します。とにかく処理が軽く、そして品質もまあそこそこというのが特徴です。どうしても視界のギザギザ(エイリアス)が気になるけど、PCでMSAAを動かせるほどの余裕がないといった場合はFXAAの導入を検討してもよいでしょう。FXAAは画面全体をなじませる代わりに画面全体がすこしぼやけるのですが、TAAのように残像で困ることはありません。なお、前述のようにモバイル系VRであればMSAAの動作が軽くて品質も出るので、わざわざFXAAを導入する意義はないかと思われます。
●TAA:VRだと残像がヤバいので使わないほうがよい
TAA(Temporal Anti-Aliasing)とは、ざっくりいうと「複数のフレームをまぜてエッジをなめらかにする」という技術です。特にPS4/XboxOneを代表とする2010年代後半からDeferred Renderingが事実上の標準になってMSAAがAAAゲームに採用されなくなるにつれ(このころの家庭用ゲーム機にはDLSSのようなAIアップスケーリング技術も搭載されていなかったので)、AAAゲームのアンチエイリアスはTAAの普及が進みました。詳細な技術的解説はユニティ・テクノロジーズ・ジャパンの動画がくわしくて分かりやすいです。
ただ、上記の動画にもあるように、TAAの問題は「ゴースティング」と呼ばれる「映像のブレ/残像」がかなり発生することです。対策技術はあるものの、基本的には「ある程度はしょうがないもの」として受け入れるのが一般的な傾向でした。しかし、VRではそうもいきません。テレビやPCのモニターなら気にならないわずかな残像もVRヘッドセットで見ると、無視できないほど悪目立ちするからです。ペンライトを振り回したときの残像が常時出ているような視界になるので、とてもじゃないけど耐えられるものではありません。PC VRでTAAを採用するぐらいなら、FXAAを採用した方がよいです。
●アップスケーリング:PCでは場合によってはやむをえない
DLSSやFSR、XeSSなどPCゲーミングですっかりおなじみのアップスケーリングは、アンチエイリアスとはちょっと異なりますが近い技術です。アップスケーリングは低い解像度で描画したものを高い解像度(ディスプレイの解像度)にまで補正するのですが、実はアップスケーリングは高解像度への補正のタイミングですでにTAAと同様の処理が入っているんですね。このためアップスケーリングを使用した場合は、アンチエイリアス処理が不要となります(例外的に、AMD FSR 1にはTAA処理が含まれないため別途アンチエイリアスが必要です)。
VRゲームにおいては、やはり基本的に採用しない方がよいです。というよりも、VRゲームにおいてはDLSSが必要なほど負荷の重い画作りをするべきではないです。それに、TAAで述べたように「TVやPCモニターでは気にならない残像がVRだと悪目立ちする」問題はアップスケールでも同様に発生します。かつて人気VRゲーム『Into The Radius』と『Legendary Tales』ではDLSSを採用していましたが、途中からのアップデートで撤去していて、Into The Radiusの開発者が「DLSSはVRに適さなかった」と述べています。
とはいえ、そうも言っていられないものもあります。『Microsoft Flight Simulator 2020/2024』のように、そもそも平面でプレイする時点でグラフィクス処理がめちゃくちゃ重いゲームをVRで動かすとなると、それはそれはもう大変重いわけで、そういったときにアップスケール技術で足りないスペックを底上げする必要性は生じます。ほかにもNo Man’s Sky、Hitman World of Assassinationなど、やはりVRに後から対応したゲームはDLSSでの動作を前提にしているものが多いです。
●アンチエイリアスなし:最弱かつ最強の方法
ここまでアンチエイリアスについて書きましたが、「アンチエイリアスを使わない」も強力な手段です。ひとつめに、アンチエイリアス処理はいずれもフレームレートを下げる時間的コストが生じるので、アンチエイリアスなしでいっぱいいっぱいの場合はアンチエイリアスの採用を見送ることもあるでしょう(Meta Questのようなモバイル系だと、とくに)。
ふたつめに、逆にコンピュータの性能を持て余しているのであれば、ディスプレイの解像度よりも余分に高い解像度で描画し、それを実際のディスプレイの解像度にまで圧縮することでなめらかな画面を高品質で出力することができます(これをスーパーサンプリングといいます)。実際、PC VRであればMeta Quest LinkやSteamVRで解像度をVRヘッドセットの150%や200%といったように解像度をシステムで指定したり自動で変化したりすることが可能です。Meta Questでも、本数こそ少ないもののアンチエイリアスよりもレンダリング解像度の向上によってキレイさを担保しているVRゲームもあります。
●開発者はパフォーマンスの問題を忘れがち
本記事でなんどか述べているように、VRにおいてパフォーマンス(フレームレートおよび画質)の低下は死活問題です。過言ではなくパフォーマンスの低下はVR酔いの元であり、体験者に吐き気や頭痛などの身体的被害を出しかねません。
もちろん「VRゲーム開発のすべての工程において最適化されているべき」とまでは言いません。過度な最適化はゲーム開発を阻害します。とはいえ、人に見せたり体験させたりするときは、必要最低限の相手への礼儀と思いやり、健康への気遣いとしてストレスなく動く環境を用意しているべきです。
しかし、困ったことにゲーム開発者は、自分の作っているゲームの不便と不快に慣れます。当然のようにガタガタで初見誘導がちんぷんかんぷんな状況に、慣れてしまうのです。これがVRだと、普通のゲームよりもひどいのです。筆者がゲームの展示会でVRのコンテンツを試遊するたびに、このことを何度も実感させられます。
フレームレートや解像度への感度には個人差があることは前提にしても、VRのそれは明らかに体験の質にクリティカルにひびきます。VR元年のころによく使われた比喩として「VRは生牡蠣である」というものがあります。生牡蛎は非常に美味しいのですが、一回でもハズレに当たって体を壊すと二度と食べたくなるように、VRもハズレを引くと二度とVRを体験したくなくなるというものです。なまじVRはまだまだ過渡期である現状、誰かにとっての人生VR初体験を自分のVRゲームで体調をぶちこわすということは、あってはならないのです。
もしも人にプレイさせたりイベントに出展したりということをお考えの場合は、いまいちど最適化とパフォーマンスについて見直してみてください。筆者の心からのお願いです。
IndieGamesJp.dev編集部より:
Expert seriesは第一弾シリーズの「VRゲームのいま」は、今回で最終回となります。今後も各分野におけるエキスパートからの連載を企画しておりますので、お楽しみに。






