Rain is the effect people hand-animate most often, and it is the one least worth hand-animating. Every drop is the same shape doing the same thing at a different offset. Here is how to get it from a single rule instead.
Draw your background, characters and props as a single still image — or import a PNG you already have. There are no layers to set up: the picture you paint is the simulation state, which is why the effect can react to it.
Open the Rule Editor and create a new rule, or pick Rain Streaks (behind objects, BASE) from the template list and skip the typing. This is the whole thing:
PARAM _rate = 6;
Y == 0 ? (RN < _rate ? [255, 90, 150, 255] : [BASE]) :
(N.B > 230 & N.R < 120 & BASE.G < 150 ? [255, 90, 150, 255] :
(B > 230 & R < 120 ? [BASE]))
_rate is the density: how likely each cell along the top edge is to spawn a drop on a given step. Raise it for a downpour, lower it for drizzle. You can also keyframe it on the timeline so the rain builds during the loop.
Toggle the globe icon on the rule so it applies to every cell rather than only the cells you painted it onto. Effects that sweep across a scene are almost always global.
The grid starts stepping immediately. Adjust the live parameters below the script while it runs — you do not need to stop and restart to see a change.
File ▸ Export ▸ Animation. Set the frame count to the length of one cycle and Phluxel writes a seamlessly looping GIF. The same dialog exports MP4 and APNG, and there is a separate sprite sheet export if you are taking this into a game engine.
Rain only enters a cell whose original colour has green below 150. That is what makes drops vanish behind bright objects instead of painting over them — the object absorbs them.
This is the part that usually surprises people coming from layer-based tools. There is no effect layer to composite. BASE is a token that always reads the original, untouched version of the cell, so a rule can paint over your scene one step and hand it back the next.
Set Max steps in the Playback panel to the number of frames you want, and the simulation returns to the start when it reaches that count. Export the same number of frames and the GIF has no visible seam. If the loop still jumps, the usual cause is a motion cycle that does not divide evenly into the frame count — a drop that needs 21 steps to cross a 20-frame loop will always stutter.
_rate from low to high and the weather builds over the animation instead of staying constant.Phluxel runs in the browser as a demo, and the free desktop edition has every feature with a watermark on exports.
Open the browser demo Download free (Windows) Wishlist on Steam