シリコンスタジオの吉野潤氏は「グローバルイルミネーション(以下、GI)とは、サーフェイス間の光の相互反射によって生じるライティング効果を指します」と解説。





「これまでのビデオゲームにおけるライティングは、スタティック(静的)な手法が主で、(ゲーム内の)時間の経過に合わせてライティングを変化させるのは難しかった。さらにワークフローの面においても、ライトのプロパティをいじった結果ライティングどう変わったかを確認するのも時間がかかって大変でした」と吉野氏は言葉をつなげます。
それを解消するために制作されたミドルウェアが「Enlighten」です。社内製を含むあらゆるゲームエンジンに対応しており、組み込むことで、ライトやマテリアルのプロパティをリアルタイムに、動的に変更できます。本ミドルウェアはイギリスのGeomerics社が開発したものですが、2017年5月にシリコンスタジオが開発をはじめとする各種権利を取得。日本語によるサポートを受けられるのも強みです。
続いては、「Enlighten」の具体的な機能の解説。「Enlighten」はラジオシティ法という描画方法を採用しており、いわゆる反射光、間接光を描画するのは前述のとおり。具体的には、マテリアル全体をパッチに分割し、次に光がパッチ間でどのように影響しあうかを計算。光がどのように伝播するかをあらかじめ算出します。ライティングすべてをリアルタイムで行うのではなく、あらかじめそうした情報を取得しておくことで、ゲーム実行時にリアルタイムでのライティングを可能にしています。

次にパフォーマンスについて。ライティングの計算にはCPUを用いており、GPUは使用しません。処理にどのくらいの負荷がかかるかは、シーンがどのようなオブジェクトや光源で構成されているかに依存します。また、1フレームごとにCPUのリソースをどれだけ割り当てるかという上限が設定できるので、数フレームのレイテンシを犠牲にすれば(若干の遅延、時間差が出てもいいようにすれば)、ゲームの別の処理に負担をかけることなく、見た目としても違和感のない範囲での描写が可能になるとのことです。

効率的に「Enlighten」を使用するには、シーンのうち、どのオブジェクトを事前計算に含むかの設定も重要。先ほども例として使用された山間部の谷間のシーンを例に挙げますと、光の反射への影響が小さい、草木や橋のような小さいオブジェクトを除外して計算することで、処理を軽くすることができます。事前計算に含まないと周囲から浮いてしまうかというとそんなことはなく、処理の結果によって得られた周囲からの間接光の影響で違和感なく収まるとのことです。

「Enlighten」の採用実績としては『STREET FIGHTER V』、『ドラゴンクエストXI 過ぎ去りし時を求めて』、『NieR:Automata』など有名どころの大作がズラリ。その中でも、Unreal Engine 4を用いてPlayStation 4とPCでリリースされている『Hellblade: Senua's Sacrifice』は「主人公の女戦士の心情に応じて、シームレスな世界の天候が動的に変化する」という演出が使用されており、「Enlighten」による動的なライティングがその実現に大きな役割を果たしています。



「Enlighten」は、導入することで、間接光が作り出すリアリティのあるグラフィックを実現できるリアルタイムGIソリューション。吉野氏は「従来の手法では難しかった時間や天候の変化によるライティングの変化も、「Enlighten」を使えば高いクオリティで維持できます。また、ライトのプロパティを調整した際の結果がリアルタイムで反映されることで、ワークフローもより効率的になります。みなさまの開発環境を、品質と効率の両面から強力にサポートできるツールです」とセッションをまとめました。
(C)Silicon Studio Corp., all rights reserved.