<2>映像を革新する「Lumen」「Nanite」
アーティストの作業コストを大幅に軽減する新機能
昨年のUE5初披露で大きく注目を集めた新開発の二大機能「Lumen」と「Nanite」。Lumenは動的なグローバルイルミネーション(GI)/リフレクションシステム、NaniteはハイディテールなオブジェクトをUE5内で利用するための仮想ジオメトリシステムだ。
ハイエンドなリアルタイムグラフィックスの歴史は、高速なGI≒間接光表現の進歩の歴史と共にあったといってもいいだろう。従来のアプローチでは、動的オブジェクトには対応できない静的な光源の事前計算と、動的オブジェクトに陰影を出すための(ベイクできない)可動ライトとの組み合わせを基本としていた。リアルタイムな陰影の表現には間接光が伴わず、間接光の表現にはリアルタイム性が伴わない。ライトマップUV作成や感覚的にはプリレンダリングと言っていい事前計算などの作法は、UE4デビュー時に「これからはリアルタイムレンダリングの時代だ」と喜び勇んだプリレンダリング映像方面の心にも幾ばくかの陰影を焼きつけてきた事実がある。UE4の各バージョンを通して動的GI開発が続けられてきたが、その集大成とも言えるのが「Lumen」だ。間接光・反射は完全に動的で、UE4世代でのScreen Space Global Illumination(SSGI)、Distance Field Ambient Occlusion(DFAO)を置き換えるものとなっている。効率的なソフトウェアレイトレーサーと謳われており、やはり特定の条件下ではノイズなどが発生してしまうのだが、アーティストがライトマップUV作成やライトベイクから解放され、動的に高品質なライティング結果を確認できる恩恵は非常に大きい。
他方、アセットのハイディテール化要望は絶え間なく、スカルプトやフォトグラメトリーで得られたハイメッシュをリアルタイムモデルへ落とし込むリメッシュ・法線ベイク等の作業コストは常に現場に累積してきた。この問題を解決するために開発された「Nanite」では、知覚可能なディテールのみ高度な圧縮によってストリーミングする。描画に必要な分だけ自動的に詳細度を可変させるため、基になるメッシュが数億ポリゴンというハイメッシュであってもレンダリング時には問題にならない。これにより、上記作業やLOD作成などの作業負担からアーティストが解放されれば理想的だ。試行錯誤の積み重ねの上にあるLumenと比べれば完全に新開発の技術であり、当面は各種制約の中で威力を発揮できる場面の模索が続くことになるだろう。
目玉機能① Lumen
Lumenでは、デフォルトではまず近傍2mをメッシュ距離フィールドを用いて詳細にトレース、追って2m以遠をグローバル距離フィールドを用いてより高速にトレースする。メッシュ距離フィールドはカメラの移動に応じて動的に計算され、場合によってはメッシュ距離フィールドの品質がレイトレース品質を左右する。ちなみに対応しているマシン環境であればハードウェアレイトレースも指定可能。現在のところ、デフォルトでは1080p/30fpsで計算され、こちらもUE5で新開発となるTemporal Super Resolutionでアップサンプリングされる。なお、Lumenは現世代機(PS4・Xbox One世代)やモバイル環境ではLumenはサポートされておらず、またモバイル向けの動的GIの開発も予定されていないとのこと
▲LumenのGI成分
▲Lumen使用環境では、エミッシブの値が1を超えるマテリアルは光源のように周囲を照らす。キャラクターへの反射も完全に動的に計算される
▲ノイズが発生するケース。よく見ると、壁の照り返しが均一に減衰すべきところ色むらが発生している。この色むらは実際のビューポートではかすかにゆらめいて表示されている
目玉機能② Nanite
Naniteを用いることで、いかなるハイメッシュであろうとカメラから見て知覚可能なディテール分のみストリーミングされレンダリングが可能となる。例えば、古代の谷に登場するボスキャラクター「古きもの」は5,000万ポリゴンだが、実際にプレイしてみると描画負荷を感じさせず、アセットの品質のみを享受できる。ちなみにNaniteの利用には、必須ではないものの仮想テクスチャの利用が強く推奨され、「古きもの」のテクスチャも仮想テクスチャとなっている。現状、スケルタルメッシュやモーフなど変形するメッシュには対応していない、マテリアルのブレンドモードは不透明のみ対応、両面には未対応など制約も多いが、UE5のバージョンが進む中で技術的にも成熟していくと思われる。Naniteメッシュ作成時の精度は自動的に決定されるが、手動で設定することも可能で、精度を高めるとディスク容量がかさばり、精度を落とすとディスク容量が効率化される。高精細アセットの描画はNaniteによって問題ではなくなる一方、『古代の谷』のファイルサイズにも表れている通り最終的なデータサイズおよびその受け渡しが次のボトルネックになることが示唆されている
▲Naniteメッシュで構成された「古きもの」。実は大量のスタティックメッシュで組み上げられアニメーションさせている狂気の逸品
▲Nanite概要表示。左下の緑がNaniteメッシュで、赤が非Naniteメッシュ。左上がストリーミングされている三角ポリゴン。遠景は、知覚可能な範囲を超えて過剰なメッシュ密度にならないよう動的にリメッシュされている。なお、Naniteメッシュは通常のワイヤーフレーム表示には映らない
<3>マップ構築、サウンド面での新規軸
その他の機能アップデートも盛りだくさん
UE4世代では、大規模マップ構築時にはWorld Composition(ワールド合成)を用いて複数のサブレベルを統合しながら作業が進められた。UE5ではこれを刷新し、単一レベルをセルに分割しロード/アンロードする自動ストリーミングシステム「World Partition」として提供される。アクタをレイヤー化してランタイム時にロード/アンロードする「データレイヤー」、アンロード中のセルのコンテンツをプロキシメッシュで視覚化する「Hierarchical Level of Detail(HLOD)」、レベル内のアクタを個別ファイルに保存することで競合を避け、共同編集を可能とする「One File Per Actor」、サブレベルをモジュールとして扱い移動・回転・スケールなどを可能とする「レベルのインスタンス化」といった機能が「World Partition」と連携し、大規模マップ構築を効率化。なお、World Compositionも存在しているが非推奨となり、今後削除される予定。
また、UE5ではサウンド面にも大きく手が加えられた。サウンド キュー、サウンド クラス、サウンド ミックスがレガシー化し、これらを拡張したサウンドレンダリング機能として「MetaSounds」を開発。ノードベースでBGM、SEなどの音データを制御できるようになった。
このほか、アニメーション分野ではフルボディIK/Motion Warping、物理演算ではかねてより実験的機能だったChaos Physicsが正式リリースとなった。このほかにもゲームプレイやパフォーマンスに関する機能強化・追加が行われており、公式ドキュメントを確認していただきたい。ちなみに、UE4はこの秋には4.27アップデートが登場予定でプレビューが始まっている。来年初頭のUE5正式リリースと合わせて、どちらも継続的に注目していきたい。
例えばSequencerにとってのMatineeがそれにあたるのだが、従来の機能を置き換えるかたちで登場した新機能の多くは、UE5EA時点でならUE4世代の機能も同梱されている。これらの多くは、正式版では削除となる(Matineeもついに削除となる)。従来からのユーザーは新旧の機能が同居している今のうちに移行関連の検証を進めることが望ましい。
刷新されたWorld Partition
▲古代の谷でのWorld Partitionとデータレイヤー。World Partitionは任意のセルを選択し、ロード/アンロード可能。またデータレイヤーはランタイム時に適宜アクティベートされる。UE4でのWorld Compositionを置き換える機能であり、変換のためのコマンドレットも用意されている。上書き、または変換したマップを別名保存するかを指定可能
▲レベルのインスタンス化の例。このようにスタティックメッシュで構成したレベルを別のレベルへインスタンスし、1つのアセットのように扱うことができる。多くの機能が複雑に絡み合うWorld Partition周りはまだ不安定なようで、筆者の試行時にもデータレイヤーの切り替えでUE5EAが落ちてしまったり非常に時間がかかることがあった(とはいえUE5EA全体としては、正式リリースまで半年以上ある現時点では驚くほど安定しているというのが率直な感想だ)
MetaSoundsの登場/Chaos、Niagara、Control Rig 正式版
▲ダークワールドの環境音を担当するMetaSoundsアセットの例。ピッチをランダムに変動させるなどの処理が加えられている
▲Rig GraphでFull Body IKを組んでいる様子
▲IKが動作した結果。斜面や岩など地面の凹凸に合わせて足のポーズが調整される。このほか、倒壊した瓦礫を飛び越える箇所では手を着く動作で手側のIKを確認できる
▲「古きもの」が立ち上がるシーンで確認できるエフェクト類。大きな瓦礫はChaos Cache、小さな石はNiagaraで表現されている。どちらもこれまでのUE4で試用できたが、UE5正式リリースと共に正式版となる。これに伴いPhysXやCascadeは廃止・非推奨となり、UE5EA時点では同梱されているが追って削除される。CascadeデータをNiagaraへアップデートするコンバータを開発中とのこと