[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 2017年3月3日,「Game Developers Conference 2017」最終日に「Shoot for the Sky:The Ambitious HDR Time-lapse Skies of Forza Horizon 3」と題されたセッションが行われた。
 最近のゲームでのグラフィックスがフォトリアルになっているのは皆さんご存じのことだろうが,とくに自動車はCGと親和性が高く,スクリーンショットを見て実写と判別するのがだんだん難しくなってきている。とくに近年は自動車以外の部分の画質改善が目覚しい感じだ。
 2016年9月に3作めが発売された「Forza Horizon」はForzaシリーズのスピンアウト作品ながら,本編に並ぶくらいの人気を博しているシリーズだ。ストイックにサーキットを走るMotor Sportに対し,世界各地の公道を走るHorizonでは景観も見どころの一つであり,とくにHorizon 3では空の表現が劇的に改善されている。今回の講演は,ますますフォトリアルになっていくクルマゲーを構成する要素から「空」をピックアップして語るものとなっていた。
 その冒頭で提示されたのは,次のムービーだ。


 ということで,上の動画を「もうかなり実写レベルに近づいてるよね」と上から目線で見ていた人には悲しいお知らせがある。


悲報「Forzaさん実写だった」


 GDCの壇上でシリーズの展開を説明していたJamie Wood氏は,このシリーズにとって空がいかに重要な役割を占めているかを語った。クルマ,道,空がHorizonでの3大要素となるという。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 氏は,いかに空に対して力を尽くしていたのかの例として,Forza Horizon 2の空の映像を流しつつ,この映像を実現した技術,すなわち大気シミュレーションを行って,128個のパラメータで云々と,その努力をアピールしていた。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 しかし,続いて表示されたのは実写での空の写真だった。まあ,なんというか,本物にはかなわない。大気シミュレーションはかなり難度の高い演算処理であり,実際の空を完全再現しようとすれば,それこそ地球シミュレータクラスの演算能力が必要になるだろう。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
 「じゃあ実写映像をゲーム中に流せばいいんじゃね?」「1時間分だけでもBlu-ray1枚埋まるぞ」「じゃあストリーミングで」「帯域幅とメモリ容量ガー」「圧縮はしようよ」「画質がねえ……」「静止画ベースでやると?」「それも容量ガー。第一,うちもうシステム作っちゃってるし」「……」「……」

 といった議論が行われたようだが,結局Horizon 3では実写データを扱うことが検討された。冬のイングランドで行われたというロケハンでは,朝から晩までひたすら空を撮影していたという。撮影地を決めるにあたっては,全方位でクリアな視界や大気汚染の少なさといった景観の条件とともにアクセスのしやすさやセキュリティなども考慮に入れて選定されている。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 機材の写真を見ると,普通のデジイチを3台使っているようである。画角120度ちょっとで全周を狙う感じだ。露出は7段のブラケットでHDRデータを生成するとのこと。自動制御により撮影は30秒間隔で行うという。撮影時間を見ると20時間撮影しているので,カメラ1台あたり16800枚の撮影を行うというハードな撮影現場になっていたようだ(設置したら放っておくだけだが)。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 画像は,1回の撮影でI.2TBくらいのデータになるという。これをなんとかして圧縮しなければならないわけだが,目標値は2GB以下であるとのこと。ディスク容量を考えるとこれでもまだ多いくらいかもしれないのだが,厳しい目標であるのは間違いない。

 まずデータの加工である。色収差と歪み集さはレンズのプロファイルを使って補正し,全体的な色補正にはカラーマネジメントの専門企業X-Riteの製品が使われている。そのほかごみを取るなどの下処理をしておく。
 次にノードベースの合成ツールNukeを使って,多段露出で撮影されたデータをHDRデータに統合する。3台のカメラで撮影されたデータをつなぎ合わせて1枚の全天周データにし,雲の部分は地の空の部分から分離してマスクデータも作成しておく。このあたりは手作業での工程が多く,1種類の空に対して,最大1か月かけているという。幸い,分業できる工程なので,外注なども使って乗り切ったようだ。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 Horizon 2のシステムとHorizon 3のシステムの比較ムービーが流された。
 Horizon 2のほうは前述のものと同じものだが,これはシステムでは雲をシミュレートしているので,ほぼ同じ雲の状態で太陽の位置を変えれば景観が変わっている。逆光状態の描写や影などを見ると雲の厚さを推定して処理をしていることが分かるだろう。実写ベースのHorizon 3では太陽の位置を動かすことはできないが,すべての太陽の位置で雲の状態を撮影してあるといった感じだ。技術的に見ればHorizon 2の方向性もすごいのだが,本物に近づくにはまだ道は遠いようだ。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 光源の移動に対応していない代わりに,新しいシステムの目玉となるのは雲が動くことだ。1日中雲の動きを撮影していたのだから当然ではあるが,動的な雲は景観を彩ってくれる。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 元画像の撮影感覚は30秒ごとなので,場合によっては適度に間をつなぐ必要がある。ではどうやって雲を動かすのかという問題だが,基本的に雲の流れは直線方向なので,それをベースに補間されている。このあたりでもNukeのベクトル生成機能が使われている。動きの生成自体は縮小された4分の1サイズで算出されており,それを実画像に適用する。かなり離散的なデータであり補間は難しいのだが,矛盾した動きを解くことがキーになると氏は述べている。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 こうしてできた空の画像には,ゲーム実装時にさらに光学効果が加えられ,空にある太陽の位置を光源としてゲームのライティングを行われる。
 また,空の画像自体をライトプローブとして使い,日陰や日向を表したり,間接光として使ったりといったことも行われている。もちろん車体にも映り込む。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

 デモムービーでは固定カメラのまま雲の動きに応じて地上に落ちた影が移動する様子などが示されていた。どちらかというと,レースゲームではなく,もっとゆったりしたゲームで楽しみたいフィーチャーかもしれない。

 さて,Horizon 3での空の描写はHorizon 2とはまったく別方式になったわけだが,それまでに作っていたシステムが無駄になったわけではない。空の撮影は雨のときには行われていないのだが(機材が濡れるのはともかく,雨粒でまともな絵が撮れなくなるため),レース中には雨天になることもある。そこで天候システムなどはHorizon 2のシステムを統合して運用されているわけだ。

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか [GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか

[GDC 2017]「Forza Horizon 3」の美しすぎる空はどのように作られたのか
 Horizon 3の舞台となるオーストラリアで行われたロケハンは本格的なものとなった。2週間にわたって行ったテストに続いて,夏の期間に25日以上をかけた本撮影が行われた。今回は24時間連続で空の撮影をするというハードな行程で,最終的に200万枚の写真を撮影したのだという。
 そこからのデータ処理に掛かった時間と手間は推して知るべしといったところだが,その甲斐のある出来栄えになっているのではないだろうか。考え付いても普通は誰もやりそうにないことを完全に達成したという意味でも面白い技術だといえるだろう。