Niagara equivalent to Unity subemitters?

To keep things simple… Unity has subemitters, which basically attaches one particle system to a parent. In Niagara, its seems like this is done through Location Events (unless I’ve missed something) I’ve set this up to where one system spawns at the location of the other system, but how do I control, emission rate, and or can I have them emit from sphere/cone locations? There doesn’t seem to be much control for the system receiving the event. Can someone shed some light on this for me please? Is there another way to attach systems to eachother? Thanks!

Sounds like what you’re looking for is user variables. In the system settings (blue node) you can define variables that are shared between emitters. Say if you wanted a specific spawn rate shared between two emitters - you can add a new float parameter, drag it into the float inputs of each emitter and they will share the same value that you will need to define in the system settings. Spawn locations can share vectors and etc, you should be able to define any variable you might need in there.

System/User variables are also exposed so you can tweak the values for that specific system in the world/blueprint or wherever.

hope this helps :slight_smile:

I think I figured out what I was doing wrong. Tweaking these numbers in the pic,I was able to get a denser emission. However, I still am having trouble getting the system receiving location events to orient to the system it is attached. For example, if the system sending events, shoots up and gravity brings it down, when it changes orientation and starts to fall, the system receiving the location event does not change its orientation like the first system. Do you know how I can get the second system to follow along with the same orientation? Thanks for the help! image

By orientation do you mean position or facing angle?

Its a little difficult to understand what’s going on without a video of what’s going on / pictures of your emitters. Emitters receiving location events should be updating the particle position to match the source emitters particle position per frame. Facing angles can get a bit more technical and can require a bit of troubleshooting depending on the effect and what you’re trying to achieve. It sounds like something could be in the spawn script rather than update.

Here’s a basic set up of ribbons if there’s any comparisons you can see different.

Yeah, I have had this issue since the beginning with Niagara. There does not seem to be an easy way to use subemitters. I just want a continuous stream of particles coming from the particles from another emitter. But there doesn’t seem to be any easy way to do that - the location event stuff only triggers bursts. And ribbons aren’t the same, I need an actual stream of individual particles doing their own things (and as you said, possibly emitting from sphere locations etc).

So why not just use the Particle Attribute Reader?

Have you ever googled that? XD
unless you go down a few pages, the documentation is rather… poor. sadly.

Shameless tutorial plug :wink:

1 Like

But it’s documented in the editor though? If you don’t want to build your own, just drop in “Sample particles from other emitter”. It tells you exactly where to enter the name of the other emitter, and it has click by click support so you connect everything right.

Full Tutorial:
Add Sample Particle from other emitter module.
Click Fix issue.
Enter name of parent emitter.
No more steps.

1 Like

sadly this doesn’t come up when googling.

Leaving a small breakdown on how to use the Sample Particle from other emitter module that @Partikel said in case it’s useful for someone else:

For Unity users, it’s kinda similar to the Subemitters over there but it works the opposite way. In Unity we went to the parent emitter and told it which child emitters it should emit. In this one we go to all the child emitters and tell them what parent emitter to look at.

For this one to work both the parent and the child have to use the same Sim Target but it works with both GPU and CPU.

For this one we need to add a Spawn Particles From Other Emitter in the Particle Spawn Stage. It will give us an error, we click Fix issue.

After that with the error fixed we go into the Spawn Particles From Other Emitter module in Emitted Update and in there we write the name of the parent emitter.

Once we’ve done that it will start emitting at that position and we start fiddling with the emitter. One of the interesting things we can do is to leave this Spawn Rate at 0 and just work normaly with Spawn Burst Instantaneous and Spawn rates from the emitter.
Another one is that we can get access to information from the original particles:

With that we can sample that information and it will be put in the child particles though we can fiddle with those too.

1 Like