I’m trying to create a kind of random generation system where objects will only spawn in specified zones which I can paint on a landscape.
Currently I have made a blueprint that runs traces over the entire landscape and every time it hits landscape, the vector gets added to an array. Once the trace has finished, I save it out to a file so I can load it later (pre-compute so I don’t have to trace at every startup), that works great so far.
So for the zones I was going to have a specific material that I can paint with, in my trace blueprint I could then check if the trace hits the zone material, and only add the places that hit the zones to the array.
This is where I’m a little lost, I have my landscape material with different layers in it (example: dirt/grass/zone), I add it to my landscape and I can paint with it.
Now the problem, I don’t want my zone texture to be visible to the end user. I got thinking I could disable the texture for the user, but if I did, it would competently mess with my layer weights. Is there a way I could paint one texture in a different channel (like the paint tool, unlike the landscape painter). So have my grass/dirt/other textures in one channel and my zone in any of the others, I could then just disable the channel my zone texture is in. Also, I know I could use a super super low layer weight for my zones, but then I wouldn’t be able to see where I have actually painted them in the editor, thus the dilemma.
Now if I could somehow set two competently different landscape materials (without using layers), it would have been super easy.
Anyone have any ideas?