Is Niagara collision reliable?

My plan was to use Niagara to create rain, and use it’s collision properties to prevent rain from falling through buildings, and water. I also wanted to gather info on what it hit so I could call events such as increase the player’s wetness when rain particles hit the player. Yet after prolonged searching, every video dealing with Niagara collision shows some particles passing through objects. I can’t have a few particles passing through my collision objects. Its unfair to the player after they’ve built their shelter to still have rain falling through the ceiling. Likewise, I doubt I can use kill volumes for my purposes. So, I need to know. Is it possible for ALL Niagara particles to be recognized and killed with any object with collision properties, and if so, how would you implement this?

On all the Unreal vids touting all the features of Niagara, oddly they seem silent about collision. I just need to know if Niagara can handle this or not, that way I can quit wasting my time searching all over the place. If Niagara can’t handle 100% collision accuracy, could Cascade? If so, how would you implement this using Cascade’s particle system?


I don’t have definitive answers, but I can answer with my anecdotal experiences and the answer is no for both. Cascade is slightly better about collision than Niagara at present but nothing works that great. Can’t even get kill on collision or stop moving on collision to work.

I don’t know how granular you need the rain to be for the player, but I think volumes might work best. You can even create them dynamically with line traces from above. Maybe even physics actors locally around the player? All depends on how much you need to do at a given time with rain, but it might be best to try to fake it while Niagara is still under development. I doubt Cascade will be getting any significant updates any time soon.

Does this tutorial help? It doesn’t deal with collision effects, but actually preventing the drops from falling inside buildings.

Jared, Thank you!!! No more searching all over the place trying to figure how get these dumb things working.

That’s an interesting idea about volumes with line traces. Originally, I had thought of spawning actors in place of the particles. But, I believe that line traces would work much better and be easier on the cpu. Using this method, I’d be guaranteed the collision would be accurate. I could spawn random invisible line traces above the player and mix that with the visuals of rain. If the trace hit any object I could easily create events and the trace would be killed. If the trace hit the player, I could easily create an event to increase the variable storing the player’s dampness level. When the player built their structures, I wouldn’t have to worry about how they designed it. Ceilings would easily block the line traces.

However, my concern is the rain visuals. I can’t use either Niagara or Cascade as both are unreliable with particles dying. Yet, I need some way to portray a rain effect. What complicates this is the fact players can build their own structures. This means they can build windows and look out the window. Therefore, if its raining and the player is inside they need to be able to see the rain outside. LIkewise, I can’t create predefined areas where the rain will be. In the future I plan on adding procedural generation for both structures and terrain. So, the rain needs to be able to interact with a dynamic world.

Since I’d be using ray traces for collision and all I need is for my rain to just fall and die. I doubt I’d need physics. That seems like that would be extra overhead I don’t need. Unless there is another use you were thinking of that would assist me in my situation?

Capsu1, Thanks for the link. I checked it out. Yet when I checked out its comments section there were a lot of people complaining that the rain collision wasn’t working properly. So, I’m thinking Jared is correct in his assumption that Niagara and Cascade collision particles are unreliable.

You know there will be some particles, which will go through the roof. This number should be small compared to a character standing outdoors. Cant you just sum all rain particles (which are hitting the player) over time? If the sum is big enough in a constant time frame, you know the player is outdoors. Only thing to do is to make the passing particles, which do not collide properly, invisible inside the player home.

If some of the particles are evading collision detection how would I be able to discern these from the other particles to set them to not visible?