「Enlighten」が解決する「PBRはなかなか大変だ」の声
実際、GIの適用されたPBRの結果イメージは、非PBRと比較して圧倒的な説得力を持っています。光源からの光が、反射、屈折、拡散、減衰というような空間中の物体によって変化する様子を計算が間に合う限り精密にやりましょう、というのがPBRなので当然です。と言っても、人間の目に飛び込んでくるまでに、無数の物体によって無数の変化を繰り返す現実の光の変化を、リアルタイムで100%再現することは不可能です。そのため、すこし前までは、間接光を加味するといっても、光源方向を固定したうえに、さらに光源影響を受けるオブジェクトも建物などゲームフィールド上で動かないものだけを対象にして、あらかじめ計算しておいた光源の変化で物体がどのように陰影を作るか、という情報を、ライトマップに固定的に格納しておく手法が主流でした。
「Enlighten」のアプローチは、従来の手法とは完全に異なります。間接光に特化し、光源の変化と光源から影響を受ける物体の変化、両方に対応する「Enlighten」は、光源矛盾のない完全な動的ライティングを実現しています。従来型のライトマップと同様に、ランタイムでの計算量を減らすために事前にあらかじめ計算しておくプロセスが発生することは変わりませんが、計算をライティングするためのヒントとなる情報のみにとどめておきます。具体的には、建物や地形といった静的オブジェクトの形状を解析したジオメトリキャッシュと、一定間隔に配置したライトプローブを代表点として、ライトプローブが受ける光の変化を「光の影響の候補のまとまり」としてキャッシュしておきます。それらをもとにランタイムでは光源や物体の状態に合わせて、適切な間接光による光源影響が計算され、ライトマップやライトプローブが更新されます。直接光の影響とともに、3Dモデルに適用してレンダリングすれば正確に光源影響を反映したシーンになるというわけです。
この他にも「Enlighten」の代表的な機能には、リフレクションプローブで収集した反射を格納するキューブマップを動的に更新する機能もあります。点光源や自己発光する物体のように輝度の高いオブジェクトや、強い鏡面反射によるメリハリの効いた、ダイナミックレンジの広いゲーム画面は、一般のゲームファンに注目されますので、このあたりの表現がリアルになることは作品にとって大いにプラスです。さらに間接光による明暗、陰影情報の増加もあいまって、レンダリング結果が一気にリッチになります。しかも、これら「Enlighten」による効果は、必ずしもフォトリアルな作品のみに限ったことではありません。相当デフォルメの強いセルルックのグラフィクスでなければ、光と影の情報量の増加は、間違いなく有効に働きます。
ところで、「現実世界になぞらえるのだから、PBRは人間の目にわかりやすく、実現が容易なのでは?」PBR開発の体験かないと、そう考えがちです。いいことずくめに感じるPBRですが、問題点がないわけではありません。
一番大きな問題点は、PBRが「物理的に正しいこと」を要求するということです。物理的に正しいことを目的とした手法なのですから、本来は問題点でもなんでもないことなのですが、長年の間、物理的に正しくない手法での開発に慣れ親しんできた開発者には、感覚的に抵抗感があるようです。
物体側のモデルでは、従来はひとつのカラーマップに統合して描いていたテクスチャに、ライティングで与えることになる光成分を除去したアルベド、物体表面のツルツル、ザラザラを表現するラフネス、金属光沢の強さを表現するメタルネスと、それぞれの要素ごとに用意します。
上記に加えて、従来から活用されてきた手法で、表面の起伏をテクスチャ化したノーマルマップを用意するのがオーソドックスなPBRテクスチャセットです。もっとGPUパワーが上がって、すべての起伏をスカルプトしたハイポリゴンで表現できるようになればノーマルは不要になるかもしれませんが、それは将来の話です。
もうひとつ大きな問題点は、光源側にあります。ライティングについても、やはり「物理的に正しい」ことが要求されます。結果の見映えを良くするために、ライトをライトで上書きするように、シーンの随所に局所的なライトを設置するのは正しいアプローチとは言えません。シーンに物理的に存在する光源位置に、そのまま光源を設定するのが原則です。シンプルなライティングは、ランタイムの処理負荷を軽減するばかりか、ライティングアーティストの作業量削減にもつながります。
とはいえ、これはあくまで原則の話です。実写の映画撮影でも行われるように、人工の光源による補助灯を活用して効果的にライティングを変化させることは必ずしもタブーではありませんから、作品によっては特定のオブジェクトのみに適用する「嘘の光源」を多用することも選択肢に入るでしょう。
「Enlighten」によるライティングのお作法では、今までのワークフローになかった作業も発生します。動的ライティングを実現するためのライトプローブの配置と、動的に更新されるライトマップのためのUV展開の作業です。PBRが初めてのスタジオにとって、プローブ配置は煩わしい作業に感じるかもしれません。また、「Enlighten」以外のソリューションでプローブ配置を経験しているスタジオでも、わざわざライトマップのためにUVを開くのは、非生産的に感じるかもしれません。配置に最適化が必要となるとなおさらです。
これらのニーズに応じて、一連のお作法に則った作業を軽減してくれるツール群が「Enlighten」には揃っています。ライトプローブを自動で適切に配置する機能に加えて、モデル配置を考慮して動的ライトマップ用のUVを適切に開いてくれる「AutoUV」が用意されています。
こうしたワークフローの変化や、新規導入のツールに、最初は戸惑うこともあるでしょう。そんなとき活用したいのが、ライセンサーによるカスタマーサポートです。昨年5月に、日本のシリコンスタジオが「Enlighten」を全世界に対して、ライセンスする権利および、開発、販売、サポートする権利を取得しました。現在のシリコンスタジオには、英ARMの子会社Geomericsから移籍したエンジニアが引き続き在籍していることに加え、日本人スタッフによる細やかなカスタマーケアがなされる体制ができています。言語の問題で「Enlighten」の導入を躊躇していたスタジオにとって、これはまさに好機と言えるでしょう。
「Enlighten」採用でさらにリアルに進化した『ウイイレ2019』
さて、ここで「Enlighten」を採用して成功を収めた具体的な好事例として、コナミデジタルエンタテインメントから2018年8月30日に発売されたばかりの『ウイニングイレブン2019』(以下『ウイイレ2019』)を紹介します。
ご存知『ウイイレ2019』は、1995年に第1作の『Jリーグ実況ウイニングイレブン』が発売から毎年バージョンアップを重ね、時代に合わせて着実に進化してきたサッカーゲームです。ゲームデザイン面では、実在のチーム、実名登場する選手の魅力だけに頼ることなく、ゲームとしての「遊びやすさ」を大切にして開発されています。他方、ビジュアル面ではフォトリアルにこだわっており、とくに実在のスタジアムは非常に高い再現性を誇るタイトルだと言えるでしょう。
そんな『ウイイレ』が2019年版で「Enlighten」を導入しました。『ウイイレ』では2015から前作の2018まで、自社の内製エンジンによるPBRでしたが、最新作の2019からは「Enlighten」による間接光ライティングに移行しています。
『ウイイレ2019』のゲーム画面を比較してみると、前作との差がはっきりとわかります。『ウイイレ2018』では、「遊びやすさ」を優先してスタジアムの屋根が大きく芝生に影を落とさないように、現実の太陽の位置より光源の位置を高く設定しています。これは、間接光が存在しない影部分の階調に乏しいせいでプレイフィールドの視認性が下がることを回避したからで、観客席部分を『2019』と比較すると良くわかります。
「Enlighten」による間接光が導入された『2019』では、現実の太陽の位置とそっくり同じ位置に光源を設定しても、芝のピッチ部分が暗く沈んでしまうことはなくなりました。芝のフィールドの視認性が下がらなければ、現実のスタジアムの状態を再現するのに障壁はなくなったというわけです。
「Enlighten」による恩恵は、光と影の表現力の向上にとどまりません。ライティングから多灯による「嘘」を排除することができた結果、ライティングアーティストのライト配置作業の負荷が軽減されました。ひとつのライト配置セットに含まれるライトの数が減れば、それだけ管理も容易になり、ひとつひとつのライトセットのクオリティを向上させることができます。
また、繰り返し行うライティングの調整作業も迅速に行うことができるようになりました。ライトの照度や位置変更があっても、事前計算済のキャッシュには影響を与えませんから、ライトベイクのための膨大な待ち時間なしでリアルテイムに調整結果を反映させられます。これは、動的ライティングを実現する「Enlighten」ならではの大きなアドバンテージです。
ライティングはゲーム画面全体に大きく影響を与えるので、『ウイイレ2019』は、過去のどの作品よりも、さらに現実のスタジアムの再現性が高いタイトルに進化しました。加えて、光や影の階調が豊かになった結果、画面全体の馴染みが良くなり「遊びやすさ」が向上しています。
今すぐにでも「Enlighten」を導入すべきスタジオ像
さて、「Enlighten」の導入をお勧めできるゲーム開発スタジオ像とは、いったいどのような会社でしょう。具体的には、以下のようなスタジオがあてはまります。
ひとつは、従来から社内でバージョンアップを重ねてきた自社のゲームエンジンを有するスタジオです。エンジンの振る舞いを熟知したプログラマを擁するスタジオであれば、「Enlighten」の組み込みはそう難しくないはずです。もちろんシリコンスタジオによる日本語によるバックアップ体制にも大いに期待できます。
もうひとつは、「Unreal Engine 4」を導入しながら、他のゲームタイトルとは差別化を図りたい作品を開発するスタジオです。「UE4」はたしかに物理ベースでレンダリングを行うゲームエンジンですが、標準では静的オブジェクトに対する光源の影響をライトマップにベイクして行う静的ライティングをおもに使用することを想定しています。進化を経て自前の動的ライティングも可能になっていますが、標準では「Enlighten」とは異なる実装の動的ライティングになります。
ライティング品質には、許容できる処理時間、シーンの複雑さ、想定されるライトの数といった要素が関係しますし、追加のライセンス費用というコスト面の検討事項もあります。これらの要素を特定することなしに、「Enlighten」と「UE4」標準の動的ライティングの優劣に言及するのは避けたいところですが、ライティング関連の実装をすべて自前のものに置き換えてからも、Enlightenが多くの「UE4」タイトルで採用されていることから、その実力のほどがうかがえるでしょう。
ゲームエンジンやミドルウェアの新規導入すべてに言えることですが、まずは試験的に導入して、十分に時間をかけて定量的な評価を行うことが重要です。それぞれの作品によって、目指すべきゴールは異なるでしょうから、そのゴールに完全に一致するかの確認は必須でしょう。また、ワークフローの変化に伴って、少なからずプロジェクトの流儀に変化が起こります。とくにPBR移行と合わせて「Enlighten」を導入する場合には、導入による変化がわずかだとしても、PBR化による変化が大きく、問題が生じた際の原因の切り分けが難しいこともあります。
どのプロジェクトでも、アーティストは最大人数を擁するセクションですから、この変化を過小に見積もることなく、試験導入のプロセスを十分にレビューして本番に臨むことが成功への近道でしょう。
公式サイト