Hi! I’m very new to Niagara and I’m struggling to understand what exactly happens when I use Event handlers.
I have two emitters and I’m trying to achieve this:
Spawn several particles from Emitter 1
When those particles die, wait for a sec and then spawn particles from Emitter 2
Right now I “Generate death event” in Emitter 1, use Event handler for that even in Emitter 2 and Receive location event in Emitter 2 (so particles will be spawned in the correct location)
However I can’t figure out how to add a delay between death event and spawning; no settings in the Emitter Spawn/Update seem to work when spawning is done by event receiver…
I tried to create a custom event by using a scratchpad but that was too complicated and even there I couldn’t find some kind of simple delay or pause node.
I don’t know the correct way to do it, but there’s a few workaround you can do
1- Have the particle opacity to 0 for the time being, and in the update check if time is less than your delay, when it switches to after the delay, add velocity, etc. like you would do normally and set a boolean variable to make those one time event trigger only once.
2- Use a middle man emitter, with no particle update and no renderer. This one receive your Emitter 1, particle lifetime of the delay you want, generate new death event, Emitter 2 receive that event.
Those are probably not the best answer, but as you haven’t have an answer in 4 days, thought that might help. Option 1 is probably better performance wise but more complex to setup.
Thanks! Your solutions seem doable and I hope this will be helpful to somebody
I, however, should’ve provided more context for my question.
I’m seeing FPS drop when a lot of particles are spawned at the same time and I thought that by adding a delay for some types of them I would be able to ‘spread’ this FPS drop.
I presume that both of your solutions won’t help with that since there still be a massive spawn in the same moment - either a spawn of invisible particles or a spawn of particles from ‘empty’ emitter.