Is there a way to stop particles partially disappearing inside objects?

I’ve created a simple particle system that fires a single particle, and spawns a shockwave particle on collision with an object. My problem is that the shockwave particle always ends up being partially hidden inside the object that the original particle collided with. The portion of the particle that’s hidden depends on the camera angle.

For example, this is a screenshot of what the shockwave particle should look like:

30739-shockwave1.png

And this is how the particle actually appears when spawned from a collision event:

30740-shockwave2.png

Is there a sorting layer I can use to make particles always appear over static meshes and other objects, or any other way to prevent the particle being partially hidden by the object? Thanks for any guidance.

It also looks like it might be the wrong rotation value. Are you sure it’s perfectly aligned to the surface normal? You might want to use decals for such type of effects.

A few things here, the reason you are seeing this clipping is because it is a camera facing sprite. At this angle of the camera you will get clipping. Few options, you can try the particle module “camera offset” this will offset the particle towards the camera the amount you enter. This will help in some cases but might not solve your problem. Another option is to spawn or rotate your emitter of the surface normal and lock your sprite to a single axis. This will always keep the sprite aligned with the wall or surface. If this is an impact effect or explosion in the blueprint you can do a line trace to the wall and use that surface normal to set the emitters spawn rotation so that it is always consistent.

One last trick is to add depth fade in your material. By adding this to your translucency channel it will fade out any parts that intersect with the wall. Try messing with the settings and you can get a nice soft falloff.

1 Like

One last piece of info that might help. If you are doing a line trace or getting a hit result you can do a “break Hit result” and get the Impact normal of the object you hit. If you plug that into a function called “Make Rot from X” and then plug that into your rotation of the emitter you spawn. It will always rotate the positive X of your emitter with the surface normal of the wall.

1 Like

The camera offset module actually worked perfectly in this case, thanks so much for the answer!!

If you actually want the particle to face you and not align itself to the surface, the material used in your particle must be set to Translucent and have Disable Depth Test enabled.

See my included picture.

1 Like