Dynamic Version of Landscape Materials possible?

Hi guys,

i have a simple question. is it possible to change params of a Landscape Material during Runtime in BPs.

I know that you can create a dynamic version of a Material and change params.

But there is no “Get/Set Material” node for Landscapes or “Create Dynamic Material” and plug it into the Landscape.

I still have a solution. It works with Material Paramter Collections, but i just wanna ask, if the usual way like all other dynamic materials works too with Landscapes somehow.

Thanks in advance

Cheers

raidfire.net

You can get the material from the landscape since it is just an actor. The landscape creates sections as a component of the landscape. You can get these components and create instances for it.

Now, if you want all the sections to have the same parameters you are better of creating a Material Parameter Collection, since every section will have it’s own material assigned optimized for that specific section (i.e. if 1 section does not have grass it will compile a shader for that section without grass in it to save performance on texture look ups and blending). This means every time you update a parameter you would have to do it for all the different material instances instead of you changing it in the material parameter collection.

Perfect. Thanks

Hey Roel,
Do you know how to proceed after making a dynamic material instance?
Do i plug it in the node “set texture parameter value”? Or how do I change the material?
And would this also work with tiled landscapes?

This is level blueprint.
I want to switch landscape material instances in runtime, what am i doing wrong?

The Voxels plug in seems to be able to do this better than working with landscapes.

Create a material parameter collection and use that inside the material graph. Then, inside the blueprint modify parameters of that parameter collection.

The normal path with dynamic material instances does not work with landscapes. At least, I couldn’t get it working.