Why does my dynamic material instance only affect one particle system in a Cascade setup?

I have a Cascade setup, with two emitters inside of it.

This setup is inside a blueprint, by itself. Here is the construction graph:


Here is the section of the level blueprint which changes the dynamic material:


Here is what happens in engine:


If I manually set the scalar value which switches the colour in the shader, it displays the colours on the particles correctly. But through the blueprint, and in the game, it only changes one out of the two emiiters.

Any ideas?

Oh, and the pertinent part of the shader network, in case its relevant:

Hey Crow87 -

Looks like it’s coming along nicely! I need a little bit more information on how you have your particle system and material set up. Can you upload a screen shot of the Dynamic Expression in Cascade and the Material Editor?


Eric Ketchum

Make sure you have the Element Index set to the emitter index value, right now there is a limitation with Cascade/MIDs and Blueprints are working to fix, which might break your setup if you sort/change the draw order in Cascade.

Your Emitter Index starts @ 0.00 on the left and increments up from L to R.

If you have more than one Emitter, you need to set an MID for each Emitter in your system.

If you only want to change the colors of your Effects I suggest giving an instanceParameter a try instead using InitialColor and ScaleColorOverLife modules, it requires far less setup.

Aha! That makes much more sense now, thanks.