ニュース
[GDC 2013]小島プロダクションは「世界に通用するゲームエンジン」で頂点を狙う。「FOX ENGINE」詳報(後編)
セッションの模様 |
[GDC 2013]MGS5を実現する「FOX ENGINE」。ついに明らかになった新世代ゲームエンジン詳報(前編)
ハーフランバート系の技術による人肌表現
まずは各種表現の要素技術について。解説を行ってくれたのはテクニカルディレクター・多胡順二氏だ。
スキンシェーディングで必ず話題になる表面化散乱の表現では,ちょっと意外なことに,最近流行のスクリーンスペース サブサーフェス スキャッタリング(Screen Space Subsurface Scattering)は使われていないという。半透明体の表現では,ハーフランバートシェーディング(Half Lambert Shading)に似た処理が行われているとのことだ。
まず,ランバートシェーディングから説明しておこう。光源が1個の場合,ある面で光源に対する角度が垂直(0度)だと,面の明るさは最大値(1)となり,90度真横を向くと明るさが(0)になる……というのは誰にでも分かる話だ。0度と90度の“途中”における明るさは,その角度のコサインの値になる。これもちょっと考えれば自然なことだと分かるだろう。これが「ランバートの余弦則」(Lambert's cosine law)と呼ばれるものだ。
ランバートの余弦則に従って,面と光源の向きだけで行う,ごくごく普通の陰影付け手法がランバートシェーディングと呼ばれるものである。
ただし,人体などは半透明体なので,よそから入った光によって全体的に明るくなる傾向にある。「だったら最初から明るめに処理してやればいい」というのがハーフランバートシェーディングだ。
前編でお伝えしたとおり,MGS5では物理ベースのレンダリングにこだわっている。にもかかわらず,割と肝心な部分で“物理的根拠のない近似式”を用いるというのは奇妙な話に思えるかもしれないが,複雑な事象をリアルタイムなゲーム世界で扱うために必要な措置なのかもしれない。
実際に示された比較画像を見ると,人肌では皮下散乱光の色変化(※赤みを帯びる)などは考慮されていないようで,陰影がやや柔らかくなったかな? という程度の変化が出ている。
半透明表現無効時(左)と有効時(右)の違い |
余談気味だが,セッションの冒頭でチュートリアル部分として公開されていたデモでは,医者や看護婦,匍匐前進中のスネークさんの背中などで人肌表現を確認できた。医者や看護婦はかなりリアルで自然な感じだったのだが,スネークに,なにか違和感がある。何だろうと考えてしばらくして,顔はあんなに傷だらけなのに,身体はお肌すべすべで傷一つないからだと気付いた。
動きが激しかったこともあってボケ気味だが,医者(左)と匍匐前進中のスネーク(右)。スネークさんの背中はお肌すべすべである |
独特なパラメータ「ラフネス」の効果
前編でも紹介したように,FOX ENGINEの特徴的な素材設定項目に,「ラフネスマップ」がある。これは,ノーマルマップでは指定できないような微細な凹凸による素材感の違いを表現するためのものと思われるが,ともあれ,専用のバッファを使って処理される。
ポイントは,このときバッファを直接加工すると,全画面での特殊効果にも利用できることだ。下に示したスライドでは,バッファ全体で値を下げ,やや光沢のある表現に変える例が示されたのだが,これにより,シーン全体が雨などに濡れたように見えるのが分かる。
ラフネスマップのラフネス値変更例。加工後(右)ではシーン全体が雨に濡れたように見えるという小技だ |
凹凸面であっても,視線の角度が浅いと鏡面反射に近くなる |
また,ラフネスマップで与えられる凹凸には,フレネル効果と似たような特性が与えられている。凹凸面の反射特性を示すスライドとともに説明されたのだが,凹凸がある面は,視線からの角度が浅い場合,マット(非光沢)系の表現からグロス(光沢)系の表現に近くなっていくのだそうだ。
スライドで示された画像を見ると,原因がよく分かる。視点からの視線が面の凹凸で反射した場合に,視線との角度が浅いと,視点から見えている凹凸面の向きが揃って,単方向に行きがちになるためだ。
視点との角度に応じて見え方が変わっていく原因の説明に用いられた模式図 |
レンダリング例。壁に映っている白い反射部分に注目してほしい |
MGS5のレンダリングとライティング
FOX ENGINEはディファードレンダリングを採用する |
FOX ENGINEでは,動的光源の数の制限を受けない手法として昨今よく用いられるディファードレンダリング(Deferred Rendering)を採用している。その大きな理由は「たくさんの光源を扱いたかったからというのと,人物と背景に同じライティングを施すことで,キャラクターを背景に溶け込ませるような表現をしたかったから」だそうだ。
最近の大型タイトルではリッチな光源や影による効果が当然のように行われているので,これは妥当なところだろう。
ディファードレンダリングでは,演算の都合に合わせて複数のバッファに情報を入れておき,複数パスでのレンダリングで参照するのだが,FOX ENGINEで使用するバッファとしては,以下のようなものが挙げられていた。
- Diffuse Albedo(色情報)
- Specular Albedo(光沢情報)
- Normal(凹凸情報)
- Velocity(速度情報)
- Translucency(透明度)
- Material ID(マテリアル情報)
- Depth(奥行き情報)
- Roughness(表面情報)
- 光束(光源全体の明るさ)
- 照度(照らされる物体の明るさ)
- 輝度(単位面積当たりの光源の明るさ)
- 色温度(光源の色)
といった物理量による指定が行われているという。
明るさの使い分けとしては,「光源から全方向に照射される明るさの総計である光束は炎や人工光源に,空の明るさには照度,自己発光物には輝度といった感じになっている」と鈴木氏。当然ながら,光源からの光は,距離の二乗分の1の割で減衰していくことになる。
スポットライトは光束で指定されていることもあり,照射範囲が狭くなると照度が上がる。
バッファの直接操作による複合的特殊処理
FOX ENGINEで採用されるライティングモデル |
瞳の屈折処理。左がOFFで右がON |
髪の毛における異方性反射の違い。左端は異方性反射を無効化したもの。中央と右は有効化したものだが,両者の違いは分からない |
ライトプローブによる環境光の表現
デザイナーが指定した位置でキューブマップを作成し,環境光を2次の球面調和関数に格納。アンビエント(ambient,周囲)のレンダリングは4分の1解像度で行い,ライトプローブ間のデータは補間して使用する。端的に述べて,今日(こんにち)のGI実装としては一般的なものといえるだろう。
天候表現や時間表現も可能なスカイライト
屋外の環境光であるスカイライトには,「スカイシミュレータの出力を用いている」との説明があった。空からの光をイメージマップドライティング(Image Mapped Lighting)でキューブマップ化し,さらにそれを球面調和関数(Sphere Harmonics)化したものを用いているのだろう。ざっくり言ってしまえば,「空の画像を作って,それをスカイライトにしている」のだと思われる。
そのスカイライトは時間変化に対応しており,大気での散乱効果も再現されているとのことで,時間変化については単体のデモが示された。時間経過を加速させ,太陽の動きとともに影が長く伸びたり画面が夕焼けに染まったりする様子などを確認できるものだ。
昼と夜で画面の明るさを変え,色を変化させるところは,カメラ側の制御で実装しているという。一部の映画でたまに見られる手法だが,ゲームではちょっと珍しいかもしれない。
時間変化を実現するため,ライトプローブは24時間分が用意されており,間の時間は補間して表現されるとのこと。また,天候の変化もサポートされており,晴天や曇天,雨天,嵐といった設定が可能。データは1次元で順番に並んでおり,もちろん,中途の状態を指定すれば,補間した結果が返ってくるようになっているという。
デモで示されたのは,昨年公開された「METAL GEAR SOLID GROUND Zeroes」のムービーにあったシーンで,天候指定だけを変更したものだ。つまり,雨だったものが晴天になっている。暴風でテントが揺れたりと,少しおかしな部分がないわけではないが,映像自体はまったく破綻がないことが,下に示した写真から見て取れるだろう。
また,カメラ処理では自動露出補正機能も搭載されていることが明らかになった。
この部分ではライティング成分だけに着目した処理が行われているとのこと。実際のカメラと同様に,画面全体の明るさを基にした露出補正を行うこともできるのだが,それだと素材の色の影響を受けるため,素人が撮影したような映像になるのだという。レンダリング処理では,素材の色に左右されないライティングだけの情報を簡単に参照できるので,CGならではの正確な処理が実現できたそうだ。
そのほか,レンズフレアやフォーカス遷移,被写界深度など,各種カメラ系のエフェクトも実装されている。
小島プロダクションは,世界に通用するソフトウェア技術とゲームデザインで頂点を狙う
さて,これらの機能を持つ強力なエンジンを使って小島プロダクションが目指すのは,以下の2点だ。
- 物理的な正しさ
- 魅力的な絵作り
まずはリアルな表現を可能にすること。そのために観察や計測を繰り返して精度を上げていく方向だ。その一方で,「いくら正確でも,絵として魅力がなければ,ただのコピーに過ぎない」と多胡氏は語り,両要素の両立を目指しつつ,両者がぶつかった場合にはアーティステックな表現を優先すること,そしてそのため,作品として仕上げるにはアーティストの力が不可欠であるとの見解を示していた。
確かに,4年前から開発していたエンジンのためか,仕様自体は最先端というほどでもない。現在では一般的な技術が多く採用されている印象も受ける。
「FOX ENGINEをもって,世界の頂点を狙う」と,小島氏は述べる。最新世代の武器を手にした氏が,どのようなゲーム体験を提供してくれるのか,今後のMGS5情報に注目したい。
「Metal Gear Solid V: The Phantom Pain」ティザーサイト
Game Developer Conference公式サイト
- 関連タイトル:
METAL GEAR SOLID V: THE PHANTOM PAIN
- 関連タイトル:
METAL GEAR SOLID V: THE PHANTOM PAIN
- 関連タイトル:
The Phantom Pain
- この記事のURL:
キーワード
(C)2013 Konami Digital Entertainment
(C)2013 Konami Digital Entertainment