One thing niagara is actually great at (at least before chaos that is) is figuring out particles and collisions.
Simulating rain with droplets and collision is actually not very taxing on any half decent GPU.
With a little work, the droplets can also be told what to do depending on the type of surface they encounter (in water they would just destroy, on hard surface of any kind they’d possibly split/bounce).
Keep the effect constrained to the player’s visible field. Let’s say 10m ?
Test with 1000, 10,000 and 100,000 particles to bench performance.
Above all, do not make the material of the droplets transparent. It’s absolutely fine with just a simple mask. Possibly you can stretch them vertically (towards the z) depending on their speed.
Do not create the particles so up above that the emitter has to spawn for a minute before you see results either. 1 player height above is usually enough.
Last but not least.
Dropping on water surfaces you are better off creating a special shader.
To do this, usually you make a radial gradient so that you can run a sinen function over the image to generate the ripple s at different intervals - surely there’s a tutorial out there on this.
The downside is that it isn’t actually coupled to the hit point of the droplet.
The alternative to that would be more performance taxing - spawn a flat mesh that creates the ripple.
This is very error prone, particularly at the edges of water where the ripple will spawn and be visible onto non water like geometry.
I suppose you could mask it out via distance to nearest surface maybe, if the water sheet doesn’t give a false positive.
The problem becomes performance at that point.
Bench and simplify things as much as possible, always.
And do keep in mind that with chaos, it just may be impossible to do 100k particles Plus whatever other situations the game needs.
(Also note that no dev on here or elsewhere as ever acknowledged the immense performance drop that chaos has brought over phisX so far…)