UE5のNaniteシステムについて
こんにちは!
大阪開発のデザイナーJです。
今回はUnrealEngine5のコア機能である、
Nanite(ナナイト)について簡単に紹介しようと思います。
Naniteは、一つの機能ではなく、様々な技術を複合的に適用して結果を表示するシステムです。
公式的な概要は「新しい内部メッシュフォーマットとレンダリング技術を使用してピクセルスケールのディテールと多数のオブジェクトをレンダリングするUE5に新しく導入された仮想化ジオメトリシステム」らしいです…が、
正直何を言っているのか自分でも分かり辛いのでもう少し簡単に説明しますと、
Naniteジオメトリを使用することで、ZBrushでスカルプトしたハイポリゴンメッシュや3Dスキャンで製作されたMegascanモデルのように、少なくとも数百万個のポリゴンで作られた映画品質のデータをクオリティ損失なく使用できるようになります。
まず、Nanite仮想化ジオメトリシステムの基本的な原理を軽く説明します。
Naniteはものすごく多い三角形ポリゴンを一定数ごとにクラスターという単位で束ねてくれます。
ここのように束ねられたクラスターは、さらにいくつかのクラスターに束ねられ親クラスターになります。
これらのプロセスをNaniteシステムが自動的に処理します。
これまでほとんどのゲームの最適化作業ではポリゴンを表示する際にその物体が画面から遠くなったりカメラの角度が変わったりすると、
製作側で既に作っておいたローポリメッシュにすり替えて性能の過負荷を防ぐ方法(=LODシステム)が使用されてきましたが、
LODを使うと物体が遠くなった時に突然メッシュの形が変わってゲームのバグが発生したように見えてくるのでゲーム没入度が低下する可能性があります。
△ (LODの場合)
しかし、Naniteを利用すると物体が画面から離れた時にハイポリメッシュがシステムの演算で自動的にクラスター化されたローポリメッシュに圧縮されます。
これによって一般人の視線で見てもメッシュの変化を感じ難いのでもっとナチュラルな最適化が出来ます。
△ (Naniteの場合)
以上、UE5のNaniteシステムの大まかな機能についてのご紹介でした。