So i have found the solution !
I know im a couple years too late, but that might help someone else hopefully.
I had the same kind of issue for a splash particle system for when the player jumps in the water.
I needed the water droplet particles to Splash out of the water and then falling back down, then, upon colliding with a surface, spawn a new particle of an animated effect :
-
If the Particle Collide with Anything but water ( ground, player…) it create a little “splash” particle
-
If the droplet collide with water, the splash particle spawns but also a little circular wave particle.
Splash :
Wave :
So basically, when the droplet collide with water, both new particles spawns, but when it collide with the floor or anything else than water, only the splash particle spawns.
Problem ; You can’t have 2 Generate collision event.
Solution ; The first emitter, the main one, will have a global collision channel, like “world dynamic” so it respond to everything.
Then, You need to spawn another particle, a “Ghost” particle on collision.
This ghost particle must spawn exactly on the collision spot of the first one, like my water droplets, it must have a short lifetime.
To spawn the ghost particle, i create a generate location event on the “droplet” emitter
but this location event must be triggered only when the droplet particle collided, so i link the parameter “Has_Collided” to : “Event generation Enabled”
that way i spawn the ghost particle only after the collision of the droplet.
On The Ghost particle, i create a recieve location event coming from the Droplet Emitter.
to spawn the ghost particle only once, remove all kind of spawn modules and set it like so ;
You should start to understand where i’m going, the Ghost particle will send a secondary collision event with a different channel.
The droplets emitter sends an event for collision channel A and the the ghost emitter sends a Collision event to Channel B.
The issue now, is that the ghost particle dosent really collide with anything since it dosent have any motion, so you need to add a downward gravity to it, make it pretty fast so as soon as the ghost particle spawn, it almost instantly collide with the surface and therefore generate the event.
This is cumbersome and annoying to do, but at the end of the day, i think its the only way you can have one emitter spawning different emitters based on Collision Types.
Here’s the result, note the difference on droplet impact when they are in the water or outside the water.
Hope it can Help someone !