How can I expose elements from each emitter in Niagara?

Hi everyone, I’m new here, first of all I want to say hi and thank everyone for the great jobs and helpful posts.
I recently started an internship and I was asked to find a way to make the effects in a versatile way, so that the same effect, for example a muzzle flash, can be used for different kinds of weapons by controlling its size, emission, color, etc, without having to create a new system for each of them.
I thought, if I could expose the parameters I would probably be able to control them through blueprint, but have no idea if that’s possible.
Is there a way to achieve that kind of result?
Thank you so much!
In case I wrote in the wrong section, or in the wrong way, I apologize, it’s my first topic here :slight_smile:

Hi and welcome to RTVFX! :slight_smile:

I just assume you are using Niagara to build your vfx.
What you are saying is indeed possible via User parameters. The User parameter can be set via Blueprints and you can use it inside your System as a parameter wherever you like.
E.g. If you wanted to scale the size of the muzzle flash, you can multiply the size with your float User parameter and then adjust it in the Blueprint for each weapon.

This tutorial shows how to create one and set it via BP.

1 Like

Thank you, and yes, I am working in Niagara, I forgot to specify. Yes this seems indeed what I’m trying to achieve. Seems like a lot of work when you have several emitters inside the system, but I guess once the blueprint is ready, and set for one weapon, it’ll become quite faster adding different ones and just changing the variables for each different instance.
I’m feeling so relieved :sweat_smile:
Thanks again, I’ll post some updates.

1 Like

Another way might be to use local space effects. Those have drawbacks, but they’re easy to scale – they inherit the transform.

Unfortunately in this case it wouldn’t work because not all the emitters could be turned local.
Also sometimes it seems like not all the elements scale evenly. Maybe it’s because I use a lot of curves for floats, and random numbers, not sure.