CPU particle collision not working

I’m trying to create a particle system that spawns new particles when initial ones die and I want them to die on collision with another surface. Unfortunately there is no example of a cpu particle collision in effects example map. I’ve tried to get collision to work with several particle systems and I’ve consulted Manual on this issue but I’ve found no solution. I’ve taken screenshots of a very simple particle system with a collision module. In editor viewport particles collide with a mesh and are destroyed but when I hit simulate or play button they just go through wall. I’ve also tried a brush and several other static meshes and I’ve rebuild map but particles still won’t collide.

Here are screenshots to illustrate issue and show my particle setup.

I would be grateful if someone could shed light on what’s going on.

Hey HappyDay,

If you open up Effects map, 1.1 shows CPU vs GPU particle systems. If you open that up, you can add Collision to CPU side of system. When I do that, I don’t see issue you are describing. Can you walk me through your process for creating particle system you’re having trouble with? And just to be sure, mesh particles are colliding with has collision on it, correct?

Hi ,

Thanks for your response. Seeing that you don’t have this problem, I asked a friend to test this. He couldn’t reproduce this either. I’ve spend a few hours investigating this. I’ve added collision to 1.1 particle system in effects map, as well as to a newly created default particle system, still without success. It turns out this has nothing to do with particle setup but rather with frame rate. Once frame rate drops below 30-35 fps cpu particles stop to collide. I usually work with t.Maxfps 30 in editor because with default max frame rate I get a gpu load of 100%. That’s why I ran into this issue. Turning up max fps makes particles collide without problem. My friend could reproduce it this way as well. Is this behavior intended? If not, this thread should be moved to bug report section. I hope you can clarify a bit. Thanks.

Have a happy day! :slight_smile:

One thing I would like to point out, this could be bug or perhaps it’s by design? If you use Spawn Emitter functions, no actor is created and particles do not collide. However if you create a blueprint from your ParticleSytem and spawn blueprint instead, your collisions will work.

I can confirm that particle collisions only work if they are spawned within a contained actor. I hope this will be fixed in future.

There is a bug with particleCollisions when simulating, running game currently. This is a known issue and is being investigated. We hope to have a fix ASAP.

Sorry for inconvenience.

Hello,

Sorry to bump this question, but issue is still present. collision module for CPU particles only works in editor, not while simulating.
Any news about it?

Thanks

Hey Shelby -

This has been fixed and should be coming with 4.4 release of engine.

Thank You

Eric Ketchum

I have same issue, no collision when spawning emitter via blueprint. -.-

Hey Priareos -

There is a known issue with CPU Emitter’s in Blueprints which is unrelated to issue discussed in this particular question and getting collision to function. Our engineers are working on a solution now.

Thank You

Eric Ketchum

I have same exact issue in 4.7 is this broken again?

thanks

As far as I know this simply never got fixed. I was never able to observe fix post 4.4

Hello all -

As of 4.7 Spawned CPU Particles in Blueprints will have collision based on settings you have assigned them. I have attached a test map of Particle for everyone to look at, but I specifically want to point out a few important items to check before assuming that your collisions with CPU Particles are not working.

  1. Have your set collision type correctly? By Default Collision module is only assigned to World Static, but if item that you are colliding is Movable then you will need to add World Dynamic.

  2. Have you set fixed bounds large enough? By setting fixed bounds on your particle system you will not risk having collision stop just because particle’s origin has just moved past camera frustum (view).

  3. Have you adjusted Performance Settings to best accommodate your particle system? There are a variety of settings in Performance section of Collision module that can affect whether a particle has results you are looking for. One of most important is Max Collision Distance which by default is only set at 1000 units. It is set low like this because CPU Particle Collisions are extremely expensive to Render and our engine always trys to push performance when we can. (As a note and for comparison, SM_Template_Floor Mesh that appears in many new default maps is only 1000 units by 1000 units in size.) You can and should if needed up this Max Collision distance to best suit your needs.

[Particle Collision Test Project][2]

A note about attached project I have adjusted Max Collision on all particle to 5000 but left NO FIXED BOUNDS so you can see collision fail as origin of each emitter starts to leave Camera Frustum.

Thank You

Eric Ketchum

I ran into this same issue in 4.14 also when running low frame rates. I was using a small number of CPU particles as hidden tracers for my GPU particle effect to register collisions. In performance section that is indicated by Eric, I found it was also necessary to uncheck the “Drop Detail” box. When this was checked, at low frame rates, tracer particles would just pass through my static meshes. Once unchecked, my collisions would work correctly even at minimum fixed frame rate of 15 fps.

1 Like