Cascade - sharing rotation time + event generator

takes a deep breath

I am currently working on a modular particle package, for this reason I am setting up every particle system seperately so users can easily copy/paste parts together to create new particles.

To make it easier for the users each system comes with three particles.

  1. Begin spawn. (i.e. grow from 0 - 1 in size)
  2. regular particle
  3. End of spawn. (i.e. shrink from 1 - 0 in size)
    This is all linked with event generators and recievers.

Some of these particles will rotate, and that rotation needs to start the moment they are spawned up untill they die.
Sadly there seems to be no way to pass on any values besides velocity to the reciever-spawn.
Since rotation is also a form of velocity, not being able to pass this onto the next particle spawned by the event generator I am considering this a bug.

Normal speed (spawn is slowed down)

When slowed down to 25% you can def. see that the rotation starts from origin instead of passing on the rotation to the next spawned particle:

To make things more clear, in the next video the particle will change color when the event generator spawns a new particle:

Particle setup:

If this was just for personal usage, I would have used an “init mesh rotation” to offset the first reciever spawn, but since this needs to be user friendly as well as as foolproof as possible I need to have another solution for this problem.

Please ask me for any additional information if needed, I hope to solve this asap.

Regards,

Yoeri | Luos

Hi Luos -

Assuming that you would want your users to use all three emitter stacks, you can use seeded values in the Init Mesh Rotation Rate which will allow each mesh to rotate based on the same seeded value (which can be random).

Let me know if you want to see a sample setup -

Eric Ketchum

Hello Eric, Id appreciate a sample setup because on my own I wasnt able to get any decent results :confused:

Thanks!

Hi Luos -

Ok so I am going to eat some crow here. What I expected to happen and what actually happened, totally different. The only way to share a rotation rate between mesh type emitters is to use blueprints to pass the exact same rotation back and forth.

You could also try to hack your way around it by spawning all of the emitters using the seeded values and adjusting the opacity of each when the time requires. Not as performant as using a blueprint but it will work.

Now alternatively you can use a Sprite emitter and the Emitter Initial Location module to share rotation between modules by checking the Inherit Source Rotation.

I have actually put in a feature request to add in the inherit rotation option into the Event Generator/Receiver Logic, UE-20124. It may get backlogged or postponed until Niagra.

Thank You

Eric Ketchum

Thanks for the request Eric, sadly both the blueprint option nor the opacity trick will cut it in this situation as (in my case) its for a marketplace package. I dont want it to rely on tricks or blueprints as it needs to be as clear as daylight on how to use it.

Guess the pack will be on the backburner for now.