In my level, I want to change the material of the whole scene into another after an interaction. As in, the player character gets a memory chip from a chest, then is able to interact with a specific machine which should be the trigger for the material change. Before the interaction, the level should be just white, like the “Copied City” in Nier:Automata:
I’ve tried it with a placeholder material but it’s the wrong way around and it doesn’t affect decals. It also doesn’t work with my grass as it can’t use the opacity map:
For multiple meshes in level you doing it wrong (not optimal way).
Instead create single MASTER material. Makes some float parameter like “Transition”. Then expose textures for both states of transition. And linear interpolate between them.
Then create instanced material for each mesh, and apply correct textures. And then either go trough all of materials and change parameter “Transition”.
Or use parameter collection (in master material) expose (use) that “Transition” from collection instead of from parameter in material. Then is matter of changing that Transition in collection.
So TLDR:
make master material with Transition, and textures as parameters.
make instanced materials, set up textures, apply instanced materials to meshes
either animate transition for each mesh, or use parameter collection and change it there
You can also use post process material and volume, and change saturation/colors etc. Not sure if you really need to change materials or just colors of whole scene.