Ballistics impacts & other violent VFX/Particles

Ok, it’s all pretty standard stuff I’d say, I should note that the included demo map and BP’s are really just examples of the FX in action and one suggested way of spawning them - you could spawn them using other methods depending on your project needs. So, for triggering the impact VFX in the demo project I have set up physical materials in the projects physics settings…

4bf4a670bcd14c5c59451eba10f341a3417a4af1.jpeg

and then made corresponding physmat assets in a folder…

with each correctly assigned to the project settings physics material…

Then, whenever you make a material you assign it one of these physmats in the material editor drop down that corresponds to whatever material FX you want to spawn when it’s hit (alternatively you can override this in the static mesh detail panel)

2b522aaa51429e9db98ff1fd9a8713df299897e8.jpeg

Then, the projectile BP (which is basically the first person template projectile BP with custom stuff added) will query the physmat surface of anything the projectile hits and selects the appropriate VFX impact and sound…

f989390443213e3e29226e401d106ef00f058cc5.jpeg

Originally I tried using the original projectiles bounce settings to make ricochets, but I found it to be too unpredictable, so I have added variables for working out when a projectile will ricochet or not based upon impact angle, which can also be modified per material (so you could make sand consume bullets, and a hard smooth material can deflect them much more). There are also variables for random velocity loss per ricochet, VFX spawn angle variance, ricochet random vector cone etc…

If i were going all out to make a realistic ballistics system, I could also add penetration, exit VFX and a whole host of other things, but first things first! :slight_smile:


For the destruction, it’s simply the built in destructible mesh system, so there’s nothing custom here except for the particles themselves…
So, you select your static mesh in the content browser, right click and then click “create destructible mesh”…

937cd6457b0c4db1ac6fd5dcbdaab7e3f094d054.jpeg

Then, just open the newly created destructible, fracture it etc and there are options to assign particle FX for when a fracture occurs. You would then simply assign the correct fracture particle for it’s material type.

d9405773da246df8e6cec5bc11373ae359c92184.jpeg