広大なオープンワールドの構築
本作はオープンワールド制を採用しており、廃墟や砂漠、森林といった様々なロケーションをシームレスに移動することができる。広大なエリアをどのように管理し、つくり上げていったのか。
フィールド設計本作のフィールドマップは広大で地続きになっており、大きく分けて6つのエリアで構成されている。仕様策定にあたってはプレイヤーの最も速い移動手段で見晴らしが良いロケーションを移動し、滞りなく読み込めるメモリ量を算出したという。具体的な基準としてはシーンでのドローコール数を500程度、200万ポリゴンに定めた。メモリ内訳はおおまかに背景1.9GB、キャラクター0.8GB。「メモリサイズが収まるようにするとCPU/GPUともにだいたい収まっていました」と亀岡氏
ライティングにはリアルタイムGIソリューションミドルウェアの「Enlighten」を導入。処理速度面でもまったくネックにならなかったという
Enlightenでライティングを設定している画面
ヘックスによるエリア管理とLODフィールドマップは一辺が100mの六角形(ヘックス)で区切られて管理されており、ヘックス単位でデータを編集したり読み込んだり遠景用のローモデルに差し替わったりするようになっている。具体的にはプレイヤーが今いるヘックスと隣接する合計7つのヘックスは近景モデル、その外側は遠景モデルで表示される
少人数での制作だったため、背景アセットはハイモデル制作からローモデル制作まで一連をアウトソースし、納品後に処理やメモリ、レベルデザイン変更等に合わせて修正したという
処理負荷軽減のための施策本作の開発ではフィールド各地での処理負荷を定点的に観測するパフォーマンスツールを作成して処理が重い場所を特定し、対策を施していったという。中でもリアルタイムでの影生成の処理が重かったため、影生成用のローモデルを必要最低限だけ用意した
また、背景に敷き詰めた草は当初1bit抜きで作成していたが、重かったためにポリゴン化 。その上である程度の草をひとまとめのグループにしてドローコールを抑えるしくみを入れ、処理軽減を図った
背景を彩るポストエフェクト本作のビジュアルを一段と魅力的に見せるための手法として、「カラーグレーディング」「ボリュームライトエフェクト(VLE)」「360度対応のフォグ」がある。カラーグレーディングにはルックアップテーブル(LUT)を利用する方式が採用された
【画像左】 はカラーグレーディングなし、【画像右】 はカラーグレーディングあり。緑が非常に瑞々しく感じられる
VLEは光源からレイマーチングを行い遮蔽を考慮して生成したスキャッタ情報【画像左】 を背景に合成してライトシャフトを表現するものだ【画像右】
フォグはこれまで1色を指定するシンプルなものだったが、本作ではPhotoshopで作成した32×32×6(RGBA8)のキューブマップを使用して360度に対応したものになっている
フォグ用のキューブマップ。太陽光が散乱している様子まで再現されている
クオリティと処理負荷対策を両立したエフェクト制作
爽快感のあるアクションを表現する上では、アクションに付随するエフェクトの役割も非常に大きくなる。本作では実機上で構成要素を組み立てていくというユニークな手法が採られた。
実機上で組み立てるワークフロー
本作のエフェクトを構成するテクスチャやモデル素材はPhotoshop、After Effects【画像左】、Maya【画像右】を使用して用意された
素材をWebベースのアセット管理リスト【画像上段】に登録した後にゲーム実機上で動作する内製ツールで呼び出してシェーダを設定【画像下段左】。同じく実機ツール上でキャラクターのモーションに合わせてエフェクトを指定し、複数のパーツを重ねて構成してい【画像下段右】
一般的には作業PC上でエフェクトを組んでから実機にコンバートして確認するケースが多い印象だが、リードVFXアーティストの中島史音氏いわく「実機上で構成していくので、ゲームを走らせてチェックしながらその場ですぐに変更を適用することができます」とのこと。ゲーム中の処理負荷を確認しながらトライ&エラーをくり返すVFX制作に適した環境と言える
処理負荷対策 (1)ディザ抜きエフェクトといえば半透明のため描画負荷が高いというのが特徴でもあるが、本作ではディザによる抜きを利用して不透明で描画することで処理負荷の軽減を図っている。ディザだとドット感が気になりそうだが、抜き具合の調整とポストエフェクトのブルームにより目立たないようにしているとのこと
ブルームが適用された状態。爆発のような頻繁に登場する素材は、なるべくどの場面でも活用できるよう汎用性を意識して作成したそうだ。また、エネミーのエフェクトは数が多くなるため、汎用的なデータを使いやすいかたちでオンメモリにしておき、ゲーム中いつでも呼び出せるようにしているという
処理負荷対策 (2)サブエフェクトさらに処理負荷対策として、表示優先度の低いパーツを「サブエフェクト」と定義して生成個数に制限を設けている。例えば爆発であれば爆炎本体は常に表示する必要があるが、飛び散る火花は消えても良い要素なのでサブエフェクトに指定する。そうすれば火花は一定の個数以上生成されないため、処理負荷をコントロールできるというわけだ
ちなみにエフェクト全体では1,500個が生成数の上限で、そのうちサブエフェクトの上限は700個になっているという
大量の弾表示と擬似光源『ニーア』シリーズの特徴として、エネミーが大量に弾を発射する弾幕シューティングのような要素がある。本作ではテクスチャを単にビルボードで表示するのではなく、コンピュートシェーダを使用しいったん3D空間上で描画してから丸い形状の板にインスタンシングで描画することで、弾の立体表現と大量表示を両立させている
弾は4種類まで混在できるよう対応
弾の絵柄を変えると弾の角度まで描画に反映されていることがわかりやすい。また、弾には丸影のようにテクスチャを背景に投影させる疑似光源をもたせることで、プレイヤーと弾の距離感を測りやすいよう工夫されている