Can I dynamically update the parameters of an animated material in the event graph of an actor that uses it?

I have made placing zones, which consist of a decal that uses an oscillating, emissive material.

All it does is take time as an input, make it periodically oscillate up and down using a sine function and then gets multiplied with a bunch of factors. One of those factors is the Brightness, which is a float that is multiplied with the emissive colour.

What I would like to achieve is to make the brightness instance editable in my decal actor, the aforementioned placing zone.

I am trying to access the parameters of the material in the construction script of the decal actor like so:

Then I would have a brightness variable in the decal actor blueprint, which I would make instance editable and thus I could regulate the brightness of the decal inside the editor to my preferences.

The problem is that I do not see my material parameters in the construction script if I do:

  • Get Decal Component => Get Material => Set…

In cases like these, I suspect you would cast to the specific material that actually has these specific, manually created parameters, that the agnostic Get Material Node would not know about.

But there is no Cast to my specific material. And now I am slowly realising that this is probably not possible in Unreal or done entirely differently.

Can I achieve what that? Set the Parameters of my custom Material in the construction script of an actor that uses that material?

I looked for interfaces that could be implemented in the “Event Graph” of the Material, but I don’t see any class settings or anything that would allow me to send information from my actor to my material.

Here’s a similar thread I found with a solution :

tldr : you need to create a Dynamic Material Instance and then use Set Scalar/Vector Parameter Value.


[EDIT] If the above solution doesn’t work for some reason, another option is to use Material Parameter Collections :