Particle System Collision Inconsistent

Hello, I have a scene of a first person POV car driving with a rain particle system. The problem is that rain falls through the car’s roof.

In the editor, I placed the camera from the side to see how the rain goes through the car’s roof. However, watching it from this angle, there seems to be no rain falling through.

I then moved the camera inside the car, looking up, and rain still didn’t fall through the roof, however, when I placed the camera looking down, the rain started coming through. It seems depending on the camera’s position and angle, rain comes through without collision. Why is this happening? Thanks in advance.

Okay, I remember when I first tried Niagara in 4.24 I had the same issue, but it doesn’t seem to happen in 4.25. If you for some reasons can’t use 4.25, you can at least download it and see if the issue is still there.

Ok! I’ll try it out as soon as I can. Hope it works, thank you.

And another thing: are you using CPU of GPU for particles? If GPU, it only handles things that are in the field of view. Setting fixed bounds of a large size doesn’t seem to do anything; in Cascade, it was a way to force particles to be calculated even outside the field of view, but in Niagara it doesn’t, or maybe I’m doing something wrong.

Thinking of it, rain would be too expensive on CPU, depending on the number of particles, so you’re probably are using GPU.

How do I set the particles to use CPU or GPU?

There’s a parameter called “Sim Target” in the emitter settings.

Hi, AFAIK GPU particles by default only use SceneDepth for collision, therefore if you can’t see the point where the collision would happen, then there won’t be any collision.

If you’re using MeshDistance Fields, then you can use that instead of SceneDepth Using Particle Collision Mode for Distance Fields | Unreal Engine Documentation that way you can have collision of GPU particles out of your view. Of course skeletal meshes do not generate distance fields, so you won’t have collision there.

Otherwise you would need to come up with a workaround (maybe hiding the rain inside the material, or maybe with niagara you can remove particles when intersecting with a plane that you specify (car roof)) cause 40000 particles won’t run on CPU with collision.

hmm can’t seem to find it.

Oh, you’re using Cascade. I had presumed is was Niagara.

Try increasing the bounds. Click the black area to the right of your emitter, and in details check Use Fixed Relative Bounds, and set Min and Max to larger numbers (min to negative, max to positive), like 65536 or something.

But you’re using GPU sprites, it’s written on the top of your emitter. So I don’t know if setting bounds will help, but you should try it.

Even if using Distance Field I have some rain particles falling through without collision. I placed a huge thick cube on top of the car and it had less rain falling through but still a few rain particles fell through.

Even if using Distance Field I have some rain particles falling through without collision. I placed a huge thick cube on top of the car and it had less rain falling through but still a few rain particles fell through.

Maybe try adding a kill box in the particle system, and update its position on tick to always be on top of the car?

Hey sorry for the late response, I’m looking into adding the kill box but Idk how. how do I add the kill box? Thanks

Right click on the Emitter => Kill => Killbox

But frankly I couldn’t make it move in the world. The parameters are odd in Cascade. Don’t you want to try Niagara instead?

never found the the killbox option. And tried niagara but it doens’t work right, I tried making the particles on the emiter shaped like a rain by changing the sprite size on the niagara settings but it won’t change the size no matter what number I set it to. It still has the circle shaped particle.

You can add a module called Scale Sprite Size by Speed under Particle Update. Set max Y to something like 10-15 and they will stretch downwards.

What do you mean ‘niagara doesn’t have collision’? It does. GPU collision will still only work within the screen filed of view, but CPU collision works just fine everywhere.

As for your question: in Cascade, it’s “Use Local Space” in the Required section, in Niagara it’s Local Space in Emitter Settings.

nevermind, i just read that niagara doesn’t have collision. I’ll just use a cheap trick to do it. Do you know if there is a way I can lock the rain particles relative location to the particle emitter? This way I can have the rain fall in front of the car but nothing lands on the windshield therefore avoiding clipping.

Thank you so much for your help, I’ll use this cheap trick for now, maybe later I’ll try adding Niagara.