特集
西川善司の3Dゲームファンのための「WITCH CHAPTER 0 [cry]」講座
~極秘裏に進められたスクエニのDX 12技術デモの全貌に迫る
(2015/5/29 06:00)
Microsoftは4月末、開発者向けカンファレンス「Build 2015」をアメリカ・サンフランシスコ市で開催し、このカンファレンスの基調講演内で「DirectX 12世代が実現する次世代リアルタイムゲームグラフィックス」として「WITCH CHAPTER 0 [cry]」(以下、WITCHデモ)を公開した。
このWITCHデモを開発したのは、日本では国民的RPGとして名高い「ファイナルファンタジー」シリーズの開発元のスクウェア・エニックスだ。こうした海外の開発者向けカンファレンスでの「次世代グラフィックスのお披露目」は、2000年代になってからは、ほぼ海外のゲームスタジオ(EPIC GAMES、CRYTEK、ID SOFTWARE、ACTIVISION、EA DICE)が務めてきたこともあって、日本の開発会社の作品が前面に押し出されるのは良い意味で異例である。
このBuildカンファレンスの日本版ともいえる「de:code 2015」カンファレンスが5月26日、日本・東京都内で開催されたが、その基調講演内でもやはり、このWITCHデモは紹介されることとなった。
今回、この開発チームのコアメンバーと、直接、お話する機会が得られたので、このWITCHデモの開発秘話をレポートすることにしたい。
開発経緯とWITCHプロジェクトの全貌
まず、このWITCHデモは、実質的な開発はスクウェア・エニックスが行なっていることは間違いないのだが、開発にあたっては、MicrosoftとNVIDIAが全面的な協力を行なっている。
WITCHデモの原形(プロトタイプ)に相当するものはDirectX 11ベースでスクウェア・エニックスで既に先行して開発を進めていたようで、実質的な「DirectX 12版としてのWITCHデモ」の開発プロジェクトが始動したのは2014年の12月頃だという。
開発を担当したのは、実質的な「ファイナルファンタジーXV」開発チームである「BD2」と呼ばれる第2ビジネス・ディビジョンと、スクウェア・エニックスの新世代ゲームエンジン「Luminous Studio」を第2ビジネス・ディビジョンと共同開発しているテクノロジー推進部の2部門。
開発の主たる動機は、スクウェア・エニックス側としては、「次世代WindowsであるWindows 10を支えるグラフィックスAPI基盤であるDirectX 12技術への先行研究と評価」だったそうで、「社外技術を社内に取り込んでいくための研究開発プロジェクト」の一端という位置付けでもあった。つまり、結論から言えば、WITCHデモは、直近の未発表「ファイナルファンタジー」新作の予告映像等ではなく、「純然たる技術デモ」であるということだ。
【田畑氏】今回のWITCHデモは「ゲームグラフィックスの括りや縛り」から突き抜けて「リアルタイムグラフィックスでどこまで表現できるのか」を探るプロジェクトでした。誤解して欲しくないのは、直近の新作ゲームでWITCHデモと同等の表現がすぐに実現されるということではないんです。
そうは言っても、ガッカリすることはない。
ほぼ同コンセプトで開発され、2012年に電撃的に発表された「AGNI'S PHILOSOPHY」は「純然たる技術デモ」であったが、翌年2013年には、この技術デモで培われた技術をフィードバックさせた「ファイナルファンタジーXV」が発表されている。今回のWITCHデモの中で垣間見られる要素技術や表現の数々は、将来のゲームプロジェクトに、そのままではないにせよ、活かされていく可能性は高いのだ。
話を戻すと、2014年12月にスクウェア・エニックスがMicrosoftとNVIDIAに本プロジェクトの存在を明かして、技術的サポートを打診した。
スクウェア・エニックスが、MicrosoftとNVIDIAに協力を仰いだのはなぜか。これは話としては明解で、DirectX 12ベースのアプリケーションを開発するには、DirectX 12が使える環境として未発表のWindows 10が必要であり、さらには未発表のDirectX 12対応のGPUドライバが必要だったからである。
AGNI'S PHILOSOPHYの開発実績のあるテクノロジー推進部と、「ファイナルファンタジーXV」開発チームのBD2によるタッグチームからの提案となれば、MicrosoftもNVIDIAも断る理由はなかったのだろう。むしろMicrosoft側は、APIとして仕様は固まったものの、現実的なプロジェクトで揉み切れていないDirectX 12の洗練度を上げるためにもスクウェア・エニックスの申し出は歓迎すべきものだったし、NVIDIAにとっても、実地訓練強化中のDirectX 12版GPUドライバを日本のトップスタジオに評価活用してもらえることは願ってもないチャンスと映ったはずである。かくしてスクウェア・エニックスが打診した協力要請は、MicrosoftのWindows 10開発チーム、DirectX 12開発チーム、そしてNVIDIA側からも2つ返事に近い即答を得られることになり、翌年2015年1月より実質的な開発がスタートする。
【大西氏】今回のWITCHプロジェクトでは、日本マイクロソフトとして、スクウェア・エニックス様と米国Microsoftの開発コアメンバーとの架け橋的な役割を果たしました。スクウェア・エニックスさん側からの熱意はもの凄いものがあり、これを本国Microsoftに伝えきれるように努力しました。結果的に、これは伝わることになり、2点は線として結ばれました。
スクウェア・エニックス側は、2014年12月時に開発者向け評価版のWindows 10の環境を導入できたものの、DirectX 12ベースの開発環境は極めて限定的な仕様だったこともあり、アートワーク制作はDirectX 11ベースの環境で行なうこととなった。そして、これと並行してプログラマを初めとしたエンジニアチームは、スクウェア・エニックスの自社ゲームエンジン「Luminous Studio」のランタイムのDirectX 12対応化を進めることとなった。
【岩田氏】今回のWITCHデモのゲームエンジンは、言うなればLuminous Studio Ver.1.5のDirectX 12版に相当します。Ver.1.5とは、3月に「FINAL FANTASY 零式 HD」に付属させた「ファイナルファンタジーXV」の体験版のエンジンバージョンと同じです。これは、Luminous StudioにおいてDirectX 11版とDirectX 12版がVer.1.5以降分岐していくということではなく、あくまでWITCHプロジェクトのための分岐措置とご理解下さい。
その後、3月、サンフランシスコで行なわれたゲーム開発者会議(GDC)の会期中に、WITCHプロジェクトのコアメンバーはMicrosoft Windows 10開発チーム、DirectX 12開発チーム、NVIDIAのコアエンジニアと顔合わせを果たし、この時に、4月末に開催されるBuildカンファレンスの基調講演でDirectX 12解説パートのデモコンテンツとしての採用をほのめかされたそうだ。「ほのめかし」止まりだったのは、別に意地悪をされたわけではなく、マーケティング側面の強い基調講演内容は会期直前まで幾度となく内容変更を受けるため「確約は出せないが……」というのが本当のところだったようだ。
スクウェア・エニックス側は、2014年12月時に開発者向け評価版のWindows 10の環境を導入できたものの、実際に実動できるNVIDIAの最新DirectX 12版GPUドライバと、当時発表直後のハイエンドGPUである「GeForce GTX TITAN X」を入手できたのはGDC閉幕後だったそうで、実機での動作確認を織り交ぜた開発は実質約7週間しかなかったとのことである。
4月に突入してからは、NVIDIAのデベロッパー テクノロジーエンジニア竹重雅也氏も、スクウェア・エニックスに出向し、WITCHプロジェクトのエンジニア達と机を並べる形で開発サポートに参加した。
【竹重氏】今回のWITCHプロジェクトでは、4-wayのSLI構成のGeForce GTX TITAN Xを用いてのAFR(Alternative Frame Rendering:各フレームの描画を各GPUにオーバーラップさせて先行並列実行させてパフォーマンス向上を狙う手法)による描画を行なっています。DirectX 12の新機能「Mutliadapter」(各GPUを目的別に使い分けられるDirectX 12の目玉機能。Windows Vista以降でもデスクトップ画面を出すだけならば異なるメーカーのGPUを組み合わせることができたが、Windows 10ではレンダリングやGPGPUの次元で異なるメーカーのGPUを同格に扱えるようになった)機能は活用していません。時間が限られていたこともあり「DirectX 12版では、DirectX 11版よりもこれだけ速い」といったようなメッセージも特に打ち出していません。
エンジニアチームは、DirectX 11版のLuminous Studioランタイムを、DirectX 12版へ移植する作業を行なったわけだが、これは想像したほど、難度が高いものではなかったようだ。
【イバン氏】DirectX 12の全機能を活用してエンジンの再設計を行なったわけではなく、ランタイム部分のストレートな移植作業だったこともあって、Luminous StudioのランタイムのDirectX 11版のDirectX 12対応化工程は約3週間ほどで終えています。自分にとってはそれほど難度の高いものではなかったのですが、自分としては、時間があればもう少し最適化を進めたかったところです。
こぼれ話になるが、WITCHデモのプロジェクトメンバーは、結局のところ、現地入りしてBuildカンファレンスの基調講演開幕直前まで、WITCHデモが本番に採用されるかどうか知らされていなかったとのことである。
上は、実際に当日の基調講演中のWITCHデモが取り上げられたパートの抜粋になるが、映像を見ると田畑氏が挨拶している冒頭動画がある。こうした動画素材までを用意していて「本番に採用されるかどうか知らされていなかった」というのはおかしいのではないか……そう思った人もいるかも知れない。しかし、こうした挨拶動画は本番採用を想定して事前に制作しているだけで、実際に流れない場合もあるのだという。そう聞かされていたWITCHプロジェクトのメンバーは、実際の基調講演の中でWITCHデモが取り上げられるシーンを現地で目の当たりにした、その瞬間に、無邪気に大喜びしてしまったそうだ。
【岩田氏】このWITCHプロジェクトは、スクウェア・エニックス社内でもごく限られた一部の人間しか存在を知りませんでした。それだけに、社内でもこのニュースに驚いた人も相当いたようです。
【竹重氏】NVIDIAでも同様です。広報の人間も知らなかったはずです。かなりの極秘プロジェクトだったんです。自分は元々ゲーム業界のエンジニア出身ですから、楽しかったですよ。
【大西氏】日本のゲームスタジオの作品が、ゲーム括りではないMicrosoftのビッグカンファレンスで、「最新技術デモ」という扱いで取り上げられるのはほぼ初めてではないかと思います。
【田畑氏】我々が想像していた以上のさまざまな方面の人に観て頂けたこともあって、その後の各方面からのアプローチが凄いですよ。色んな意味でいい経験となりましたね。
WITCHデモのGPU負荷は3,000万ポリゴン級
それでは、ここからはWITCHデモの技術解説に移ることにしよう。
まず、WITCHデモが動かされていたWindows 10搭載PCのハードウェアスペックだが、以下のように発表されている。ほぼ同一スペックで何台かのバリエーションがあるようだが、de:codeの基調講演で用いられたのはパソコン工房製。特注品だが、問い合わせベースで注文にも応じるという。今回のデモ機の価格は120万円程度になる。
WITCHデモ機の主な仕様 | |
---|---|
CPU | Core i7-5960X |
チップセット | Intel X99 |
メモリ | 64GB |
ストレージ | SSD 240GB |
GPU | GeForce GTX TITAN X×4-way SLI |
電源 | 1,500W Corsair AX1500i |
今や、先端ゲームグラフィックスは、ポリゴン数に限っては、映画用CG(含むプリレンダーCG)とほぼ同等なので、ポリゴン数がCGのクオリティを言い表さなくなっているが、参考値にはなるので、今回のWITCHデモのポリゴンスペックにも言及しておこう。
主人公の女性は、今作もAGNIという女性の魔法使いキャラクターで、2012年に発表された技術デモAGNI'S PHILOSOPHYと同一人物である。
【岩田氏】ただし、キャラクタモデル自体は異なっています。AGNI'S PHILOSOPHYでは、事前に制作されたプリレンダーCG版のモデルをリアルタイムCG向けに最適化したモデルを用いていましたが、WITCHデモでは、この時制作されたプリレンダーCG版のモデルをほぼそのまま用いる方針としました。
このAGNIモデルのポリゴン数は全体で約1,100万で、内訳は顔面、身体、アクセサリーなどで300万、毛髪で600万、AGNIが着用している鳥の羽製ファードレスが約200万だ。PS4/Xbox One世代のゲーム機だと、ゲーム画面全体で1,000万ポリゴン前後が1つの目安となっているので、端的に言うと、AGNI 1人の描画で、PS4/Xbox Oneのグラフィックス性能を使い切ってしまうことになる。
レイトレーシング法とは違い、現在のGPUで採用されているラスタライズ法グラフィックスパイプラインでは、影生成は自動で得られない。そこで別途、影生成レンダリングパスを走らせる必要があるが、この負荷として600万ポリゴン分が上乗せされる。AGNIモデルが1,100万ポリゴンなのに、その影生成がなぜ1,100万でなく600万かと言えば、影生成元モデルには若干クオリティを落としたモデルが使われるため(と言っても600万ポリゴンモデルがとても低クオリティとは言えないわけだが)。
WITCHデモは、冒頭の山麓のカットを除けば、それほど大がかりな背景セットはないが、それでも背景モデルも1,100万ポリゴンで構成されている。つまり、WITCHデモは、GPU負荷としては概算でAGNI 1,100万+影600万+背景1,100万の2,800万ポリゴン級ということになる。
なお、レンダリング解像度は3,840×2,160ドットの4K解像度。ただし、表示にあたっては、スーパーサンプリングを施した上で1,920×1,080ピクセルのフルHD解像度相当に縮小している。これはどうしてなのか。
【岩田氏】WITCHデモは、リアルタイムCGデモです。プリレンダーCGの世界だと1ピクセルに対してさまざまな陰影処理を繰り返し課して品質を高める手法が使えるのですが、リアルタイムCGではそうもいきません。言うなればWITCHデモにおける「4K→フルHD」処理は、空間的に分散して行なわれた陰影計算を1ピクセルに集約させて品質を高める効果を狙っているんです。
なお、この「4K→フルHD」処理系は、いわゆるフルスクリーンアンチエリアシングに相当するものである。なので、副次的な効果として、ジャギーを低減させるアンチエイリアス効果もあったとしている。現実世界に即した輝度分布を再現する「ハイダイナミックレンジレンダリング」と後述する「物理ベースレンダリング」の組み合わせによって生じる1ピクセル未満の時間方向のギラツキノイズ(Pixel Shimmer現象)も、この「4K→フルHD」処理によって誤差拡散が行なわれるため、低減できている。一見無駄に見える「4K→フルHD」処理にも奥深い狙いがあってのことなのであった。
【田畑氏】AGNI'S PHILOSOPHYでは、リアルタイムCG向けに、4K解像度で制作されたテクスチャ類の解像度を落としていたりしていましたが、今回のWITCHデモではそういったことはしていません。テクスチャ表現にも妥協がないのです。
全て線分として生やした600万ポリゴン相当の毛髪
表現の細部も見ていくことにしよう。
主人公AGNIの毛髪は600万ポリゴンという説明だが、実際には、データ上ではポリゴンではなく線分の制御データの形で与えられている。
PS4/Xbox One世代になっても、毛髪は、毛髪テクスチャを適用した短冊のようなヒレポリゴンを頭髪に植え込んだ手法が主に用いられている。この手法はバナナリーフ法(「バナナの皮」法、または毛ヒレ法)と言われ、PS4/Xbox One用の「ファイナルファンタジーXV」においてもこの手法が採用されているのだが、今回のWITCHデモでは、この手法は用いず、実際の人間と同じく、1本1本の線分として毛髪を頭皮に植え込んでいる。AGNI'S PHILOSOPHYでは、前述の毛ヒレ法と今回の線分法の両方を併用したが、WITCHデモではプリレンダーCGと同じく、線分法だけを採用したのである。
線分表現手法としては高次曲線のNURBS(Non-Uniform Rational B-Spline:非一様有理Bスプライン)カーブを採用しており、3D CG制作ツールの「Maya」上で3Dモデリングする時点で与えていたデータをそのままDirectX 12版Luminous Studioランタイムに持って来ている。「毛髪600万ポリゴン」は、正確にはNURBSカーブの制御点が約600万あるというイメージだ。
AGNI'S PHILOSOPHYではこのNURBSカーブの制御点をバネで接続した上で基本的なバネ物理を適用した実装形態となっていたが、WITCHデモではそうしたことは行なわれていない。
【イバン氏】AGNI'S PHILOSOPHYでは、毛髪の増毛処理にDirectX 11のテッセレーションステージの「Isoline Tesselation」を採用していましたが、WITCHデモではテッセレーションステージ自体を活用していません。1本1本の毛髪は実際に600万制御点分の線分として植え込まれています。
なお、毛髪の陰影処理自体はAGNI'S PHILOSOPHYと同じだとのことだ。これについては筆者の過去記事「西川善司の3DゲームファンのためのAGNI'S PHILOSOPHY講座「不気味の谷」を渡りきる、次世代「ファイナルファンタジー」基準のリアルタイム表現力」を参照頂きたいが、簡単に言うと、Steve Marschner氏らがSIGGRAPH 2003で発表した論文「Light Scattering from Human Hair Fibers」を独自実装した形態となっている。
【岩田氏】今回は、主人公AGNIが着用している鳥の羽製ファー・ドレスの羽根も、羽根を構成するファー1本1本を線分で出してますよ。だから、羽根だけで200万ポリゴン相当なワケです(笑)。
WITCHデモにおけるライティング・シェーディングシステム
ほとんど見た目がプリレンダーCGそのもののWITCHデモだが、陰影処理自体はどのような実装になっているのだろうか。
これは、結論から言えば、AGNI'S PHILOSOPHY時から研究開発され、「ファイナルファンタジーXV」で実用化されている「物理ベースレンダリング」(物理ベースシェーダー)がほぼそのまま利用されている。
物理ベースレンダリング(PBR:Physically Based Rendering)とは、一言で言えば「エネルギー保存則」に則り、入射光の総和と出射光の総和が等しくなるようにライティング計算やシェーディング計算を実践する手法で、PS4/Xbox One世代のゲームグラフィックスでは「標準技術」となりつつあるコンセプトだ。PS3/Xbox 360世代のゲームグラフィックスはそうした基本原則を無視し、アーティストがそれぞれのセンスで勝手に陰影を調整していたため、そうしてできた映像はその固定照明条件、固定カメラ角度/軌跡でしかリアルに見えなかった。PBRでは、こうした手法を改め「物理法則を意識して陰影計算をし、陰影パラメータを調整しよう」とする規範である。
「ファイナルファンタジーXV」のPBRシステムでは、「マテリアルID」(材質ID)と呼ばれるID番号に対応した材質表現を行なう個別のPBR対応ピクセルシェーダプログラムを呼び出して「その材質特有の出射光」を算出する仕組みを採用している。岩、金属、木、革など、現実世界に登場するありとあらゆる材質の輝き、陰影は、その材質を表現するために個別に設計されたピクセルシェーダプログラムによって作り出されている。もちろん、半透明材質など、まだまたリアルタイムCG向けの実装では再現が「それなり」になってしまう材質もあるのだが、金属材質を含めた不透明材質の表現は、かなり良好な(プリレンダーCGに近い)品質が再現できているとされる。
【岩田氏】PBRは「物理的に正しい」んですけど、どうしても「妙に綺麗に出てしまう」瞬間もあるんですよね。WITCHデモは、アート表現の側面もあったので、アーティストがチューニングできる余地も与える仕組みも入れています。それは、主にフレネル反射関連ですね。
フレネル反射とは、材質面の見え方が視線に依存して変わる、いわゆる異方性反射の一種。例えば、水面や車のボディ面はかすめ見ると街の風景が映り込むが、視線に相対する面は水の底が見えたり、塗装色が支配的になったりする。こうしたフレネル反射は、ツルツルした光沢面に限らず、人肌、衣服、石にすら起こっている。ここに、物理法則を無視できるチューニングの余地を入れたと言うことのようだ。
WITCHデモにおいても、人肌、眼球などの表現についてはAGNI'S PHILOSOPHYと同等の技術が用いられているとのことである。詳細は、これまた筆者のさきほどの過去記事を参照頂きたいが、ここでも簡単に解説しておこう。
透過率は低いものの、人肌や眼球は半透明材質なので、ここに照射された光は内部に浸透して散乱して再び出てくることになり、これをリアルタイムに計算するのは不可能に近い。そこで「人肌に白いレーザー光を当てたときに、その照射点からどういう色分布で表皮から光が出て来るのか」の計測データを元に、普通に従来手法でテクスチャを貼って陰影処理をして描画したキャラクタモデルの人肌に対して変調をさせていく処理を行なう。この原形技術は、元々NVIDIAが開発した「Human Head」デモで最初に実用化された技術だったが、これをゲーム向けにActivision BlizzardのJorge Jimenez氏が画面のボカし処理に落とし込む形で、超軽量最適化。現在、広くゲームグラフィックスに活用されているという状況だ。
【岩田氏】今回は「泣く」がテーマだったので、眼球に関しては、毛細血管が赤く浮き出る「目の赤らみ」表現が追加されています。これは、新要素となっています。
Luminous Studioでは新開発の間接光表現(大局照明技術)が実装されており、これは「ファイナルファンタジーXV」にも実際に採用されているのだが、WITCHデモでは敢えてこれを採用せず、映画的な手法、もっと言えばピクサー的な手法で間接光を表現している。
具体的には、間接光に相当する光源を手動で置いているということだ。例えばだが、空の太陽から照らされる石畳からの照り返し光は、そうした照り返し光に相当する光を石畳側に置いている。
【岩田氏】WITCHデモは、映画と同じく「シーンが固定」かつ「演技も固定」であったので、映像品質を突き詰めるとこの手法が最良だと判断しました。この手法だと照り返し光からも淡い影を出せますし。一応システム的には、Luminous Studioが持つ間接光システムに切り換えることはできます。
映り込みについても、同様の理由で、リアルタイム生成された環境キューブマップ(6面体構造の全方位の映り込み表現用の鏡像テクスチャ)ではなく、オーサリング段階で生成した超高品位な環境キューブマップを採用しているとのことである。
【イバン氏】接地感を出すための陰(コンタクトシャドウ)生成には「Screen Space Ambient Occlusion」(SSAO)を活用しています。技術的には「ファイナルファンタジーXV」で採用しているものと同系ですが、4Kでレンダリングしているので深度バッファへのサンプリング数は多くなっています。主人公AGNIの顔面等の部位凹凸に生じる自己遮蔽の陰はAGNI'S PHILOSOPHYの時と同様に事前生成の焼き込みです。
WITCHデモの神髄は「ジオメトリキャッシュ」にあり!?
さて、WITCHデモで、多くの人が関心を寄せるのは「泣き顔のアニメーション」、「こぼれ落ちる涙」、「全身を侵蝕し始める黄金魔法」といったあたりの表現ではないだろうか。
実際、技術的に見て、WITCHデモの最もユニークな点はこの辺りの表現にある。
これは、最近のゲームグラフィックス技術で採用が進み始めている「ジオメトリキャッシュ」(Geometry Cache)技術を採用しているのである。ジオメトリキャッシュとは、簡単に言えば、「頂点情報のストリーミング再生」ということになる。
例えば、動画において、表示されるものは1枚1枚は静止画である。しかし、その静止画データが、どんどんやってくるので、前の静止画から置き換えて表示してやることで「動画」として見えるわけだ。ジオメトリキャッシュとは、この概念を3Dモデルに置き換えて連想すると分かりやすい。
つまり、ある瞬間に表示されているのは静止した3Dモデルだが、この3Dモデルを構成する頂点情報(イメージしにくければポリゴン情報と置き換えても可)がどんどん流れ込んでくるので、直前まで表示していた3Dモデルと差し替えて表示を切り換えていくのが、ジオメトリキャッシュと呼ばれる技術だ。
一般的なゲームグラフィックスでは、3Dモデル内部に仕込んだボーンを動かし、そのボーンの動きに3Dモデルの外皮ポリゴンが摂動させられて動くことでアニメーションをさせていた。これは、プレイヤーの操作に応じた多様な動きを動的に生成していくには悪くないシステムだ。ただ、ゲームグラフィックスにおいては3Dモデルに仕込めるボーンの数は有限個となるため、体の動きを付ける程度には満足がいくものの、複雑な人間の顔面の感情表現を行なうには物足りない局面が出てくる。ちなみに、ピクサー映画のキャラクタでは顔面だけに数千個のボーンが仕込まれているが、さすがに、そこまでのボーン数はとてもゲームグラフィックスに採用するのは難しい。
そこで今回のWITCHデモでは、プリレンダーCG品質のアニメーションを、そのまま、1フレーム単位で頂点情報ストリームとしてデータ生成してしまったというわけである。
【田畑氏】時間があれば、もちろん、従来のゲームグラフィックス的なボーン・スキニングのシステムに載せて最適化を図ることもできたとは思います。しかし、今回のように限られた時間内で最上位の品質を実現するためには適した技術選択だったと思っています。
【岩田氏】ジオメトリキャッシュは確かに力業的な手法ですが、局面によっては最良の技術です。例えばゲームシーンからシームレスにカットシーンに移行するようなドラマ演出で、プリレンダーCGクオリティの演技をさせるには有効な手段です。
ジオメトリキャッシュは、言わば「アニメーションだけのプリレンダー」と言うことができるかも知れない。ただ、レンダリング(ライティングや陰影処理)自体はリアルタイムに行なわれているので、カメラは自由に移動できるし、光源も自在に移動できる。テクスチャの貼り替えもできるし、人肌を石材質に変えるなどのマテリアル変更も可能だ。動き以外はリアルタイムなのだ。応用次第では面白い活用ができることだろう。将来的には動きにリアルタイムシミュレーションを合成する仕組みも不可能ではない。
実際、このジオメトリキャッシュ技術は、独CRYTEKがXbox One専用タイトルの「RYSE」で先行して実用化している。RYSEでは、大規模破壊シーン、繊細な顔面アニメーションや衣服のアニメーションで、このジオメトリキャッシュが活用されているのだ。
ジオメトリキャッシュ技術は、ハリウッド映画業界発祥の技術である「Alembic」が原典だ。Alembicとは、「スター・ウォーズ」シリーズで有名なジョージ・ルーカス氏の映画スタジオ「ルーカスフィルム」のCG制作部門「ILM」(Industrial Light & Magic)と「スパイダーマン」シリーズのCG制作で有名な「SPI」(ソニー・ピクチャーズ・イメージワークス)が開発したオープンソース型シーンファイル・フレームワークのことで、オーサリングした動き付き(アニメーション付き)のCGシーンをエクスポート/インポートするための仕組みだ。
この仕組みで生成されたアニメーション付き頂点情報データ(ポリゴンデータ)ストリームを「Alembic Cache」と言い、これを一般用語として呼称したものがジオメトリキャッシュなのである。
今回のWITCHデモでは、前述した「泣き顔のアニメーション」、「こぼれ落ちる涙」、「全身を侵蝕し始める黄金魔法」の表現以外に、衣服の揺れ、髪の揺れなど、ほとんどの動きはジオメトリキャッシュ技術が適用されている。逆にリアルタイムシミュレーションベースのものはアクセサリ類のみとなっている。
「1,100万ポリゴンのAGNIモデルのフレーム単位の動きが頂点データのストリーミング再生で動かされている」という事実を聞くと、このWITCHデモのGPU負荷の高さ、データ容量の多さは計り知れないものがある。
【竹重氏】4基の「GeForce GTX TITAN X」のGPU負荷は常に100%ですね。フレームレートはそれでも30fpsはキープできています。
今回の主人公AGNIのジオメトリキャッシュ技術によるアニメーションデータは5GBを軽く超えているそうで、このデータはWITCHデモのランタイムではメインメモリ側に置かれ、PCI Expressバスを通じてGPUにストリーミング伝送される構造となっている。Luminous Studioエンジンとしては、このデータはHDDやSSDなどのストレージ側にあっても良いし、GPU側のグラフィックスメモリ側にあっても対応できる設計となっているとのことである。
今回の取材では、ジオメトリキャッシュ技術は、今回はWITCHデモのための試験的に実装したような語り口であったが、高確率で、Luminous Studioの機能として新採用されるのではないだろうか。この技術を先行実用化しているCRYTEKもデータの圧縮に苦労しているようで、この辺りについてはまだまだ研究の余地があるのかも知れない。
ちなみに、Luminous Studioは、現在リリース済みの体験版「ファイナルファンタジーXV」では前述したようにVer1.5だが、製品版「ファイナルファンタジーXV」はVer.2.0ベースになるそうである。もしかすると、このジオメトリキャッシュ技術は、WITCHデモのプロジェクトの成果としてフィードバックされることがあるのかも知れない。
WITCHデモ自体が、今後、進化していくことがあるのかどうかも含めて、期待して続報を待ちたい。