Can you feed a curve as parameter to a Niagara system via blueprints?

I have a Niagara emitter with particle color based on a curve. I need to use it in three different blueprints with three different colors. Now, the color itself is consistent, but the alpha channel changes, so I probably can’t really use color as vector.

What I have now is three different Niagara systems with three different curves, but for some reason I feel that it’s more expensive than having one system with a curve changed. So is it possible to do that in BP?

Thank you.

Sorry for reviving the old topic, but with the major Niagara update maybe there are some new not-so-obvious options to do what I need. I can set Color from Curve to read from User Parameter, but I can’t seem to find the option to set that parameter from a Blueprint. Maybe I have to convert Color Curve to something else before feeding it to the Niagara System?

I’ve been digging into this myself, it seems like you can’t pass a curve into a niagara system user variable at runtime currently. You can only copy the data within a curve asset in editor-time because it looks like they are different types on the C++ level.

I haven’t dug into why this is the case yet but its pretty unfortunate, anyone know if this is planned to be updated at some point to allow more flexibility for curves in the future?

I’m on the full release at this point 4.25.3

Found a hard way (no coding)

Use interpolation method convert color curve to a color array.
Feed the color array to Niagara user parameter from blueprint.
Then use “Select Linear Color From Array”, choose “Array Sampling Mode” to “Interpolate”, set “Interpolation” to your origin CurveIndex setting.

How to convert color curve to a color array? I can’t find “interpolation” in blueprint to do it.