Rain and puddle effects created with Unreal Engine.
Breakdown:
Puddle Actor:
I created the puddle as a deferred decal actor. The material uses various noise textures as masks to hide the square edges of the puddle actor, and to add controlled variation for each puddle.
I made a material function that derives ripples from these textures that I created using Houdini Labs Game Tools. This function allows further control and randomization by changing the input parameters such as ripple strength, number of ripples and the width of a ripple. As well as duplicating the function with an offset to create overlapping ripples.
Rain Particles:
Most (90-95%) of the rain particles are GPU Niagara particles in a small distance around the camera. The remaining 5-10% are identical CPU particles that also generate collision events to source the splashes, in an even smaller distance in front of the camera.
Rain Material:
Both the rain droplets and the splash particles use the same material with different dynamic parameter values.