イベント
[CEDEC 2016]一新されたエンジンが描く「龍が如く6」のグラフィックス。PS3時代から最新作までの開発史を開発者が語った
2016年12月発売予定であるシリーズ最新作「龍が如く6 命の詩。」(以下,龍が如く6)は,シリーズ初のPlayStation 4(以下,PS4)専用タイトルとなり,グラフィックスエンジンを一新するのが,技術面におけるトピックとなっている。
CEDEC 2016の初日である8月24日に行われたセッション「技術から語る『龍が如く』の10年〜今世代で何が変わるのか〜」は,これまであまり公表されることのなかった龍が如くシリーズの技術面について,これまでを振り返りながら,新作におけるグラフィックスや物理エンジンの詳細を語るものになっていたので,本稿ではその概要をレポートしたい。
龍が如くシリーズの技術を振り返る
冒頭でも触れたが,龍が如くシリーズの1作目は,PlayStation 2(以下,PS2)時代のタイトルだ。それ以降,最新作である龍が如く6まで,10年以上にわたって,ほぼ毎年,新作が継続的にリリースされ続けているというのは珍しいのだが,それだけでなく,「プログラムの開発を同じチームが手がけてきたことも,他(のタイトル)とは違う点ではないか」と厚氏は述べていた。実際,PlayStation 3(以下,PS3)時代の1作め,通算では3作めとなる「龍が如く 見参!」以降で,同じチームがプログラム開発を担当し続けているそうだ。
厚氏が語った特徴的な要素を拾ってみると,3作めの時点で,ライトプローブベースの環境光を実装していたことがポイントの1つだ。龍が如くシリーズは,街が舞台になることが多いタイトルなので,環境光の表現は重要だったのだろう。
また,影の描画には,当時は非常によく使われていたステンシルシャドウボリューム技法を採用していたそうだ。物理エンジンには,これも当時はよく使われていた「Havok」を利用していたという。
2009年リリースのシリーズ通算4作めとなる「龍が如く3」では,グラフィックスエンジンにもかなり大きな変更が加えられている。
とくに重要なのは,龍が如く 見参!では1280×720ドットだったレンダリング解像度を1024×768ドットに下げ,エッジフィルタとアンチエイリアシングも省いた点だ。
前作より技術的に後退しているように思えるが,「せっかくハイデフ(高解像度)になったのにボケてるではないか,と(社の)内部で非常に不評だった」(厚氏)という理由により,エッジフィルタやアンチエイリアシングを外すことになった。そのうえで,3作めでは頂点ごとに計算していた点光源を,ピクセルシェーダへと変更したという。これによって,3作めでせっかく作った法線マップが画面では潰れて見えてしまっていたのが,改善できたそうだ。
また,龍が如く3から,物理エンジンを内製のものに切り替えているとのことだ。
面白いのは,2010年にリリースされたシリーズ5作めとなる「龍が如く4 伝説を継ぐもの」(以下,龍が如く4)では,ボケるからという理由でせっかく外したアンチエイリアシングを2x MSAAで実装し直したこと。これは,4作めのリリース後に「(映像が)ジャギってるよね,という声が出た」(厚氏)からだそうだ。歴史のあるシリーズだけに,いろいろと紆余曲折があるのだなと実感できる話である。
ただ,龍が如く4で初めて実装したスクリーンスペースリフレクション(Screen Space Reflection)は,MSAAと排他になる仕様だったそうで,本作冒頭のシーンではMSAAが効かなかった。そのため,「誰も(MSAAに)気づいてくれなかったという悲しい思い出がある」(厚氏)。
「龍が如く 維新!」(PS4 / PS3)は,シリーズで初めてPS4に対応したが,ここでのトピックは可変フレームレートの採用だそうだ。「パフォーマンスが非常に厳しい状態になっていた。だが,可変フレームレートなら,多少フレームが落ちてもアクションが厳しくないシーンで実用になると考え,導入した」(厚氏)とのことである。
また,PS3世代の1作めである龍が如く 見参!から,シリーズ通算7作めとなった「龍が如く5 夢、叶えし者」まで残っていたステンシルシャドウボリュームを廃止ししたのも,このタイミングだ。龍が如く 維新!の頃には,シャドウボリュームが処理速度の足を引っ張っていたそうで,そのために「より今風の,カスケードシャドウマップに切り替えた」と厚氏は振り返っている。
龍が如く 維新!に続いて2015年3月に登場した「龍が如く0 誓いの場所」(PS4 / PS3,以下 龍が如く0)では,アンチエイリアシング技法としてFXAAを採用した。この理由は性能面ではなく,「もともとPS3を基準に開発していたタイトルなので,PS4では(映像が)クリアになりすぎてしまったため,FXAAを導入し(て,表現を柔らかくし)た」とのことだ。新世代機と旧世代機のマルチプラットフォームタイトルならではの対応といったところか。
ちなみにここで,グラフィックスエンジン開発はいったん区切りを迎えることになったという。
新規に設計した龍が如く6のグラフィックスエンジン
グラフィックスエンジン開発が一区切りとなったのは,もちろん,冒頭でも紹介したとおり,龍が如く6では,エンジンを新開発することになったためである。
新開発を選択した理由について,厚氏は明確にしなかったのだが,龍が如く6はPS4独占タイトルになることが決まっており,開発においてPS3対応を考慮する必要がなくなったため,グラフィックスエンジンを一新するいい機会になったということだろう。
実際に厚氏も,「10年にわたって使い続けたエンジンをフルリファイン(一新)することによって,光源数の制限といったことがなくなり,ようやく新たな境地に立てたように思う」と述べていた。
さて,龍が如く6で開発した新しいグラフィックスエンジンだが,最も大きな特徴は,物理ベースレンダリング(Physically Based Rendering,PBR)を導入したことだという。また,マルチスレッド対応のフレームワークを導入したことにより「ユーザー(CPU)コアの8割以上を使い切っている」(厚氏)というほど,処理効率を向上することができたそうだ。
さらに,Compute Shaderの積極的な利用により,プロシージャルなエフェクトを従来世代比で大幅に増やせているのも特徴とのことである。
新たに導入した物理ベースレンダリングでは,反射のライティングモデルとして「GGX」(Trowbridge-Reitz)を採用し,「Albedo」「Shininess」「Specular reflectance」「Emissive」という4種類のパラメータをアーティストが設定する形になっているという。
中間バッファとなるG-Bufferは,FP16によるRGBA×3という「非常に贅沢な構成」(厚氏)を採用。また,光の透過率(Transmittance)とマテリアルフラグを,1つのパックとして指定しているのが特徴的ではないかと,厚氏は説明していた。
ライティング手法では,32×32のタイルベースでライトリストを生成するという,「ごく一般的な手法」(厚氏)を利用しているとのこと。ただ,半透明処理はこれとは別に,Compute Shaderでオブジェクトごとにライトリストを生成しているそうだ。
技術面で龍が如くシリーズらしいのは,ライトの一種として,特殊な「Tube Light」を用意しているところだろう。「夜の街のシーンには大量の光源があるので,それを1つ1つ処理していると,とても大変」(厚氏)ということから,線分上にスポットライトが並んだような形状のライトを作り,それらをまとめて扱えるようにしているそうだ。
また,狙ったところを暗くして影を落とすための擬似光源として,「Dark Light」なる特殊なライトを導入している点も,夜の街を表現するのにこだわったゲームならではといえるだろう。
厚氏がサンプルとして示した下のシーンだと,およそ6000〜7000の光源があるそうだが,画面外の光源などが省かれることにより,実際に計算している光源は600〜700程度だという。セットアップにかかる時間は約0.8msだが,最終的なライティング処理には10msくらい要しており,「決して(処理の負荷が)安くはない」と厚氏は打ち明けている。しかし,これによって「大量の光源が(本作で)ようやく処理できるようになった」(厚氏)ということだ。
講演の概要は以上となる。
龍が如く6の新しいグラフィックスエンジンは,「龍が如く 極」(PS4 / PS3)封入特典として配信中の先行体験版で実装済みとのこと。体験版単体で入手できないのは残念だが,体験可能な人は,とくにライティングに注目してプレイしてみると,エンジンの進化を確認できるかもしれない。
龍が如く6 公式Webサイト
CEDEC 2016 公式Webサイト
4GamerのCEDEC 2016関連記事一覧
- 関連タイトル:
龍が如く6 命の詩。
- この記事のURL:
(C)SEGA