
[UE 5.4] Nanite Tessellation を使ったディスプレイスメント表現について
概要
お疲れ様です。VolcaでモデルTAを担当している TSAI です。
この記事では、Unreal Engine 5.4 の Nanite Tessellation を使った Displacement について紹介します。
Displacement を扱うに当たり、当初は Nanite Displaced Mesh というプラグインを使用しようとしましたが、非常に重く、設定も煩雑で、
なによりタイリング設定もなく、
とても使いづらいという問題に遭遇しました。
そこで、新たにUE5.4 に実験的に追加された Nanite Tessellation 機能を使うことにしました。
これにより、マテリアル側でディスプレイスメントマップを使用できるようになります。

手順
① UEフォルダ内のコンソールコマンドファイル設定
Nanite Tessellation は現時点、Epic Games社が開発中の機能です。
これを有効化するためには、DefaultEngine.ini ファイルに以下の2行を追記する必要があります。

② モデルのNanite Settings設定
モデルをダブルクリックすると、直接そのモデルの詳細設定に入って、
詳細(Details)の Nanite Settings 項目下の Enable Nanite Support チェックを入れます(重要!)

③ マテリアルでディスプレイスメントを設定
マテリアル画面での設定が必要です。
まずは該当するマテリアルを開きます。
マテリアルの本体を選択し、詳細(Details)が表示されます。
Usage設定にある Used with Nanite のチェックを入れます(重要!)

Nanite 設定にある Enable Tessellation のチェックを入れます。

これで Height マップをMaterial に接続すれば Nanite Tessellation が使えるようになります。
④ Displacement Maps(ディスプレイスメントマップ)用意
Height map と同様、モデルの表面の凹凸変化を制御するためのグレースケールテクスチャです。
明るい部分が盛り上がり、暗い部分が凹むように変形です。

グレースケールで使用するマップを正しく機能させるために、
テクスチャ設定で「sRGB」がオフになっていることを確認してください。

⑤ Tessellationのパラメーターを調整
Magnitude(強さ)
主にディスプレイスメント(Displacement)や関連する効果の強さです。
値を大きくすると、凹凸がより大きくなります。
Center(中心値)
主にディスプレイスメント(Displacement)やハイトマップ(Height Map)の基準点(中心値)を設定するためのものです。
この値を基準にして、どの部分が凸(盛り上がる)になり、どの部分が凹(へこむ)になるかを決定します。
0.5 を指定すると、50%グレーが基準となります。具体的には
ハイトマップの値が 0.5 未満の部分は凹、
ハイトマップの値が 0.5 を超える部分は凸となります。
Nanite Tessellationの適用後にボリュームやシルエットが変わった場合、
こちらのパラメーターを微調整するのがおすすめです。


Nanite Tessellation が適用できた様子です。
NormalマップやParallax mapping(視差マップ)より表現力が向上します。
活用例
Nanite Tessellation 技術を活用した作例です
レンガや石壁などに適用しています


まとめ
Nanite Tessellation を使った Displacement は、リアリティや複雑なジオメトリ表現が求められるシーン制作に最適です。
Unreal Engine の最新レンダリング技術の中でも特に注目すべき機能といえるのではないでしょうか。