連載
西川善司の「試験に出るゲームグラフィックス」(7)「人喰いの大鷲トリコ」の「リアルとアートの狭間」はこうして生まれた,前編
それだけに,当然のことながら,最新作「人喰いの大鷲トリコ」も,相当な期待感をもって,世界中から発売が待ち望まれ続けていた。
最終的な国内発売日は2016年12月6日だったが,振り返ってみれば,2009年の制作発表から7年である。本作の初期プロトタイピングが行われたのは2005年頃というから,ここを開発スタートとみれば,実に約11年の開発を経て誕生した作品ということになる。
今回は,そんな人喰いの大鷲トリコを取り上げてみたい。前編となる本稿のテーマは,グラフィックスのスペックと,レンダリングパイプラインだ。
その前に,約10年に及んだ開発期間を振り返る
本論に入る前に,長きにわたった開発期間を振り返ってもらうことにしよう。
最終的には発売された人喰いの大鷲トリコはPlayStation 4(以下,PS4)用だったわけだが,発表時はPlayStation 3(以下,PS3)用とされていた。開発が延びた理由はいろいろあったのだろうが,実際,どのような経緯があったのだろうか。この点について,開発会社であるジェン・デザインのアニメーションディレクター兼リードゲームデザイナーである田中政伸(たなかまさのぶ)氏は,次のように振り返っている。
実のところ,もともと想定していたゲームデザインやキャラクターデザインは,初期から,つまりPS3時代の時から大きく変わってはいないんです。ここまで開発が長く延びてしまったのは,そういったことよりはむしろ,技術面における問題がうまく解決できなかった影響が大きいですね。
最初期は,前作(=ワンダと巨像)のときから使い続けていた,チーム内製の独自エンジンで制作していたのですが,うまくいかず,PS3向けに開発していた時代の途中で,エンジンをゼロから開発し直しています。
結局,ソニー・コンピュータエンタテインメント(※当時。現ソニー・インタラクティブエンタテインメント)のハードウェア戦略上,プラットフォームをPS4に移すという決断を2012年に下し,そこで再度,エンジンをゼロから作ることになりました。
リリースされている完成版は,そのエンジンによるものです。
上田氏としては最後の最後までPS3版を出したい思いが強かったそうなのだが,「PS3版のメインメモリが少ない」という,PS3におけるゲーム開発においてよく言われていた問題以上に,フレームレート改善のほうが大きな問題として立ちはだかる。最終的に苦渋の決断を下し,2012年からは開発環境をPC上へ移すためのエンジン再開発が始まることとなった。
このときエンジニアから出てきた「PS3からエンジンへの移植期間」は4か月という見積もりだったそうだ。つまり,「開発の停滞自体は4か月で済み,そこからゲーム本編の開発を再開できる」という試算が出ていたことになる。
この試算を受けて上田氏はPS4へのエンジン移植に踏み切ったわけだが,再開発のスタートから制作再開まで,実際には2年11か月もの時間を要することになった。しかも,それでも完全な制作環境の復旧には至らなかったというのだから,いかにエンジン開発が難しい作業であったかが窺えよう。
ちなみにエンジン開発開始時点だと上田氏はPS3版の発売も視野に入れていたそうなのだが,期間が長期にわたってしまったことを受け,最終的にPS3版が取りやめとなったのは,ご存じのとおりだ。
ソニー・インタラクティブエンタテインメントのリードプログラマー,井澤 允(いざわまこと)氏は,この点について次のように振り返っている。
完成版のゲームアセットは――例外はありますが――多くの部分でPS3時代に開発したものを利用しています。一方でシステム部分やグラフィックスエンジン部分などは,PS4を前提とした新設計ですね。
PS4での開発を再スタートさせた直後は,作り込んであった(PS3時代の)コンテンツがまったく動かなくてチームを不安にさせたりもしましたが(笑),技術チームが頑張ってなんとかなりました。
気になるのは,PS4版として開発を進めていくにあたり,すでに完成していたPS3版アセットをどの程度作り替えたのか,という部分である。
「PS3版として開発されたアセット」をそのまま流用している代表的なものとしては,アニメーション(animation,動き)データが挙げられるという。一方で,3DモデルはPS4のスペックに合うよう,手作業で多ポリゴン化して,制御用のボーンも増やし,テクスチャ素材などは解像度を上げて作り直しているとのこと。3Dモデルはディテールの向上が主体なので,新しくデザインし直すわけではなく,テクスチャをゼロから描き直すわけでもなく,解像度を上げて生成するだけなので,人的負荷は相応に低く抑えられたそうだ。
ただ,PS4版ではグラフィックスレンダリングエンジンが物理ベースになったため,ラフネス(roughness,面の粗さパラメータ)とスペキュラ(specular,鏡面反射率)強度といった新しい要素テクスチャは,新たに起こす必要が出てきたとのことである。
ところで,人喰いの大鷲トリコは,2016年10月25日発売予定だったのが,土壇場で12月6日へと4週間ほど延期となったのを覚えている人も少なくないだろう。筆者はこれを,PS4 Proへ対応するための追加開発期間だと思っていたのだが,話を聞くと答えはシンプルで,単純にバグフィックスだったという。当初予定した10月末の発売日には間に合わなかったものの,10月末にはマスターアップしていたそうだ。
最後の最後までファンをやきもきさせてくれたが,とにかく発売されて良かったと思う。筆者も,かなり前から人喰いの大鷲トリコを応援してきた。また,上田氏と密にやりとりをしていたこともあったので,パッケージを手にしたときは実に感慨深かった。
ちなみに,エンディングのスタッフクレジットで,最後のほうの「SPECIAL THANKS」欄に筆者の名前も入っているので,暇な人は探してみてほしい。
人喰いの大鷲トリコのグラフィックス仕様(1)ファー生成はコンピュートシェーダで動的に
というわけで本題だ。まずは人喰いの大鷲トリコのグラフィックススペックから見ていくことにしよう。
主人公である少年のポリゴン数は約6万,巨大生物トリコは約4.7万となっている。
表面積的にはトリコのほうが約50倍大きいのだが,ベースモデル(=基本形状モデル)のポリゴン数は少年のほうが多いのだ。ここは多くの人が意外に思うところではないかと思うが,その点について,田中氏は次のように語っている。
田中政伸氏:
少年6万,トリコ4.7万というポリゴン数は,トリコの身体全体を覆っている羽毛や,その羽毛を発現させる被せモデル,そして衝突判定用メッシュモデルなどをすべて除外した,(純然たる)3Dモデルにおける数字です。いわゆるベースモデルのポリゴン数になります。
最終的に画面に描かれる少年の総ポリゴン数は6万3000,トリコは47万となっており,ジオメトリ負荷を見れば,やはりトリコのほうが大きい。
トリコのベースモデルは,ファー(fur,毛皮)関連の描画がない,本体モデルの状態なので,「毛を剃られたような貧相な見映え」になっているのはご愛敬だ。
ここで用語の解説が必要かもしれない。
「ベースモデル」とは,最終的な描画結果において可視状態として描画される3Dモデルのことである。
続いて「被せモデル」は,最終的な描画結果にこそ可視状態として描画されることはないものの,ベースモデルと同一座標に二重化して存在する3Dモデルで,描画にあたって特別な機能を果たすことになる。人喰いの大鷲トリコにおいては,物理シミュレーションにおける衝突判定用の被せモデルや,グラフィックスにおける特殊効果のメッシュがベースモデルにかかる。
物理シミュレーション用の被せモデルは「衝突したか,していないか」を判定するためのもので,多くのケースでは描画用の3Dモデルより粗めに設定されることになる。
グラフィックス用の被せモデルは2つある。1つは羽毛や毛皮などのファーを生やすためのものだ。人喰いの大鷲トリコにおいては,トリコの羽毛を生やすのに使われている。先ほどトリコの総ポリゴン数が47万という話をしたが,実のところ,そのうちの43万がファーだったりする。
トリコの羽毛は,「毛皮の断面図」のようなテクスチャを積層させる,いわゆる「シェル法」によるファーと,板ポリゴンに羽根テクスチャを適用した「毛ヒレ法」(バナナリーフ法,フィン法ともいう)になっている。
シェル法によるファー描画の概念図(出典:「ゲーム制作者になるための3Dグラフィックス技術 増補改訂版」(西川善司著,インプレス刊)) |
毛ヒレ法によるファー描画の概念図(出典:「ゲーム制作者になるための3Dグラフィックス技術 増補改訂版」(西川善司著,インプレス刊)) |
余談になるが,この被せポリゴンによるシェル法のファーは,PS2時代のワンダと巨像でも活用されていた。
ワンダと巨像におけるミノタウロス型巨像。そのオーサリング段階におけるツール画面のスクリーンショットだ |
ゲーム中のファイナルショットがこちら。シェル法のファー生成技法をPS2で使ったタイトルとしては,ワンダと巨像が先駆け的な存在となっている |
ファーについては,前出の井澤氏が次のように述べている。
井澤 允氏:
被せモデルを構成するポリゴンの各頂点カラーに,毛の密度や毛の種類という情報を設定しています。そのパラメータを受けて,実際にファーを生成しているのはコンピュートシェーダ(Compute Shader)です。ジオメトリインスタンシング(Geometry Instancing)を駆使して,毛ヒレ法の羽根を被せモデルの表面上に生やしています。ジオメトリシェーダ(Geometry Shader)は使っていませんね。
シェル法の毛皮は尻尾のみに適用しているのですが,こちらはトリコの3Dモデル側でモデリングしています。
つまり、シェル法の羽根(というか毛皮)に対しては,ワンダと巨像のときと同じように3Dモデルのモデリング段階で仕込みを入れているが,トリコにおける毛ヒレ法の羽毛生成では「生成元」でこそ被せモデルを用いているものの,「モデリング段階で静的に制作されたファーモデル」はないことになる。被せモデルの頂点カラーが持つパラメータに呼応して,ランタイム時(≒実行時)に,動的にファーを生やしているのだ。
こうした仕組みにしているのは,トリコがプレイヤーの視点から離れているときと近くにいるときとでファーの品質を動的に制御するためである。遠くにいる場合,トリコは小さく描かれるので,ファー描画の手抜きを行ってGPU負荷を低減させる。逆に近い場合には,大写しになっているトリコに対して,みっちりと高品位なファーを描ける。
この仕組みの実装にジオメトリシェーダではなくコンピュートシェーダを採択したのは,コンピュートシェーダのほうがさまざまな処理を並列でこなせるメリットがあったためだそうだ。コンピュートシェーダによる実装のほうが後々の性能チューニングを行いやすい,ということもあったかもしれない。
なお,上で井澤氏の発言に出てきたジオメトリインスタンシングは,GPUに転送した3Dモデル(=ジオメトリ)を,座標位置や指定テクスチャなどといった各種パラメータ違いのバリエーションで,1回の描画コール(draw call)において同時にレンダリングする機能だ。GPU内部で3Dモデルを仮想的に複製して描画する技術というイメージでいいだろう。
人喰いの大鷲トリコにおいては,トリコの表皮に対して,同じ3Dモデルの羽根をパラメータ違いで複数描画することに利用している。
コンピュートシェーダと,ジオメトリインスタンシングを駆使した毛ヒレ法による羽根は最大で約1万本に達するという。
田中政伸氏:
多くの羽根モデルは,1本あたり8〜10頂点程度の板ポリゴンにテクスチャを適用したシンプルなものですが,一部の羽根は,真横から見ても厚みが感じられるような,立体的なものになっています。こちらは10〜20頂点くらいでできていて,「体積がある」形状ですね。
トリコが感情の起伏で羽根を逆立てることがあるのですが,立体羽根は,そうした状況における「トリコの羽根の見え方」のリアリティ向上に貢献しました。
グラフィックス用の被せモデル,2つめは逆光時のリムライトを発生させるためのものである。
布のような,光の透過率が高い材質や,あるいは人間の皮膚のような,光が浸透した後,中で散乱して出射してくる半透明材質では,逆光条件において,最も「薄く」なる輪郭からハイライトが染み出て見えてくることがある。これが「リムライト」(Rim LightingもしくはBack Lighting)だ。日本語では「背面光」と書かれることが多い。
人喰いの大鷲トリコでは,少年の人肌やトリコの皮膚の一部でこうしたリムライトが出てくるが,開発チームは,その実現のために被せモデルを用意したというわけである。
ライティングの計算時に輪郭部分でハイライトが出やすくなるよう,あえて法線ベクトルを反転した細工を施しているという。
リムライトに関しては,ジェン・デザインのキャラクターアートディレクターである酒井勇太朗氏が次のように述べている。
開発の初期段階では,ピクセルシェーダを駆使してリムライトを出すことも試していました。ただ,人喰いの大鷲トリコで目指していた「アーティスティックな,鋭いハイライト」が出なかったんです。そのため,ジオメトリ側の工夫で出すという,今の仕様に変更しました。
3Dモデルのどこにリムライトが出てどこに出さないかといったマスクはテクスチャで与えています。被せモデルは,視点からの距離の遠近に依存せずに一定のリムライト幅を出力できるよう,ベースモデルに対する被せモデルの大きさの比率を動的に変化させる制御を入れていますね。
人喰いの大鷲トリコのグラフィックス仕様(2)物理ベースレンダリング・HDR・4K対応の詳細
人喰いの大鷲トリコが採用するレンダリングエンジンは,ディファードレンダリング(Deferred Rendering)とフォワードレンダリング(Forward Rendering)のハイブリッド構成だ。
ライティングおよびシェーディングは前段でも触れたとおり物理ベースとなるため,いわゆる物理ベースレンダリング(PBR:Physically Based Rendering)システムを採用していることになる。
フォワードレンダリングは最も基本的なレンダリング手法で,ポリゴンから分解された各ピクセルに対して,その都度ライティングやシェーディングを行うようになっている。
対するディファードレンダリングは,本格的なライティングやシェーディング計算を行う前に,それに必要な中間パラメータだけを「G-Buffer」と呼ばれる作業領域(=バッファ)に描画し,その後,「G-Bufferへ出力されたピクセル単位のパラメータ」を参照しながら,最終的なライティングやシェーディングを行うものだ。ライティングとシェーディングを先延ばし(Defer)するから「Deferred」なレンダリングというわけである。
フォワードレンダリングは描画対象となる3Dモデルを1つ1つ順番に描画していくのに対し,ディファードレンダリングではシーンに存在する光源を1つ1つ順番にシーンへ当てていくイメージだ。
3Dモデルごとに個別のライティングやシェーディングを行うにはフォワードレンダリングが適しており,統一仕様の材質システムにおいてパラメータの違いで質感を描き分けるような場合はディファードレンダリングのほうが都合がいい。
では,どのようなハイブリッド仕様となっているのだろうか。
井澤 允氏:
少年に対しては,「リアル系とアニメ系の中間テイスト」的なライティングとシェーディング処理を行うため,フォワードレンダリングを用いています。(そのほかのオブジェクトに対するディファードレンダリングとは)仕組みが異なるので,両者の間で描画の整合性に問題が生じないよう,調整には気を遣いました。
ディファードレンダリングで,ある材質がシーン内に置かれた複数の光源からライティングされる場合,その最大数に制約はない。それに対してフォワードレンダリングだと制限があるため,ディファードレンダリングと同等の「複数の光源からのライティング処理」を行おうとすると,必要な回数だけレンダリングパイプラインを回さなければならない。
井澤氏が述べているように,人喰いの大鷲トリコでは,フォワードレンダリングで行う少年のライティング&シェーディングと,ディファードレンダリングで行うそれ以外のライティング&シェーディングで,シーンにおける見た目の一貫性を保つべく,開発チームは綿密に調整を行ったという。
本来はこうした調整の手間を省くために物理ベースレンダリングを用いるのだが,本作では異なる質感を持つ少年をシーンに溶け込ませるため,こうしたハイブリッドなレンダリングアプローチを採用せざるを得なかったということなのだろう。
井澤 允氏:
エンジンの設計仕様上は,フォワードレンダリングでも周囲の動的光源を制限なくライティングに利用できる仕組みになっています。
もちろん,動的光源の数が多くなればなるほどフォワードレンダリングパスの負荷は上がっていきますが,製品版では,品質と負荷をうまくバランスさせて,異なる質感の少年をうまくシーンに溶け込ませるように調整しています。
少年のレンダリングについては,後でもう少し詳しく見ていくことにしたい。
この点について,背景制作や背景レイアウトを担当したソニー・インタラクティブエンタテインメントの栗山立慎(くりやまたつし)氏は,次のように補足説明を行っている。
栗山立慎氏:
背景類も物理レンダリングベースなので,テクスチャの仕様自体は少年やトリコと同一です。しかし,人喰いの大鷲トリコにおいて背景を構成するオブジェクト――内部的には「BGパーツ」と呼んでいますが――は,サイズや形状,使用用途ごとに規格化してあって,レベル調整に対応しやすい作りになっています。
その設計思想は背景テクスチャにも反映されていまして,サイズやアスペクト比の異なるテクスチャ群を背景部品として用意し,1
対象ポリゴンに対する最適テクスチャの割り出しやアサインには,内製の専用ツールを使っていますね。
ボーン(=リグ)の数は,制作段階で少年が228本,トリコが392本。ゲームランタイム(≒製品版)では実機向け最適化を進めた結果,順に162本,284本となっている。
このうち少年のボーン数は,衣服に仕込まれたボーンも含んでいる。少年はゆったりとした服装をしており,しかも風によって衣服がなびく表現も多用されるため,衣服には比較的多くのボーンを仕込むことになったようだ。
少年の造形は「リアル系とアニメ系の中間テイスト」といった印象だが,その顔面には表情生成用のボーンを仕込んであるという。
田中政伸氏:
ほうれい線の動きを作り出すようなボーンまではありませんが,ひととおりの表情を作り出せる程度にはボーンを仕込んでいますね。
トリコの側でも,表情を豊かにするため,顔面へのボーン仕込み量が多くなっているそうだ。手足の指はもちろんのこと,尻尾,そして筋肉の振動用ボーンまで仕込んであるとのこと。登場するキャラクターのバリエーションが少ないからこそ,キャラクターあたりの作り込みがすごいのだ。
今日(こんにち)の3Dゲームグラフィックスは,ボーンが折れ曲がったら,その外皮となる3Dモデルの表皮ポリゴンを摂動させるスキニング処理を行うのが一般的である。このスキニングを行うとき,3Dモデルが持つ表皮ポリゴンの各頂点に,その影響(influence,インフルエンス)を割り当てるボーンの数が,少年だと4なのに対しトリコは倍の8となっているという。なぜだろうか。
酒井勇太朗氏:
少年がトリコに掴まったりすると,その作用でトリコの表皮がちゃんと変形します。そうした動きを比較的正確に行うため,トリコの表皮にもボーンを入れてありますし,そのインフルエンス値を大きめに設定しているのです。
人喰いの大鷲トリコは,それこそトリコのような大きなキャラクターにかなり近くまで接近してインタラクトするゲームメカニクスを採用しています。その関係上,そうした制御にはこだわっていますね。まあ,トリコの表皮は羽毛で覆われていますから,パッと見は分かりにくいかもしれませんが(笑)。
人喰いの大鷲トリコにおける1フレームあたりの総ポリゴン描画量は,可視ポリゴンだけで200から300万程度。シャドウマップ生成などの不可視ポリゴン描画も含めると400〜900万程度だ。
フレームレートは最大30fpsの可変仕様で,これは通常版PS4でもPS4 Proでも変わらない。ただ,通常版PS4においては,描画解像度も出力解像度もフルHDで,フレームレートは20fpsを下回らないようチューニングしてあるという。
一方のPS4 ProではフルHD描画&出力だけでなく4K描画&出力も選べるようになっており,前者を選択したときは,通常版PS4と比べてフレームレートを格段に安定させられるとのことだった。ゲーム設計の都合上,フレームレートは30fpsが上限だが,もしこの上限を取り払えば60fpsにも到達する勢いなのだとか。
PS4 Proにおける4K描画出力では,PS4 Proの特徴的な描画システムであるチェッカーボードレンダリングを採用しているとのこと。GPU負荷の関係上,描画解像度は3360
ハイダイナミックレンジ(High Dynamic Range,以下 HDR)は,通常版PS4とPS4 Proの両方で対応済み。レンダリングパイプラインの最下流付近までHDRのリニア空間内でレンダリングを行っており,最後にトーンマッピングする段階でHDR処理するか,しない(=Standard Dynamic Range,以下 SDR)かで対応を切り分けているそうだ。
SDRで最も明るい部分を1としたとき,人喰いの大鷲トリコのHDRだと最も明るい部分は約11となり,そしてこの明るさを1200nit程度で出力するような輝度設計になっているという。色設計は伝統的なsRGB基準で,HDR対応テレビが採用する広色域なBT.2020色空間基準にはなっていない。
人喰いの大鷲トリコにおける少年のシェーディング,その仕組み
その独特なシェーディングスタイルゆえに,フォワードレンダリングを採用することになった少年だが,もう少し詳しく見ていこう。
前述のとおり,少年は「リアル系とアニメ系の中間テイスト」で描かれているが,ここでは,リアル系の物理ベースレンダリングと,トゥーンシェーディングそれぞれの結果をブレンドするようにしてあるという。
トゥーンシェーディングにあたっては,「設定した閾値よりも明るいか暗いか」で明暗を切り分けるという典型的なものではなく,もっと大雑把なライティングモデルを採用しているのだそうだ。具体的には,少年の頭頂部付近に設定した計算基準点に対して照射される直接光や間接光の情報を取得し,それを使って少年のモデル全体を一様にライティングするイメージである。
もちろんそのままだと,光源の色と方向だけに影響されるだけのフラットな照明結果になってしまう。そこで,リアリティのある陰影部分を足すべく,物理ベースレンダリングの結果をブレンドしているわけなのだ。
田中政伸氏:
そのほか,少年の耳などは,強い光を受けると赤らむといった,疑似的な皮下散乱表現を入れています。
酒井勇太朗氏:
それ以外の調整点として思い出されるのは,日向から日陰に移動すると少年の見映えが瞬間的に暗くなり,逆に日陰から日向へ移動したときには瞬間的に明るくなる不自然さの改善です。この「唐突な少年の明暗の切り替わり」は,トゥーンシェーダにおいてライティングの基準点を少年の頭頂部にある1点だけに置いていたことで生じていました。
最終版では,この問題を改善するため,「トゥーンシェーダによるライティングの反映」を,数フレームかけてゆっくり行うという調整を入れています。こうすると明暗がゆっくり切り替わるようになって,不自然さを抑えられるのです。
人喰いの大鷲トリコにおける間接光の仕組み
PS4時代のゲームグラフィックスでは,間接光,すなわち大局照明(Global Illumination,グローバルイルミネーション)の処理系を組み込むことが半ば標準となりつつある。
人喰いの大鷲トリコ開発チームも本テーマには取り組んでおり,実際,直接光が及ばない遺跡の内部でも,柔らかい間接光が広がっているのを確認できる。単純なライトマップだけではなく,その空間に足を踏み入れたキャラクターやオブジェクトに対しては,その空間に充満している間接光によっても整合性のあるライティングを行っているのだ。
仕組みとしては,ゲームフィールド上に動的光源やオブジェクトを配置したうえで,事前に「その空間に充満する間接光」を計算し,それをあらかじめ設定しておいた計測地点である「プローブ点」から計測のうえ,全方位の光エネルギー分布データとして持つ方式となっている。
ランタイム時には,全方位のエネルギー分布データによって表される間接光データを基に,動的キャラクターやオブジェクトをライティングすることとなる。
こうした間接光の仕組みは放射輝度ボリューム(Irradiance Volume,イレイディアンスボリューム)と呼ばれ,実用化自体は2004年くらいから始まっている。そして,「プローブ点で計測した間接光を全方位のエネルギー分布で表す手法」としては,いまや定番になったと言っていい,球面調和関数(Spherical Harmonics,スフェリカルハーモニクス)を利用することとなる。
井澤 允氏:
間接光の設定や事前計算は内製ツールで事前に処理しています。ゲーム世界に対するプローブ点の配置は半分自動,半分手作業ですね。ゲームプレイの進行上,少年が往来しがちな場所は比較的密に設置し,少年が接近しないような空間には粗めに設置するようなイメージです。
最も密なところで50cm間隔,最も疎なところで32m間隔としています。
ランタイム時に,事前計算した球面調和関数を用いて間接光ライティングしてみたらイメージと違っていたとか,ゲームの進行上,間接光自体に演出効果を入れたくなったといったことが起きたときには,「事前計算して生成したもの」を後から調整することもあったという。
こうした事前計算ベースの仕組みは,ゲームフィールドが壊れたり変化したりするような動的なシーンだとうまくいかない場合もあるように思うが,その点はどう対処しただろうか。井澤氏は次のように述べている。
井澤 允氏:
人喰いの大鷲トリコでも,回廊が壊れてしまうシーンや,遺跡自体が崩壊して何かが飛び込んでくるようなシーンがあります。そうした状況においても間接光システムを正しく機能させる必要がありました。
対策としては,ほかでもよく見られる技法ですが,「ゲームフィールドが壊れる前と後の間接光データを取得しておいて,破壊が進行していく時間ペースに合わせて,『破壊前の間接光』から『破壊後の間接光』へとブレンド移行させていく仕組み」を採用しています。
本作の場合,大きくゲーム世界が破壊するシーンはイベントによるものだけで,壊れる場所も壊れ方の流れも固定。なのでこの手法で十分だったというわけだ。
なおゲーム中では,水面や金属などの鏡面反射要素が強い材質に周囲の情景が映り込む,鏡像(Reflection,リフレクション)表現も確認できるが,この実現にあたっては,事前生成しておいた環境マップと,画面座標系のポストエフェクトで,レンダリングしたフレーム自体を再サンプリングして疑似的な鏡像を作り出すスクリーンスペースリフレクション(Screen Space Reflection,SSR)を,事前生成しておいた環境マップと併用している。
このあたりもPS4世代のゲームグラフィックスでは採用事例が多くなっているテクニックである。
環境マップも,先ほど紹介した「間接光の球面調和関数プローブの仕組み」と同じように,半自動でゲーム世界の要所要所に環境マップ取得ポイントを設定して事前生成させているという。
局所的な情景として取得した環境マップは,取得した位置と,描画時のカメラ位置のズレを補正しつつ適用しなければならない。それにあたっては,これまたPS4世代のゲームグラフィックスで定番化している「視差補正環境マップ」(Parallax-Corrected Cubemap,パララックスコレクティッドキューブマップ)を用いているそうだ。
前編はここまで。
後編は影生成の仕組みや背景システム,パーティクルシステム,物理シミュレーションやアニメーションなどの話題を取り上げていきたい。
人喰いの大鷲トリコ公式Webページ
- 関連タイトル:
人喰いの大鷲トリコ
- この記事のURL:
キーワード
(C)2016 Sony Interactive Entertainment Inc.
- 人喰いの大鷲トリコ 初回限定版 【早期購入特典】「オリジナルPlayStation 4テーマ」「ミニサウンドトラック」がダウンロードできるプロダクトコード封入
- ビデオゲーム
- 発売日:2016/12/06
- 価格:¥5,950円(Amazon) / 4944円(Yahoo)