オススメ機能
Twitter
お気に入り
記事履歴
ランキング
4Gamer.net
パッケージ
ファークライ5公式サイトへ
読者の評価
45
投稿数:1
レビューを投稿する
準備中
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[GDC 2018]「Far Cry 5」におけるこだわりの「水面」表現法,教えます
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2018/03/22 00:00

イベント

[GDC 2018]「Far Cry 5」におけるこだわりの「水面」表現法,教えます

Branislav Grujic氏(3D Team Lead Programmer, Ubisoft Toronto)
 Far Cry(ファークライ)シリーズは,初代の開発元がCrytekで,第2作移以降はUbisoft Entertainmentグループの開発子会社となっているが,シリーズを通じて,「水」の表現には見どころがあった。
 今回のGDC 2018では,3月29日に発売予定となっている最新作「Far Cry 5」(邦題:ファークライ5,PC / PlayStation 4 / Xbox One)における「水の描画」について,Ubisoft TorontoのBranislav Grujic氏が大いに語ったセッション,その名もズバリ「Water Rendering in Far Cry 5」(Far Cry 5における水描画)があったので,その概要をレポートしてみたい。

ファークライ5


地形生成ツールに「水辺を簡単に作る機能」を搭載


 プレイヤー諸姉諸兄には釈迦に説法だが,Far Cryシリーズは作品ごとにテーマとなるロケーションが異なり,毎回,当該ロケーションの風土や気候をリアルに再現することが,グラフィックスレベルにおける目的の1つとなっている。

左は「Far Cry 3」,右は「Far Cry 4」の水面描画
ファークライ5 ファークライ5

 Far Cry 5は,米国モンタナ州を舞台としていることから,開発チームは当然のことながら,まずモンタナ州の風土を研究,観察することに取り組んだ。
 当然,開発チームはモンタナ州へ足を運びロケハンを敢行。水のレンダリング担当者達は,水辺の写真を撮りまくって持ち帰ったという。それをFar Cry 5の「水回り描画システム」上で反映させることになったそうだ。

ファークライ5 ファークライ5
モンタナ州へのロケハン時に開発スタッフが実際に撮影した,水辺の写真。実際のゲームグラフィックスに似ているかは各自でゲームの発売後に確かめてほしい
ファークライ5

 セッションでGrujic氏が最初に紹介したのは,地形生成ツール上で川や池を作成する様子だ。
 設計済みとなっている任意の地形に対して,ツール上からマウス操作で「水となるべき領域」を囲んでいくと,そこにポコっと穴を掘ることができ,線を引けば水流としての川を地形に作り出すこともできる。ツールの使い勝手を紹介する動画――残念ながら動画での撮影はNG――を見る限り,操作は非常に直観的だ。

地形生成ツール上で川を掘っているところ
ファークライ5
作った川の最終描画結果
ファークライ5

 Grujic氏は,Far Cry 5における水面描画パイプラインのフロー図を示し,フローの構成要素を1つ1つ,上流から順に解説していった。

Far Cry 5における水面描画パイプライン
ファークライ5

 まずは「Visibility」(可視性チェック)ブロックからだ。
 オープンワールド型のゲームであるFar Cry 5では,はるか遠方の情景まで見渡せるゲームグラフィックスを提供する必要があるわけだが,当然ここには水面が登場してくる可能性がある。
 その水面は前述のとおり,地形作成ツールによって作り込まれている。そしてそれらは,プレイヤー視点から近くに見えたり遠くに見えたり,あるいは山や森に隠れて見えなかったりする。

Visibilityチェックで「水面が見える/見えない」の判断と遠近の判断を行う
ファークライ5
 そこで,画面内のどこに水面があるかチェックし,見えないものは描画パイプラインから破棄することになる。いわゆる早期カリングを行うわけだ。
 また,水面の描画はかなり負荷が高いため,よく見えない遠方の水面では処理の手を抜きたい。そのため,高品位に描画するか手を抜くかの判断もここで行うことになる。

ファークライ5
流れている川のマップ上における遠近分布
ファークライ5
実際に視点から見える水面のみ描画したところ

 パイプラインフローを一段下がったところにある次のブロックは「Position」だ。
 これはディファードレンダリング(Deferred Rendering)システムにおける水面描画専用の低解像度なGバッファ(G-Buffer)レンダリングに相当するものとなる。

 前段のVisibilityブロックの結果を踏まえてGバッファレンダリングを行うような格好になるため,結果として水面専用低解像度Gバッファでは,材質IDが出力された「Data」と,水面の法線が出力された「Mesh Normal」,深度情報が出力された「Depth」が得られる。

Positionは,水面描画専用となる低解像度なGバッファに相当するものを生成するフェーズ
ファークライ5

 ここで水面に対して,3D的な変移を与えるフェーズ「VDM」と「FBM」が介入する。

Far Cry 5は「ヘリコプターの回転するローターが巻き起こす波」の表現に挑戦している
ファークライ5
 VDMは「Vector Displacement Maps」(ベクターディスプレイスメントマップ)の略で,水面に対してアニメーション的な変位を与える,言うなれば「目に見えないパーティクル」を適用するようなフェーズである。たとえば,ヘリコプターの回転するローターが下向きに発生させる気流によって水面が摂動する場合,そうしたドーナツ型をした波状の動きを与えるVDMを水面に適用するといったイメージだ。
 カプコンの「ロストプラネット2」が水面の動き生成に使っていた「Wave Particle」と概念的には近い印象を受ける。

ファークライ5

 一方のFBMは「Fractal Brownian Motion」(フラクタルブラウニアンモーション,非整数ブラウン運動)の略。実のところFBMは,水面のさざ波を表現するのに使うフラクタルノイズ関数としては定番のもので,Far Cry 5でも,さざ波を与える「ネタ元」として活用している。

 Far Cry 5では,Positionブロックのところで水面を近場のものと遠方のものとで切り分けたが,近場の水面に対して最大9オクターブ重ねたノイズを取り出す。この場合,テクスチャ読み出しは9回だ。それに対して遠方の水面に対しては3オクターブ重ね(=テクスチャ読み出し3回)に留めて,負荷の低減を図っているとのことだった。
 遠方の波はそれっぽくウニュウニュ動いていればそれほど不自然ではないから,これでいいということなのだろう。

ファークライ5

 続いては「Occlusion」(オクルージョン,遮蔽)ブロックだ。
 ここでは,画面を32×32のタイルで区切り,水面描画に該当するピクセルが「あるか/ないか」をチェックする。そして「ある」場合には,当該タイルから水面ピクセルの描画スレッドを立ち上げる準備を行う。

ファークライ5

 「Screen Space Tessellation」(スクリーンスペーステッセレーション)は,Occlusionで32×32に区切った各タイルに対して,16×16クワッド(=四辺形ポリゴン)で分割(=テッセレート)して,VDMやFBMを実際に適用するブロックである。
 なおここで水面に対して適用するVDMやFBMは,当然のことながら,四辺形ポリゴンに対してということになる。

ファークライ5

 ここまではジオメトリレベル(ポリゴンレベル)の処理系だが,もちろん,最終的な描画は当然ピクセルで行う。そこで,後段となるピクセル単位のライティングやシェーディングを行うため,「描画解像度と合致する解像度で画面座標系の法線を得る処理」を行うことになる。これが「Normal」だ。

ファークライ5

 その結果を受けて,ジオメトリレベルの法線と馴染むようにスムージング処理を行うのが「Smoothness」である。これを行わない場合,水面のライティングの鏡面反射のハイライトが正しく出ないことがあったという。

ファークライ5

 「Foam & Algae」は,水面の上を流れる泡(Foam)や藻(Algae,エルジー)などを付与するフェーズだ。
 水面上の泡は,フラクタルノイズから算術合成されたノイズテクスチャからなり,泡の色が変化したりするが,これもノイズを使って変動させているとのこと。泡が乗る場所についての解説はなかったが,たとえばUnchartedシリーズの水面描画だと,「水流の激しいところ」「水流が岩などに衝突したところ」「尖った波の頂点付近」などが対象箇所だった。Far Cry 5でも似たようなアルゴリズムを採用しているのではないだろうか。

ファークライ5

 水流そのものは,リアルタイムでシミュレーションしているわけではなく,事前に生成した水流マップ(Flow Map)を基にして表現している。
 この水流マップは,地形生成ツールで川を生成した後で水を満たし,水を流すシミュレーションを行って生成するそうだ。

ファークライ5

 最後の「Composite」(コンポジット,合成)は,これまでのパイプライン上にある各機能ブロックで生成されたものを統合し,最終的な描画結果を得るところとなる。
 具体的には,水面に対するライティングやシェーディングを行うブロックだ。

ファークライ5

 ……と,一言で済ませると簡単だが,実務としては,太陽光からの直接光ライティングや,環境光からの間接光ライティング,水面に映り込む鏡像の適用,フレネル反射への配慮,水底の屈折処理などなど,かなり多様な処理を行うことになる。

ファークライ5
波なしでフレネル反射に配慮した水面を生成したショット
ファークライ5
映り込みのうち,画面座標系の鏡像生成SSRだけを可視化したショット
ファークライ5
環境マップ。SSRで鏡像が生成できない範囲ではこの環境マップを適用する
ファークライ5
最終的な描画結果


トップレベルの水表現を実現しているFar Cry 5


 気付いていると思うが,本セッションのスライドは入手できなかったため,ここまで写真ベースでの解説となっており,若干見にくい点はご容赦を。ただ,Far Cry 5における水面描画の概要は掴んでもらえたのではないかと思う。

 実際の描画結果は本当に美しい。現行技術ベースの水面描画システムとしてはトップレベルの表現力になっていると断言してしまっていいだろう。興味を持った人は,ぜひ予告映像などでその品質を確認してみてほしい。


Far Cry 5日本語公式Webページ


4GamerのGDC 2018記事一覧

  • 関連タイトル:

    ファークライ5

  • 関連タイトル:

    ファークライ5

  • 関連タイトル:

    ファークライ5

  • この記事のURL:
line
4Gamer.net最新情報
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:10月17日〜10月18日
タイトル評価ランキング
83
82
80
OCTOPATH TRAVELER (Nintendo Switch)
55
51
Conan Outcasts (PS4)
2018年04月〜2018年10月