【レビュー】業界最高水準のGIソリューション、リアルタイムGI ミドルウェア Enlighten
オープンワールドゲームの世界的な人気などに後押しされ、近年その技術的注目度が上がっているリアルタイムGI。ここでは、その業界最高峰とも言われるリアルタイムGIミドルウェア「Enlighten」について、実際のシーンを例にその詳細を紐解いていく
検証マシン性能(PC Spec)
OS:Windows 10(64bit)
CPU:Core i7-6920HQ(2.90GHz)
メモリ:32GB
GPU:GeForce GTX 1080
製品情報(Product Info):Enlighten
対応プラットフォーム:PC Games for Windows、Linux、Mac OS X、Xbox One、PlayStation 4、PlayStation Vita、Android、Android x86、64-bit Android、iOS、64-bit iOS、Windows RT、Nintendo Switch
問い合わせ先:シリコンスタジオ
http://www.siliconstudio.co.jp/
価格:要見積もり
シリコンスタジオの下、再出発を果たした Enlighten
2017年5月にソフトウェアライセンス、開発、販売、サポート権などをシリコンスタジオが獲得した「Enlighten」。これまで GDC などでニンジャセオリーとの共同開発発表を行なったり、『Star Wars バトルフロント』や『ストリートファイターV』などで採用されたりとその存在感を大きく高めていた同ミドルウェアだが、その詳細な全貌は広く知られてはいなかった。今回はそんな Enlighten の実力を UE4 のシーンを用いてレビューしていく。
そもそも「Enlightenとは何か?」という問いに端的に答えるとするならば、「リアルタイムにグローバルイルミネーション(GI)を計算する技術」として問題ないだろう。近年のゲームにおいては、広大なフィールド、変化する時間、天候、プレイヤーの行動に応じた様々なインタラクションなど、動的な演出が多数求められる。それに対し、現世代機におけるグラフィックスの向上もめざましく、現実と見紛うほどの繊細なGIを再現した美しいライティングも同時に求められている。しかし本来GIというものは、プリレンダーの世界においてもそのシミュレーションに多大な時間を要し、ゲームにおける解決策としては長時間をかけて事前にライトマップにベイクする、という手法が一般的だ。また、逆にリアルタイムに GI を更新することを売りにしている技術も多くあり、ボクセルコーントレーシングや LPV(Light Propagation Volume)などがそれにあたるが、パフォーマンス的な問題において実用的とは言いがたい状況が続いている。
その表現とパフォーマンスという両立の難しい問題に対して Enlighten は非常に高レベルな実現を果たしており、数多くの採用例がそれを物語っている。次ページより、シリコンスタジオより提供された UE4 における実際の各シーンを通して、Enlighten がどのような手法で、どのようなリアルタイムGIの解決策を提案しているかについて語っていきたい。
Topic1:ゲーム体験の可能性を広げるリアルタイムGI
実用的な負荷と精度を兼ね備えるバランスのとれた設計
まずはじめに Enlighten の魅力を語るとするならば、その技術の売りであるリアルタイムに更新されるGIに触れざるを得ないだろう。レビューするシーンとしてはUE4における「RealisticRendering」のサンプルシーンとなるがこのシーンには Enlighten の様々な魅力が詰まっている。日が陰り落ちていく動的な時間経過演出。プレイヤーが変更する照明環境は即座に反映され、テレビをつけることによるエリアライト的な演出までも Enlighten は可能にしている。
また、驚くべきはそのパフォーマンスだ。Enlighten においてはそのGI更新の処理を並列化し、タスクスレッドに分散することでゲーム部分の処理にはほとんど影響を与えない。また、瞬間的な更新負荷に関しては、各フレームに遅延させることで人間の目には気づかない範囲で処理の分散も行なっている。筆者が確認した環境においては、GIの更新を常に行いながらもfpsは120を切ることがなく、これは昨今のモバイル、VR市場においても十分実用に堪えうるパフォーマンスが出ていると言えるだろう。
さらに、GI の精度においても驚かされる。そもそもGI自体がさほど精度を必要としない情報(昨今のゲームにおいては球面調和関数で3次元ほど)ではあるが、LPVなどで起こりがちなライトリークや GI情報の破綻はほとんど見られず、動的なものと静的なもののちがいがまったくわからないほどの精度を実現していた。これらは Enlighten がライトマップUVとプローブの2種を組み合わせて GI を構成していることによる恩恵だが、それらの使用可否を組み合わせることでさらにパフォーマンスと精度のバランスを調整できるような余地すら残している。
Enlighten によるリアルタイムGI更新
Enlighten によってリアルタイムに更新されるGI。日が落ちていくことによる影や、灯される室内灯などその全てがリアルタイムに反映される。UE4標準のライトマップを使用してベイクした場合、精度にもよるが 10~30分ほどのベイク時間がかかることを鑑みると、その速さのほどがわかる。
[A]テストシーン「RealisticRendering」昼間
[B]時間経過によって夜になったところ
[C]いくつかのオブジェクトは動的なものになっているが、ライティングに破綻はない
リアルタイムGI更新と処理負荷
Enlighten は本文にもあるとおり処理を分散しているため、体感できるほどの処理負荷は発生しない。このテストシーンにおいても最大で3.0 msほどのCPU負荷が発生していたが、処理落ちはいっさい発生しなかった。また、今回はミニマムなテストシーンにて評価したが、Enlighten のリアルタイムGIは使用する環境を選ばない。ごくコンパクトな遮蔽空間から広大なテレイン、オープンワールドまで対応しており、大規模なマップにおいては GDC2016 で発表されたライトマップUVとプローブのLOD技術によって、各コンソール機においても十分に動く処理負荷となっている。画像は、デバッグ表示にて Enlighten の処理負荷を表示したところ。左下のグラフから Game、Draw、GPU共に安定していることがわかる
ライトマップUVとプローブによるGI制御
Enlighten のGIは、静的ジオメトリのライトマップUVと空間に配置されるプローブの2種で構成されている。また、GIに貢献するかしないか、GIを受け取るか受け取らないかも適宜調整できるようになっており、細かなモデルに発生しがちなエラーが発生しづらくなっている。またデバッグ表示も豊富に用意され、アーティストが設定を確認しやすい環境が整えられている。
[A]静的ジオメトリがもつライトマップUVを可視化した画面
[B]空間に配置されるライトプローブ
それぞれのジオメトリがライトマップUVを使用するか、プローブを使用するか、GIに貢献するかしないかなどを可視化したもの。例えば青色のジオメトリは近くのGIをただ受け取るだけの設定になっており、ライティングの破綻を防ぐことができる
Topic2:GIを操ることで可能になる多彩なアートワーク
アーティストの可能性を引き出す多数のオプション機能
Enlighten を使用することで得られるのはリアルタイムに更新されるGIだけではない。Enlighten のメイン技術はリアルタイムGIだが、そのほかにも多数の表現力を向上する手段を提供している。例えばリアルタイムリフレクションもそのひとつだ。現在動的反射技術はスクリーンスペースにて反射を計算するスクリーンスペースリフレクション(SSR)が主流だが、SSRでは画面に映っていない箇所のリフレクションが正しく反映されない。その点、EnlightenではリアルタイムGIの技術を応用することで、各箇所におけるリフレクションキャプチャの動的な更新を可能にしている。照明環境が変われば、GIのみならず画面外の反射状況も適切に更新され、さらに説得力のある画面を映し出すことが可能ということだ。
さらには、GIを操ることによって可能になる多彩な表現手法も見逃せない。先ほどのシーンにおけるTVのエリアライト表現は、実はライトを追加しているのではなく、マテリアルのエミッシブ値を変化させてGIに反映させているにすぎない。しかし、それにより現行のライトの形に制限のあるライティングでは不可能な、ジオメトリ自体が優しく発光するような表現を Enlighten は可能としている。さらにこの手法においてはライト自体を追加しないため、処理負荷で言えば実質ゼロで照明効果を演出することができるというから驚きだ。このマテリアルの状況をGIに適応させる技術は、応用することで実に幅広い表現を行うことが可能となっている。例えばカーテンの透過表現、氷のサブサーフェス表現、ひいては破砕におけるシーン環境変化の演出すら行えるほどだ。アーティストにとっては表現手法が増えることは非常に喜ばしく、またこれらを総合的に扱うことで、Enlighten のGIをフォトリアルな表現だけではなく、ノンフォトリアルやセルルックの表現においてもおおいに活用することが可能だろう。
Enlighten によるリアルタイムリフレクション
シーン内にひとつ緑のポイントライトを動的に追加して比較を行なった。
[A]リアルタイムリフレクションを無効にした画面
[B]その反射環境を可視化した画面
[C]リアルタイムリフレクションを有効にした画面
[D]その反射環境を可視化した画面。画像を見比べると、リアルタイムリフレクションを有効にすることで画面に正しい反射が適応されることが見て取れる(TVや額縁で顕著に現れている)。特にこれらの反射は動的にライトを扱うとその効果のほどがよくわかる
マテリアルのエミッシブ操作によるライティング
TV のエミッシブを動的に制御してライティングした画面。
[A]Enlighten のGIを無効にした状態
[B]Enlighten のGIを有効にした状態。比較すると Enlighten のGIだけで魅力的なエリアライティングが行われていることがわかる。さらに、これらのライティング効果は実質処理コストがかからない点も素晴らしい
GIを制御することによる多彩な表現
今回レビューしたシーンの中には「Subway」という破壊をメインにしたシーンもある。このシーンにおいて Enlighten は、動的にマテリアルのGI設定を遮蔽から透過に切り替えることでライティング的に破綻していない破壊表現を実現している。また、これらの GI透過表現は「RealisticRendering」のカーテンにも使用されており、説得力のある布の表現にひと役買っている。
[A]破壊前のシーン
[B]破壊後のシーン。壁を破壊することで奥に隠れていたライトが出現するが、GI・スペキュラ共に破綻のない画面になっていることがわかる
[C]透過表現を有効にしたカーテン
[D]透過表現を無効にしたカーテン。右側のカーテンのみ無効にしているが、布の透過感が著しく損なわれていることがわかる
Topic3:Enlightenによるワークフローの効率化
アーティストフレンドリーな実用性の高いワークフロー
リアルタイムにGIを扱えるということのメリットは、ユーザー体験や表現力の向上だけにとどまらない。Enlighten はその商品価値のひとつとしてワークフローの改善も挙げている。本来ライティング作業というのは非常に時間のかかるものだ。ライトマップ手法を採用していた場合、ライティングに変更があればそのたびに長いベイク時間がかかるし、ライティング作業自体下流になりがちな点も含めると、ゲームの仕様変更などで気軽にライティング調整を行うことも難しかった。その点、Enlightenを採用すると照明やレイアウトの変更を行なっても即座に結果が反映されるため、シーンの照明設計にかかる時間が大幅に短縮され、ライティングアーティストのイテレーションコストを抑えることができる。
また Enlighten の魅力として、アーティストがセットアップしなくてはいけない項目が非常に少ない点も見逃せない。Enlighten はGI計算を高速に行うために個々の静的ジオメトリに専用のライトマップUVを事前作成する必要があるが、こちらはインテグレーションされる AutoUV機能を使うことによって自動で生成される。また、プローブの配置も設定項目の少ない専用ボリュームを配置することで直感的に密度を調整することができる。シーン全体のGIは静的ジオメトリ配置後に一度事前計算を行う必要があるが、こちらもインクレディビルドなどの分散処理を前提とした設計になっており、大規模な開発環境においても実用に堪えうるだろう。
さらにゲームエンジンのみにとどまらず、「Forge」と呼ばれるスタンドアローンのライティングエディタも提供している。Forge においては業界標準の物理ベースシェーディングおよびレンダリングが採用されており、Maya、3ds Max のプラグインも提供されている。DCCツールに慣れたアーティストであれば、テストシーンを各DCCツールで作成して確認を行うことでさらに効率的なライティング調整が可能となるだろう。
各種ワークフローを効率化するツール群
[A]AutoUV機能によって自動的に展開されるライトマップUV。開発規模によっては、数百から数千におよぶアセットに対してライトマップUVを展開しなくてはならない。Enlighten はこれらをインテグレートされたAutoUV機能によって全自動で作成してくれる。また、自動作成によって UV が破綻した場合は、個別にケージモデルを作成することで微調整することも可能になっている
[B]分散処理を行う事前計算ツール。インクレディビルドや SN-DBS などに対応した分散処理を行なってくれる
スタンドアローンツール「Forge」
「Forge」のエディタ画面。スタンドアローンで機能するため、自社エンジンなどでEnlightenのインテグレートコストが高い場合や、開発メインがDCCツールに依存する際には非常に役に立つだろう。将来的にはライトマップへのベイクやEnlightenデータのエンジンインポートなどが対応予定になっており、より利便性の向上が期待できる
総括
各種プラットフォームのサポートと将来性
今回のレビューでは UE4 でのシーンを前提としたが、Enlighten はあらゆるプラットフォームでのサポートが行われている。Unity 5 では標準の機能としてすでにインテグレートされており、UE3、UE4 はもちろんのこと、各社のオリジナルエンジンであってもスタンドアローンの SDK を利用することが可能だ。シリコンスタジオが事業継承を行なったことで日本語対応や将来的にはシリコンスタジオの次世代型ゲームエンジン「Xenko」へのインテグレートも期待でき、今後の展開が実に楽しみだ。
TEXT_椎葉
Enlighten の評価版お申込み・ご購入について
下記のリンク先にある、シリコンスタジオお問い合わせフォームよりお申し込みください。評価版をご希望の場合はその旨をご記入ください。
お問い合わせ
https://www.siliconstudio.co.jp/contact/products-service/input?productsID=20
お電話でのお問い合わせ
シリコンスタジオ株式会社 営業第一部
平日 10:00~18:00
TEL 03-5488-7070