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.
Example of transition material:
