【UE5】Landscape MaterialのNanite Teselletionがなんかおかしくなった時の修正方法
Landscape MaterialのNanite Tesselletionですが、最近までちゃんと動いていたのに新しくCobblesStoneというマテリアルを追加して高さを調整しようかと思ったらMap4だけDisplacementが全然動かなくなっていたようで、石の高低差が出てこない。
デバッグ表示のNaniteビジュアライゼーション->三角ポリゴンで見てみる。どうやらLandscape MaterialのNanite Tesselletionは効いているようなのですが、三角ポリゴンがでっかい。1mくらいある。
と言ってもLandscapeの[Nanite位置精度]も間違って設定を変えてしまっているわけでもない。
ちなみにほかのマップで同じLandscape Materialを使っているのですが、そっちではちゃんとDisplacementが動いています。なんでだよ。
ガチャガチャ試行錯誤していたら犯人の捜し方らしきものはわかったので備忘録です。
やりかた
まず下記のあたりは確認しましょう。
1.Landscape Material
1-1.テセレーションを有効にする がTrueになっているか。
1-2.複数マテリアル使ってレイヤーにしていると思いますが、全部にDisplacementがセットされているか。
2.Landscape MaterialのInstance
Overrideの項目のテセレーションを有効にする がTrueになっているか。
3.ワールドのLandscape(アウトライナーから選択する)
Naniteを有効化 がTrueになっているか。
4.ランドスケープモードのペイントのレイヤー情報が壊れていないか。(私はこれでした。)
ちなみに私は今回は4番目が原因だったので、以下の手順で犯人捜ししました。
ビューポート上のライティングあり→Naniteビジュアライゼーション->三角ポリゴン or 概要 を選択して、表示画面を変える。
派手な色の三角形だらけになります。これがNaniteで処理した後のワールド内のポリゴンです。
ランドスケープモード →ペイント →ターゲットレイヤーにいって、1個ずつ削除します。右の×ボタンです。
どこかのタイミングで三角ポリゴンが小さくなりました。 直ったということです。
今回の私の犯人は「Grass」レイヤーでした。
Grassレイヤーを削除して、レイヤーの[+]ボタンからもう1回Grassレイヤーを再作成しました。
で、ときどき1-2.が犯人の時もある...
1-2が犯人の時は、とりあえずすべてのマテリアルレイヤーに対して、0.5をセットしたScalarノードを[Displacement]に接続することで解決します。
うん。まさにGrassのSet Material AttributeのDisplacementには何も接続されていなかった。根本的にはこれが原因だったわけです。
