Nanite は、Unreal Engine の仮想化ジオメトリ システムです。Nanite は、内部メッシュ形式とレンダリング テクノロジーを使用して、ピクセル スケールのディテールと多数のオブジェクトをレンダリングします。Nanite の圧縮データ形式は、ディテールの細かいメッシュと自動詳細レベルによる高品質なストリーミングをサポートします。
ランドスケープで Nanite を使用すると、とりわけ仮想シャドウ マップに関して、Nanite レンダリングのパフォーマンスを向上させることができます。Nanite ではないランドスケープの使用中のエディタ内パフォーマンスは、Nanite メッシュが完全に再ビルドされるまで、プロジェクト内の Nanite 対応ランドスケープの実行時パフォーマンスを表しません。ソース データは同一であるため、製品のエンド ユーザーが視覚的なパフォーマンスの変化を感じることはありません。
Nanite とその利点の詳細については、「Nanite 仮想化ジオメトリ」を参照してください。
場合によっては、ランドスケープの一部で標準レンダリングが使用されたり、Nanite メッシュが完全に更新されないことがあります。ただし、これは想定内の動作です。こうした問題を解消するには、プロジェクトを保存またはクックしてください。
技術的な考慮事項
実行時には Nanite データと非 Nanite データの両方が必要であるため、Nanite のランドスケープは既存のランドスケープ データ ストリーミングの上にストリーミングされます。非 Nanite ランドスケープ データは、ランタイム仮想テクスチャ、水のレンダリングなどに必要です。
つまり、2 倍の量のデータがストリーミングされることになります。1 つのデータ セットは Nanite ストリーミング用で、もう 1 つのセットはテクスチャ ストリーミング用です。Nanite を有効にすると、両方のデータ セットがメモリ内に常駐します。
Hierarchical Level of Detail (HLOD) およびランドスケープ プロキシ ストリーミングは、非 Nanite ランドスケープと同様に動作します。
ランドスケープ上で Nanite を有効にする
ランドスケープ テレインで Nanite を使用する場合は、ランドスケープを選択して、[Details (詳細)] パネルを使用して [Enable Nanite (Nanite を有効化)] の横にあるボックスにチェックを入れます。
ランドスケープ テレインで Nanite を使用するには、以下の手順に従います。
- ビューポートでランドスケープを選択します。
- [Details] パネルで、[Enable Nanite] を見つけて、その横にあるボックスにチェックを入れます。
[Details] パネルのランドスケープ上で Nanite を有効にします。
ランドスケープ データから Nanite メッシュ表現を作成するには、次の 2 つの方法があります。
-
ランドスケープの [Details] パネルで、[Nanite] セクションに移動し、[Rebuilt Data (データを再ビルド)] をクリックします。
または、
-
[Build (ビルド)] メニューを使用し、[Build Nanite Only (Nanite のみをビルド)] を選択します。
ランドスケープのビルド時間は、ランドスケープのサイズとタイルの数によって異なります。完了すると、Nanite ビジュアライゼーション モードを使用して Nanite ジオメトリを表示できます。
Landscape アクタに次のビューポート メッセージが表示される場合、
A Nanite error message.
Nanite メッシュは最新ではありません (たとえば、スカルプト操作後)。
Nanite データを再ビルドするか、ランドスケープ プロキシ メッシュを保存すると、メッセージが削除されます。
Nanite スカート
Nanite のランドスケープは、LOD と頂点デシメーションの標準的な Nanite テクノロジーに依存しています。結果として得られるメッシュは、カメラが非常に近づかない限り通常のグリッド トポロジを使用しません。しかし、形状の維持に必要な頂点は追加されます。このため、ランドスケープ プロキシ アクタ間の境界には、境界の両側に均等に分布していない頂点が含まれている可能性があります。遠距離では、これにより、ランドスケープに継ぎ目のアーティファクトが小さな穴として出現する可能性があります。これらは通常、十分に小さいことから、一時的なアンチエイリアスで修正可能です。
継ぎ目の発生を回避するには、[Nanite Skirt Enable (Nanite スカート有効)] オプションを使用します。この機能は、Nanite ランドスケープ メッシュをメッシュのエッジに追加の頂点の行/列分拡張し、それらの新しい頂点を [Nanite Skirt Depth (Nanite スカート深度)] で指定された量だけ下に移動します。
[Details] パネルのランドスケープ上で [Nanite Skirt Enable] を有効にします。
これにより、隣接する Nanite ランドスケープ メッシュが互いに交差し、継ぎ目のアーティファクトが表示されなくなります。
便利なコンソール コマンド
Nanite が有効なランドスケープで作業する場合、次のコンソール変数が役立つことがあります。
コンソール コマンド | 説明 |
---|---|
Landscape.RenderNanite | ランドスケープの Nanite レンダリングを有効にします。 デフォルト値は「1」です。 |
Landscape.Nanite.LiveRebuildOnModification | 変更が行われるたびに、Nanite 表現のリビルドがトリガーされます。 実験的機能です。 デフォルト値は「0」です。 |
Landscape.Nanite.MultithreadedBuild | 複数のプロセッサ スレッドを使用して Nanite 対応ランドスケープ メッシュをリビルドできるようにし、複数のランドスケープ コンポーネントを操作する際のパフォーマンスを向上させます。 デフォルト値は「1」です。 |
Nanite 対応のランドスケープを編集する際は、パフォーマンスが大幅に低下する可能性があります。そのため、Nanite メッシュのライブ リビルドをオフ (「Landscape.LiveRebuildNaniteOnModification 0
」) のままにしておくことをお勧めします。Nanite メッシュがリビルドされて最新になるまで、ランドスケープ レンダリングは非 Nanite ランドスケープに依存します。Unreal Engine は、完全にリビルドされるまでそのバージョンをレンダリングに使用するため、編集エクスペリエンスは非 Nanite の Landscape アクタで作業する場合と同じになります。