How can I make a mesh react to particle collision

I’ve got a basic level with floor and a pillar static mesh as a blueprint. I can walk around and when I touch the pillar it falls over, which is what I’d expect to happen.

I’ve also got a water particle firing from the player’s perspective, essentially copied from the Blueprint Communication example from the Content Examples pack.

This water will happily collide with the floor and a static mesh “pillar” I have in the world. However it doesn’t make the pillar collapse, only the player can make it collapse by walking into it.

This video shows the above in action: Unreal Engine 4 Water Cannon - YouTube

How would I get the water to push the pillar over?

I can post the settings of the particle and pillar blueprints if needed, but since there could be a lot I thought I’d hold off for now…

Edit

Here is a screenshot of my Blueprint for the water projectile particle:

and the Blueprint for the pillar

I hope this helps explain my current setup better.

Edit 2

I’ve resorted to adding a radial force component to the projectile blueprint and calling Fire Impulse in the Event Graph when a hit is detected, however this doesn’t quite behave the way you’d expect a water cannon to work. I think I’ll come back to this when I have a bit more experience with the engine & various editors.

Hey,

I’ve not used the feature personally but looking at the code I believe that what you want is possible. In the Collision module in Cascade, you need to set the bApplyPhysics flag to true and set the ParticleMass value to something large enough to push your pillar over. I can’t really guess at value you’d need as it will depend on how massive the pillar is and how many particles are going to be hitting it etc.

Hope that helps.

Cheers,

Si

Or you could emit a sphere with a transparent material applied to it along with the particle. This way it does not matter if you later switch between GPU/CPU particles.

I know it is a dirty hack, but it might work

Ah yes, I forgot to mention that this would only work with CPU particles.

Sorry, but I don’t know what you mean by the Collision module in Cascade. I know (think) that Cascade is the particle system editor but I can’t find anything to do with collision.

Yes, Cascade is the editor for particle systems.
Your water effect Blueprint(BP) has a ParticleSystemComponent(PSC) called Effect which is using the ParticleSystem(PS) P_Water_Projectile. Go to this asset in the content browser and copy it to a location in your game directory structure. Set you BP to use this new PS and open the PS for editing.
This will open up cascade.
At this point you should probably give the cascade docs a once over but simply, a Particle System is made up of one or more emitters. These are the columns in the main window. Each emitter is made up of various modules that control it’s behaviour.
To get the water effect to collide with the world, the emitters in this PS will have the Collision module applied to them.
Click on this collision module and find the properties ApplyPhysics and ParticleMass.

Hope that helps. If you’re still having trouble I’ll post some screen shots explaining this in more detail.

Cheers,

Si

My particle uses GPU sprites so when I try to add a collision module it only gives the option of Collision (Scene Depth) which does not have the properties you refer to. I can find them if I add a new emitter and have enabled ApplyPhysics and set the ParticleMass to various values (20 up to 10000), this still doesn’t cause the particle to interact with the pillar. I’ve edited my question with further details.