5️⃣

【UE5】Landscapeのペイントがバグってしまう時の対処

2023/07/02に公開

環境

  • Unreal Engine 5.1.1
  • Windows 11

バグの内容

Landscape 様々な地形を塗り分けたく、 Layer Blendを拡張していたら、
塗って保存した後に以下の様に、一部のセクションのテクスチャが表示されない状態となりました。

原因

ログを見ると、以下のような警告が表示されていました。

LogShaderCompilers: Warning: Failed to compile Material
/Game/MyContent/Material/M_Landscape.M_Landscape 
(MI:/Game/MyContent/Map/NormalScaleMap.NormalScaleMap:PersistentLevel.Landscape_6.LandscapeMaterialInstanceConstant_0)
for platform PCD3D_SM6, Default Material will be used in game.
Shader is using too many Samplers: 17 (only 16 supported)

調査を進めたところ、DirectX11の仕様で、一つのマテリアルには 16個 までしか
テクスチャが割り当てられないため、この問題が起きているようです。

対処

Texture Sample ノードの設定項目に Sampler Source
という項目があるので、 Shared: Wrap に設定してください。

これを全ての Texture Sample に設定します。

マテリアルの Stats を表示しておくと、
Texture samplers の数が表示されます。
これが 16 以下となっていれば問題が解決しているはずです。

結果

参考サイト

https://historia.co.jp/archives/5988/
https://forums.unrealengine.com/t/landscape-material-turns-default-gray-while-painting/334139

Discussion