I’m trying to create several different transition effects that can each affect any mesh in my scene, and I’m wondering what the best way to do this is (and whether it’s very different with the Substrate system, which I want to use). When I say “transition effect”, I mean something like an effect for a magical spell, such as a sparkly, magical “dissolve” that spreads across a material by ramping up a parameter that influences opacity and emissive via a greyscale alpha texture.
If I only wanted to have one type of transition work with, say, an apple, I’d just add a few nodes into my M_Apple material to drive the effect, and expose a float parameter to control the transition via BPs or C++. However, if I have 50 different items in my scene, and 5 different transition effects that can be applied (e.g. Dissolve, Inflate, GrowMould, Shatter, Burn), that would be a huge number of nodes to add into each of many materials. What’s the best approach to this with the new Substrate system and material functions?
For example, is there a way to parameterize a Material Function(MF) inside a Material Instance(MI)? I was thinking that I might then be able to load a different MF_Transition into a Master Material(MM) as and when they’re needed, and blend the Material Attributes (MA) from the MF_Transition with an MF_BaseMaterial in a standard way inside that MM.
Hopefully it’s clear what I’m trying to do, and I sort of feel like it’s fairly common to need something like this in big games with lots of spell-casting or effects. Or would they just create 250 different MaterialInstances to get Banana_Dissolve, BananInflate, BananaGrowMold, etc?