
バンダイナムコエンターテインメントは、神奈川のパシフィコ横浜で9月4日から9月6日まで開催された「CEDEC 2019」にて「エースコンバット7における”空の革新”について」セッションを実施しました。『エースコンバット7』におけるUnreal Engine 4(以下、 UE4)の調整全般について語られたセッションのレポートをお届けします。

壇上に上がったのはバンダイナムコスタジオ技術開発統括本部VA本部VA3部VA5課の菅野昌人氏。1995年に発売された初代『エースコンバット』からアート方面で開発に関わっている人物で、今回のセッション内容となる『エースコンバット7』ではアート全体のディレクションとtrueSKYの設定を担当しています。

■『エースコンバット7』に空の革新をもたらした「空のジャングルジム」というキーワード
『エースコンバット』は、プレイヤーがエースパイロットとなって機体を操り、空を飛び回るフライトシューティングゲームです。本作『エースコンバット7』の企画が立ち上がったのが2012年頃。丁度『エースコンバット アサルトホライゾン』の開発が終わってから次の企画で話されていた時期でした。

開発チームとしては「何をもってしても空を新しくしたい」というモチベーションを持っていました。そのため『7』では、新たなコンセプトとして「空のジャングルジム」をブランドディレクターの河野一聡氏が打ち出しています。

空を飛行機で飛ぶ『エースコンバット』において雲は根源に関わるテーマです。ここで1枚のコンセプトアートを紹介。積乱雲や軌道エレベーターなど現在の『エースコンバット7』に繋がる様々な要素がここに集まっています。雲が大きくフィーチャーされたことで、プレイヤーは敵機だけでなく自然現象を巧みに使うことで、よりリアリティのある濃密なエースパイロット体験を感じられるようになりますが、従来の描画水準から大幅なグラフィックの向上が必要になりました。

『エースコンバット6』における従来の雲描写では「ビルボードパーティクルの雲」という平面の組み合わせと頂点カラーによる天球で表現していました。空の色や雲の形状の設定が容易ですが職人が必要で、立体の雲でないため描画手法の更新も求められます。更新案として「ボクセルによるボリューム雲」と「大気散乱シミュレーションによる雲」では、どの方向から中から見ても雲に見えますが、描画が高負荷ということとシミュレーションであるために自由が低いという懸念点がありました。そのためミドルウェアのtrueSKY導入を決めたと語ります。


『エースコンバット7』は2015年に本格開発開始し、2015年末のPSX 2015で初発表しました。UE4とtrueSKYを用いたイメージ映像で、雲を用いたドッグファイトを描く内容となっており、映像があると仕様を考えやすいとも加えます。

初期のゲームメカニクス案では、雲に隠れたり入ったりすることで敵の目やミサイルの追撃、レーダーへの影響など考えられていましたが本当にそうなのか疑問がありました。確信を持てないまま開発を進めるには懸念が残るため、航空自衛隊の小松基地へ2015年6月に取材へ行っています。

開発チームは、2日間にわたり実際のパイロットや航空管制官に企画案やコンセプト映像をベースに知見を共有。パイロットにとっての雲は、安全な飛行を心がける場合に積乱雲には近づかない、赤外線ミサイルは雲があると追尾困難だが、レーダーミサイルは電波なのでロストしないことが判明しました。


このフィードバックを踏まえて『エースコンバット7』の雲を設定します。雲突入時の振動や着氷(アイシング)、レーダーミサイルの特殊兵装は雲に入っても影響されないことや、レーザーなど指向性エネルギー兵器の減衰など調整し、取材によってリアリティと基本ゲームシステムの両立が可能となりました。これにより、開発者の想像に裏付けを得ることが出来たためコンセプト強化に繋がったと語ります。


■リアリティある空と雲をUE4上で再現するtrueSKYというミドルウェア
雲は学問として細かく成立している分野です。空気中の水蒸気量や日照、山など様々な要素から雲の形が決まってきます。空は地上から見上げた時に見えるもので、太陽光が大気中の分子や微粒子にぶつかって散乱することを「レイリー散乱」、大きい粒子によって光が散乱することを「ミー散乱」と呼びます。このため同じ場所でも時間帯や天候で見え方が変わることが特徴です。


雲は大気中に固まって浮かぶ水滴や氷の粒のことを指し、雲を構成するものは雲粒と呼びます。大きさは0.001mmから0.01mmほどで、雲粒は1秒間に1cm落下。地球上ではどこでも上昇気流があるので雲は常に浮かんだ状態となり、雲粒が集まると雨粒へと変わります。この雨粒や雪の結晶同士が上昇と下降を繰りかえすと大きな氷粒となって静電気が発生し雷へと発達します。


白い雲は太陽光を乱反射させたミー拡散で、黒い雲は吸収した光が内部でなんども拡散されたため光が弱まった状態です。巻き雲は高高度にある陰影が薄い雲。雲底はが上昇する空気が露点に達して発生し、雲の底が暖かく上が冷たくなっています。


雲頂は雲の頂上の高さで、暖かい空気が海面の水を蒸発させるため上昇気流の強さによって高さが決まります。また金床雲は成長した積乱雲が対流圏界面に到達して横方向に広がったものです。


雲の特性を知ることでシーンにどんな印象を与えたいかを決められます。ミッション3「両面作戦」の舞台となるチョピンブルグは熱帯のため高空に伸びる雲が、ミッション9「顔のない兵士」のワイアポロ山脈では雲海描写が、ミッション8「無慈悲な摂理」で戦うインシー渓谷では霧が発生しやすい土地です。これらの現象を裏付がある状態での演出にリアリティを与えます。

trueSKYはUnityやUnreal Engineに対応しているミドルウェアです。英国のSimul Software開発によるリアルタイム天候生成システムで、様々な機能を持っています。雲の形成は物理的でなく、3Dノイズそのものを組み合わせて作成。しかしながら、ライティングが比較的正しくPBRに対応できる幅の広さを持ち、実際の雲の特徴を再現出来ることが強みです。

通常のUE4のでデファードレンダリングと異なるレンダリングパスのため、アーティファクトが発生しやすくオペレーションに癖があることが注意点で、マニュアル通りに動作しないこともあるとのこと。ここ最近ではマニュアルが更新され始めたとも語ります。

trueSKYのレンダリングパスは、ジオメトリ→trueSKY→Translucent→ファイナルイメージの順で構成されています。

SKYの設定は時間や場所を定義でき、ムードを決定できる重要な要素になります。Haze/Fog/Mist/Dustは大気を形成する部分を設定します。大気のミー散乱をコントロールして空を設定するのがメインとなります。
なぜならレイリー散乱を設定出来る項目もありますが、大気の組成が変わってしまうので弄らない方が良いとのこと。Haze baseとHaze scaleはハイトフォグで、Mie Coefficientsはミー散乱に係数を与えて大気に色を付けることが出来ますが、弄る場合はRGB比率の維持に気を付けます。


ここでHaze/fog 設定をエルジアの首都ファーバンティを例に解説。Haze/fog1では晴天のファーバンティとなり、Haze/fog 20の霞がかった見た目となり、Haze scaleとHaze/fog 40にした場合霧っぽい見た目へと変わっています。またミッション4に登場するセラタプラは、シンガポールヘイズの夏に起きる野焼きの煙霧を表現しているようです。


ここでHaze/fogのパラメーター調整例をミッション1のフォートグレイス諸島のマップを用いて紹介。Haze/fogを強めるとフォグが濃くなり、Haze/Scaleの値を変更すると黄色っぽい空間を表現できるようになります。


シークエンスキーによる複数のキーはリニアに補間し、日の出の大気散乱効果をコントロール出来ます。ミッション18「王無き国」では、6時50分から7時になった時に天候が変わるように設定したパラメーターをリニアに補間してくれる。Haze scaleを変更すし、フォグが発生して終わる高さだけ弄ることで空気が冷たい印象を演出できます。


3Dcloudの雲は形状や分布で天候を演出出来るため本作ではレベルデザインにも活用しています。設定項目のGrid Sizeはボクセルの解像度で、Layer Height(雲の上下端の高さ)とVolume Width(雲の奥行き方向の幅)で、雲の大きさを決められます。またGrid Sizeを小さくすると風に流されたような形となり、Volume Widthを変更すると雲の見え方が変わります。また、雲を小さくすると陰影が弱くなるという特徴もあります。


雲も大気と同じく環境光に影響するため、雲1つない晴天のセラタプラでは建物の陰影が強く描写されますが、雲が少しでもあると陰影が弱められ明るくなります。ここでバンダイナムコスタジオ近くの河川敷をHTRYを使って紹介。晴天下では影がはっきり出るが、薄曇りの状態となると影がぼやけ陰影も薄くなります。そのため地面だけを見ても空模様が分かります。


次は3Dcloud Shapeの形状設定です。Upper densityを大きくすると入り組んだ雲となり、Persistanceで雲のまとめり具合を決めます。ちぎれた雲は大きな雲に比べて陰影があまり強くなく、Worley Noiseは雲のボリューム感を設定します。ボリューム感のある雲ではDiffusivityが大きな意味を持ち小さくすると輪郭のはっきりした夏場の雲のようになります。


Lightingは陰影設定です。Direct Lightは雲を透過した光で、Indirect Lightが雲自体の明るさです。またExtinctionとGodraysは依存関係にありExtinctionが強くないとゴッドレイが機能しません。Ambient Lightは空の色への影響で、Extinctionは太陽の光を雲のなかで減衰させるパラメーターです。Extinctionが弱いとゴッドレイが強くなりませんが、スクリーンスペースで行われるゴッドレイと決定的に違います。


3DcloudのEdgeNoizeは輪郭設定です。『エースコンバット7』において、淡い輪郭だと肌寒く感じてしまうために、重点的に機能を追加したとのこと。またAmplitude Scale機能を追加、視線に応じたノイズの歪みを制御しています。


雲の配置は、CouldplacementTexture機能を追加。アーティストが大まかにプロシージャル雲を配置した後にレベルデザイナーがBitmapのペイントツールで塗って更新する工程をとっており、時間ごとに設定したクラウドキーによる雲の変化はブループリントで制御しています。


負荷対策は、雲描写全体だと開発当初GPUリソースの6割を占めていました。雲の低解像度化だけでは負荷削減が足りないため、エンジニアと協力して独自に改造を施しています。標準とは異なる高速なレンダリングモードを追加するとともに、LODなど負担削減機能の追加やPSVRへも対応させています。


VRモードでは、キャンペーンと異なるレンダリング方式を取り入れており、通常PS4版中央のみ高解像度で周辺視野を低解像度化しています。これは人間の周辺視野特性を考慮したもので、PS4 Pro版では全てのピクセルを描写しています。

trueSKYは標準だと沢山アーティファクトが発生してしまいます。アーティファクト対策では、Trunslusency Modiffierを適応して対処。深度バッファを持っていないため雲の色を大気に相当する色に変えています。

雲がボクセルグリッドのワッフルやミルフィーユに見える問題については、他大気散乱などを含め多くの改善がエンジニアの協力によってSVSサンプリング機能を使って解決。見た目は改善しつつ雲が占めるGPUコストは3~4割に抑えています。


雲の実在を感強化するために色々な施策が行われました。雲に突入して塗れるキャノピーと機体の表現では、雲や雨雲をフラグにして戦闘機のラフネステクスチャにアクセスしています。また戦闘機のキャノピーは、リプレクション用のメッシュと天候表現用メッシュをガラスの厚み分ずらして重ねて描画しています。さらに雲に突入するとBGMも籠もるため実在感を感じられるようになっています。


最後に『エースコンバット7』の開発においてミドルウェア改造は高い労力を要しましたが、UE4とtrueSKYのビジュアライゼーション能力に助けられましたとも語ります。加えて、SimulやBNSなど様々なエンジニア人に感謝すると共に、本作はプライヤーからの反響大きく、雲表現に対して新たな基準を作ることが出来たとセッションをまとめ講演を終えました。


