Particle sub-emitter question

Godot Version

4.3 beta2

Question

I’m using Particles to create rain and I added a sub-emitter to make the drop splash at the end, but I’m struggling with the relationship between the “Amount at end” value and the sub-emitter amount. I want there to be 3 particles that splash in random directions. For example, the rain particles are set to 50 while the “Amount at end” setting is set to 3 but I don’t know what to amount I should set on the sub-emitter node.

The way I would reasonably expect the logic behind this is that the amount on the sub-emitter should be the amount of the base rain particles amount multiplied by “Amount at end” amount.

RainGPUParticles2D - amount = 50
RainGPUParticles2D - sub-emitter setting “Amount at end” = 3
SubGPUParticles2D - amount = 50 * 3 = 150

That way the sub emitter always has an appropriate amount of particles to use for each rain particle. But setting the sub-emitter amount at 40, I get anywhere from 2 - 6 splash particles. My weather system has 3 rain weathers(drizzle, rain and storm) with different rain particle amount, so I need to set the sub-emitter amount dynamically as well.

There’s a page in the docs referring to this(in the “Limitation” portion) but it doesn’t explain it adequately in my opinion.

There are two amounts, amount at end and amount.

Amount at end determines the number of spawned subemitters. Amount is the local particle amount. And if you want 3 particles, just set it to 3.

My understanding is that the sub emitter is dynamically spawned. And they do not share particles with other instances.

Yes, that’s my understanding as well. But only setting the amount at end to 3 doesn’t work alone. Using 50 on the main and 50 on the sub emitter amount spawns anywhere from 3 to 6 particles and it doesn’t spawn on every rain drop particle. Using less than 50 sub amount spawns 3 more reliably but spawns on even less drops. Using more spawns up to 8 and on more rain drops. Unless this is a bug, there must be a sweet-spot of an amount value which is not apparent and I don’t see the logic behind it.

Here’s a gif, made the splatter particles red. I’ll include the settings at the bottom(main particles on left and sub on right).
Subemitter

I’ll give it a spin later, but in my mind I would have amount at end 1 and the subemitter setup with 3. I’m sure you have tried this. I’ll get back to you.

1 Like

Ah that would be great, thanks.

Okay it turns out it works the way you described. Amount at end controls the number of particles emitted by sub emitter. And the total number of particles is shared for all sub-emissions. (Set by the subemitter amount property)

I think your issue may be related to the subemitter lifetime. If there are still splash particles playing out, you will not be able to spawn more once the max amount is reached.

I think if you want you could just set it to a very high number and not worry about calculating it each time for the various levels of rain.

You could also setup main particle emitter with the heaviest rain and just lower the amount ratio to simulate weaker storms. That way it could transition smoothly if that is desirable.

I guess Im not sure why you see more then three particles in a splash. Maybe there could be more then one rain particle splashing at the some spot?

1 Like

I see, thank you for testing it out. I’ll try it out and see what lifetime works best. I did get it to improve quite a bit actually with just some quick changes.

I never really paid any attention to the amount ratio before. Seems to be exactly what I need since setting the amount on-the-fly resets the emission process.

I guess Im not sure why you see more then three particles in a splash. Maybe there could be more then one rain particle splashing at the some spot?

It’s hard to notice stuff like that with so many particles on screen so it’s very possible.

Again, thank you for taking the time to do all this. Greatly appreciated!