ニュース

【GDC 2013】Activision R&Dの次世代グラフィックス研究セッション

3Dキャラクターは実写と区別がつかない次元に突入する!

3月25日〜29日開催(現地時間)

会場:San Francisco Moscone Center

 GDC通常セッションの開会となった3月27日、Activision Blizzardは、同社の研究開発部門であるActivision R&Dが制作したリアルタイムの3Dキャラクターレンダリングデモ映像をYouTubeを通じて公開した。

 まずはこちらの映像をご覧いただこう。

【Activision R&D Real-time Character Demo】
果たして実写かCGか。

 近年、大手ゲームスタジオがこぞって次世代に向けた研究開発を進めている。国内ではスクウェア・エニックスの「Luminous Studio」、カプコンの「Panta Rhei」、KONAMIの「FOX ENGINE」など、ゲームエンジンの形で広く存在を知られているものも出てきている。

 その流れでいうと、今回Activision R&Dが公開した映像は、より研究色が強い。ゲームエンジンに搭載されるとか、ゲームで使われる予定などの具体的な話はなく、Activision R&Dによるキャラクターレンダリングの研究成果を純粋に伝えるものなのである。

 その技術的詳細が、GDC 2013で行なわれたセッション「Next Generation Character Graphics」にて明かされた。登壇したのはActivion BlizzardのテクニカルディレクターJorge Jimenez氏と、R&Dディレクター Javier von der Pahlen氏。「これはGeForce GTX 680上で180fpsで動作しているものです」として、上掲の映像と同じものをセッション内で披露している。

 公開された映像は、フォトリアルをうたう数々の最先端ゲームエンジンの映像と比較しても頭ひとつ抜けている。無言で見せられたら実写だと信じて疑わわないレベルだが、DirectX 11世代のGPU上で動作していることは確かだ。つまり、次世代コンソール上でも可能になるはずのグラフィックスである。では講演の詳細を見てみよう。

人肌のディティールはミクロの領域へ!超高詳細スキンシェーダー

講演を行なったActivion BlizzardのテクニカルディレクターJorge Jimenez氏(右)と、R&Dディレクター Javier von der Pahlen氏(左)
本研究のグラフィックスは、現実が持つ不完全さまでを描く

 Activision Blizzardは世界でも有数のゲームパブリッシャーとして数々の人気タイトルを市場に送り出している。そのトップを張るのがご存知「Call of Duty」シリーズということもあり、フォトリアルなグラフィックス技術の追求に大きな意欲を持っていることは当然といえるだろう。その中でも特にカッティングエッジな部分を担っているのが今回の発表を行なったActivision R&Dということになる。

 冒頭、「本発表はR&Dの成果を反映したものであり、実際のゲームなどには関係ありません」との趣旨で断りを入れた上でプレゼンテーションが進められた。まずは超リアルな人肌の表現についてが話題だ。

 Jimenez氏は、「現実世界に完璧なものはありません。したがって、あまりに完璧なレンダリングは非現実的に感じられるのです」として話を進める。いわゆる「不気味の谷」についての問題だ。高詳細な3Dモデルを正確に描き出すだけでは、リアルなのに何かが足りないと感じられて、却って不気味に見えてしまうというわである。

 そこで肌シェーダーの詳細が明かされていった。そのコンセプトは「現実世界の不完全さをいかに表現するか」ということだ。本公演では、その実現のために試された様々なテクニックが紹介されている。本稿ではその中から特に印象的だった部分をお伝えしたい。

フォトリアルとは突き詰めると、不ぞろいなものは不ぞろいに、美しくないものは美しくなく描くというということかもしれない。そのためには、理想状態を描くことを想定したシェーダーだけでは力不足だ。
スキンシェーディングの構成要素
肌の微細構造を表現するマイクロジオメトリ

 基本的なスキンシェーディングの構成は、フォトリアルな人肌表現を実現するにあたってよく使われるテクニックの延長線上にある。肌表面の微細な凹凸を反映する双方向反射率分布関数(BRDF)に基づくスペキュラー反射、皮下拡散反射(SubSurface Scattering:SSS)、大局照明(Global Illumination: GI)とアンビエントオクルージョン(Ambiet Occlusion: AO)が代表的な構成要素となる。

 特に肌の凹凸感を出すスペキュラーにはいくつもの工夫が加えられているが、通常よりも細かい凹凸感を出せる特殊なBRDFを使用している点に注目したい。毛穴レベルどころか、細胞レベルのディティール感を生み出しているのだ。顔全体が画面に入りきらないほどズームインした場合にその違いが良くわかる。

 このディティール感を生み出すため、顔のテクスチャの解像度はなんと2,048×4,096という巨大なものになっている。1テクセル24ビットを非圧縮で格納するなら法線マップだけで24MBのテクスチャデータになる。もっとも、最近の研究開発の成果で、UV配置の工夫を行なうことで1,024×2,048のテクスチャでほぼ同等のディティールを実現できるとのことだが、それでも現行世代のコンソールではちょっと考えられない解像度だ。

通常のスペキュラーと、本研究におけるスペキュラーの違い。肌の細かな凹凸がよくわかる
サンプリング座標のジッタリングルール
細かな凹凸がある程度クリアなままに残される

 肌のやわらかな透明感を表現する皮下拡散反射は、スクウェア・エニックス技術推進部のテクノロジーデモ「Agni's Phylosophy」で採用されたものと同じ方向性で、いったんフレームバッファにレンダリングした肌ピクセルに対し特定のルールでサンプリングを行ないブラーをかけて合成する、スクリーンスペースベースの手法で実装されている。

 ただし本研究では、肌の細かな凹凸のディティールをより良く保つため、サンプリングルールに一工夫。原理的には、中心点からの距離に反比例してサンプリング数を減らすというもものだ。これにより微細な凹凸がブラーで潰れてしまうことを避けつつ、処理時のキャッシュヒット効率も向上するという。

皮下拡散反射OFFとONの比較。比較的違いがわかりやすい

 こういったディティールの表現は、キャラクターが画面に大きくズームインされた際に限って利用することを前提としている。そこで、キャラクターからカメラが離れて小さく表示されるような場合には、異なるレンダリングルールを適用する。

 例えば、ミクロレベルのBRDFのために必要な超高解像度の法線マップは、ずっと低解像度のラフネスマップ(表面のザラザラ感を示すパラメータを格納したテクスチャで、スペキュラーの拡散具合を大雑把にコントロールする)に置き換える。このあたりの発想は、これらの技術を将来的に実際のゲームで利用するつもりだからこそ出てくるのだろう。

実写とレンダリングの結果を比較するスライドがたびたび紹介されたが、言われなければどちらが実写でどちらがCGなのか全くわからない
背景光の透過要素も複数のアルゴリズムが実装されている

表面のかすかな潤いまでを描き出す、こだわりの眼球シェーダー

本研究における眼球表現
眼球表面用の法線マップとハイトマップ

 本研究でさらに強烈なこだわりを感じられるのが眼球の表現だ。他の先進的なゲームエンジンと同じく、本研究ではキャラクターにしっかりとした眼力を与えることをひとつのテーマとしているが、その追求度はちょっとこれまで見たことがないレベルなのである。

 中でもポイントとなるのは、眼球表面の細かな凹凸の表現。眼球はパッと見でおおむね球体だが、ミクロレベルでは完全にツルリとしているわけではない。ミクロレベルの凹凸が存在する。このため、眼球を理想球体として簡単に写りこみを描画すると、ビー玉のような無機物に見えてしまう。

 本研究ではこれを避けるため、眼球表面の微細な凹凸を示す法線マップとハイトマップを用意している。それをもとに写りこみのテクスチャにディストーションを加えることで、眼球表面の微細なゆがみを描き出している。

単なる鏡面反射と、反射に適度な歪みを与えた場合の違い。目の形がより自然に感じられるのはどちらだろうか
目玉の研究。これは実写
これはリアルタイムCG
水分の層を表すジオメトリ

 次にこだだわりが感じられるのは潤いの表現である。生物の眼球には常に涙腺から水分が補給されている。当然、水は流体なので重力にしたがって流れ落ちるが、目の表面を薄く覆うような小さなスケールでは、分子間力が生み出す界面張力の影響で水分子留まり、薄膜ができる。これを意識したレンダリングを行なう。

 具体的には、潤い具合を低・中・高にわけ、それぞれに対応したWetness Geometry(潤いジオメトリ)をあらかじめ用意しておく。このジオメトリは、まぶたと眼球の接触部分に厚く集まる水分の形状を再現したものだ。目に写りこむ光を描画する際、このジオメトリを基準にすることで、水の層の存在が可視化され、ウルッとした眼球の表現ができあがるのだ。

 また、このあたりの光の反射には、専用のオクルージョンマップを用いることで、まぶたの厚みやまつげによって生じる陰影を再現し、顔面全体の質感にうまくなじませている。

潤い成分のありなし比較。なしのほうを見ていると、ドライアイではないかと心配してしまう。こういう小さな違和感が解消されることで、不気味の谷を越えていくのだろう
眼球表面の反射について、専用のオクルーダーテクスチャでマスクすることで、まぶたとの境界部分をうまくなじませている
上掲のほかにも、水晶体による屈折や、毛細血管の充血など多くのトピックが語られた

 このほかにもたくさんのテクニックを用いて眼球は描画されているが、単体で技術要素のON/OFFを切り替えたら、パッと見で違いがわからなようなものがとても多い。本研究では、そのような「ちょっとした違い」を見過ごさず、幾重にも重ねることで、従来の眼球表現から大きな飛躍を果たしていることがわかる。

 それだけ念入りに研究を重ねているためか、まだキャラクターレンダリングに必要な要素をすべて網羅したわけではないようだ。Jimenez氏は将来の課題として髪とまつげといった体毛表現を挙げている。言われてみれば、デモに登場する人物は坊主頭である。

 このような研究成果が実際のゲーム製品に生かされる時期はいつになるだろうか。少なくとも、今年末に見込まれる次世代コンソールの登場に前後して、少しづつにでも実践投入が図られることは期待できる。今回のデモはGeforce GTX 680上で180fpsで動作していると明かされたとおり、すでに広く利用できる実行環境で実現しているものだからだ。

 次世代のハイエンドゲームグラフィックスは、もはや実写と区別することすら難しいものになる。そこで描かれるゲーム体験や物語はどのように感じられるものになるだろうか。それを確かめられる日の到来がとても楽しみである。

 今回のセッションではフェイシャルアニメーションについても語られている。イメージベースドのフェイシャルキャプチャで非常に高詳細なアニメーションデータを作成し、それをゲーム内では通常のボーンアニメーションで再生できるよう変換をかける。ゲーム内では、皮膚表面に与えられるストレスを頂点レベルでシミュレートし、ブレンドするテクスチャを変更することで、表情の変化による自然なシワの生成を表現しているなど。

(佐藤カフジ)