ニュース
光と影にこだわった「ディビジョン」のオープンワールドの絵作り
Snowdropエンジンのクローバルイルミネーションを解説
(2016/3/22 12:40)
現地18日、UBI SoftのTechinical Lead、Nikolay Stefannov氏は「Global Illumination in 'Tom Clancy's The Division'」と題して、「Tom Clancy's The Division」(以下、「Division」)のグローバルイルミネーション(以下、「GI」)をテーマにしたセッションを行なった。
コンソールやPCゲームの世界では、もうすっかり当たり前になってしまったGI。すでにGIをやるかやらないかの域を脱し、今やGIを効かせたライティングを前提に、それに加えてどのようなテイストの“絵作り”をするかに焦点が移っている。絵作りには、アーティストがデータとして描き方を工夫するというものだけでなく、プログラム上の技術的な工夫もある。このうち、Stefannov氏が「Division」の絵作りの技術的側面について解説してくれたので、このセッションの模様をお伝えする。
「Division」は、UBIがスウェーデンに持つスタジオUBI Massiveが開発したサードパーソンシューターで、ゲームエンジンには自社開発のSnowdropエンジンを採用している。「Division」にはRPGであり、フィールドはオープンワールドとなっている。ニューヨークマンハッタンの6平方キロをゲームの舞台としており、ワールド内には合計で約200万のエンティティ(オブジェクト)が存在する。車の台数は約2万台、ゴミの山は3万にも達するという。
オープンワールドの整合性を重視しているため、アーティストによる演出意図を強調するためのライティングは、プロジェクトの方針で制限しており、空間内には日中でも全く光の届かない、常に薄暗い場所も存在する。
SnowdropのGIラインティングは、すべて動的なものであるため、いつでもどのようにでも調整することができる。パフォーマンスアップを目的に、ゲームエンジンでは、あらかじめ光源からの光の影響を計算して計算結果を焼き付けるライトベイクが行なわれることが多いが、本作のSnowdropエンジンでは、完全にダイナミックであることが一番の特徴だ。これにはライトプローブでは、管理が煩雑すぎて、本プロジェクトの設計になじまないから、という側面もある。
GIの影響範囲は屋外ばかりではない。本作では、屋外と屋内を区別しないシステムのため、屋内にも開口部の大きさに応じたリアルな光が入射し、ワールド内の時間の変化に従って、光と影の彩りを変える。屋内の調度品は、すべてではないが、この影響を受けるように作られている。こういった空間ライティングの特性を活かすため光の照り返りは起きないようになっている。
天候の動的な変化はスクリプトによってランダムにゆらぎを持つようになっており、太陽や空の色、雲の量、フォグやカスミの量などが変化する。また、プロシージャルな雪を降らせるシステムも、本作の情景を際立ったものにしている。
こうしたダイナミックなライティングをリアルタイムに行なうために、光源の変化がなくて良い場面ではあらかじめ光源からの影響を計算しておく、Precomputed Radiance Transfer(PRT)の手法が取られることが多いが、一般的なPRTでは、プローブで検出したHDR環境光のうち、ディレクショナルライトのように指向性を持った光のみを取り扱う。このライティング手法の結果は、自分たちの得たいものではなかった。また、高周波のライティングであってもPRTで可能ではあるが、計算コストがかかってしまう。
そこで、本作では、力技で、Gバッファキューブマップに近い手法で見えるものすべてのサーフェースをあらかじめ検出したリストのデータを持って実現している。ライトプローブは4メートル置きに自動的に設置され、そのプローブは64メートル四方の区画に最大1,000個、典型的には200~300個置かれる。この区画はプレーヤーの移動に応じて読み込まれたり破棄されたりして広大なオープンワールド全体を取り扱うようになっている。
1区画のプリプロセスデータを作るのに5~6秒かかるそうで、この計算の結果得られたマンハッタンのライティングデータセットはディスクサイズが1GB、区画数が約4,000区画、プローブが約116万、サーフェースが5,644万以上にもなっている。
このデータを活用して、実際のゲームのランタイムで毎フレームライティングが再計算されている。本作では、異なるプローブセット間の結果をブレンドしていないそうだ。これは、短い距離でもGI効果がでるようにするためで、本作の特徴と言えるだろう。
このライティングの再計算のパフォーマンスは、プレーヤー自身がいる区画ともうひとつの区画を毎フレーム行なうと800~900プローブ分を一度に行なうことになり、Xbox Oneでは非同期で0.95ms、GTX760のPCで0.47msと高フレームレートを維持するのに十分な結果を得ている。
上記が主だった本作がとっているGI手法である。本セッションでは、この他にも、本作が採用したグライフィクス品質を高めるための手法が数多く紹介されていた。ひとつひとつは、比較的馴染みのある手法であるが、汎用のゲームエンジンに頼らず、自社エンジンを開発することで、自分たちの絵作りに最適なものを作ることができたのだろう。
UBIやEAの各スタジオの場合、力のあるスタジオが独自に自社のエンジンを製作、改良し、それをいくつかのスタジオで共有している。ゲームに必要な要件を満たす技術力があり、かつ利用するタイトル数、セールスが一定以上見込める場合には、こういった手も取れるのだろう。
他社のゲームエンジンを採用する流れが加速している今、こういった決断はなかなか難しい部分ではあると思うが、絵作りの多様性のためにも、技術力と体力のあるスタジオにはこの方向を続けていただきたい。