Etherion Designs offers a simple rain and lightning blueprint system that provides the following:
- Fades rain sound, fog, particles, material wetness, & material splashes
- Fades water murkiness on water material when raining
- Random 2D lightning strikes in the distance
- Random 3D lightning strikes in the playable zone
- Lightning shadow casting for Parallaxed Landscape Materials
Weather Blueprint #
All the weather features are controlled by a single blueprint called BP_WeatherController
Place this blueprint into your level to get started.
It is located at FoliagePhysics / Blueprints / Environment / Weather /
Next, you’ll need ensure you have two ExponentialHeightFog actors in your level.
One ExponentialHeightFog will be used for when there is no rain.
The other ExponentialHeightFog will be used for rain.
Naturally, you’ll want to ensure the fog actor with rain has thicker fog than the one without.
Once you have completed setting up your fog actors,
Select BP_WeatherController in your level.
In the details panel, reference the fog actors under these variables:
– Original Fog
– Rain Fog
Next, ensure that the following checkboxes have been appropriately set:
If your fog actors have volumetric fog enabled,
check the Fog Is Volumetric? checkbox
If your non-rain and rain fog have different colors,
tick the Lerp Fog Colors checkbox
If your two fog actors animate additional properties besides Fog Density – such as height falloff, Max Opacity, Start Distance, Cutoff Distance, Directional Inscattering Exponent, & Directional Inscattering Start Distance…
You must check the Lerp Advanced Fog Settings checkbox
Choose how you want the rain to fade in using the dropdown box Rain Startup Setting.
If you choose Fade in Rain on Game Start after Delay Timer,
the rain will fade in after the amount of seconds listed on the Fade in On Game Start – Delay variable
You can also choose to make it rain immediately on game-start,
Or only fade in when the “Event Rain Start” is called.
If you chose to only fade in when the “Event Rain Start” is called, and wish to call this event,
simply reference the BP_WeatherController in another blueprint, and call “Event Rain Start“.
You can also call Event Rain Stop to cause the rain to fade out. Please note that fading out will take a total of 16 seconds to complete.
You can replace the sound of the rain with your own using the RainSound variable.
Please ensure that your rain sound cue is looping.
Rain Particles #
To add rain particles to your level, locate BP_Particle Follower and drag it into your level.
This Blueprint contains a Particle will automatically follow the player character.
It is located at Content / FoliagePhysics / Blueprints / Environment /
It supports both Niagara and Cascade particles.
In the details panel of BP_Particle Follower, you can edit the variables associated with its behavior.
- Offset will add a local position offset of the particle from the player. It is useful if you want the particle to be a certain distance above or beside the player.
- Update Interval is the tick rate at which the blueprint will relocate to the position of the player. By default it does this every 0.2 seconds.
- Particle Is Niagara? – This determines whether to display the Niagara particle or the cascade Particle listed in the variables below it
2D Background Lightning #
Background lightning is a perfect way to add ambience to your scene.
Add some 2D background lighting to your scene by adding BP_Lightning2D_Background to your level.
You can find this in FoliagePhysics / Blueprints / Environment / Weather /
After you add this to your level, select the lightning actor and then go to the details panel.
Here you will find a range of variables that will help you adjust the timing, color, location, and light intensity of your lightning.
Min Wait Time & Max Wait Time control the range in which the random delay causes the lightning to strike.
Directional Light Intensity controls the intensity of the light that occurs when the lightning flashes. To preview this, tick the Light Visible in Editor checkbox.
Random Rotation Range how much the lightning can rotate before striking. For full randomness, set it to 360. This will ensure it will randomly strike anywhere on the horizon in 360 degrees.
Lightning Blur Intensity just adjusts the background cloud brightness of the lighting. It applies to some lightning strikes but not all.
Finally, you can adjust the Light Color and Lightning Bolt Color. These may not preview in-editor, but they will be applied once the game starts.
If you wish to adjust the settings of the light that turns on when lightning strikes, please open up the component section of the blueprint and select Directional Light.
You can then edit any of the details of this light.
Once completed, feel free to duplicate this blueprint and rotate it across your horizon
3D Foreground Lightning #
Spice up your level with some 3D Foreground lightning!
This lightning will randomly strike at locations set by Target Points.
Start by adding BP_Lightning3D to your level.
You can find this in FoliagePhysics / Blueprints / Environment / Weather /
By default, if there are no Target Points set for this actor, it will strike in the location you place it.
But unless your lightning is striking the same spot over and over again, you’ll want to do these next steps.
Add some target points into the level and place them all over the place.
Each target point will be a position that the lightning may randomly strike at.
Now, select your BP_Lightning3D Actor.
In the details panel, expand the Lightning Strike Locations array to fit the number of target points that you placed in the level.
Then set them up so that they reference the target points that you placed in the level.
Finally, you may adjust these assorted variables to your own specifications. These are similar to the 2D Background Lightning. However there are some differences.
- Only Strike When Raining – When this variable is checked, the lighting will only strike when it is already raining
- Randomize Strike Location – Determines if the lightning strikes randomly at different target points or in order from the first to the last target point.
- Spacialized Sound – If this is checked, the sound will be spacialized, meaning that your left and right hearing channels will hear it in 3D. If you want your game to be realistic, leave this disabled (as lighting that strikes very close to you is so loud you wouldn’t normally be able to hear its direction).
- Strike Only On Event Lightning – This will disable all automatic lighting. The lightning will only strike when Event Lightning is called.
Rain Materials #
Wetness & Splashes #
There is a material parameter collection called MPC_EtherionFunctions which contains a number of useful values for blending your material wetness and splash effects.
It is located at Content / FoliagePhysics / Materials /
The specific material parameters you might want to reference in your custom materials are the following:
- RainDrops – This should blend in any rain particle effects. It fades in first when raining. Its generally not needed in materials unless they are rain particles.
- Wetness – This should blend the roughness and specular values of your material. It fades in the middle when raining.
- RainSplashes – This should blend any material puddle splash effects. It fades in last when raining
To access these values, open up your custom material.
Right click and type in Collection.
Click Collection Parameter.
With the Collection Parameter selected, go to the details panel.
Under Collection, search for and select MPC_EthieronFunctions
Next, select your chosen rain parameter from the list.
You can use these parameters to lerp between values in your material
Rather than doing it the long way every time, we have created two Material Functions that will help you swiftly apply rain effects to your materials.
MF_RainSpec allows you to input a specular value and a roughness value.
It will automatically fade between these inputs and some designated values when it starts to rain.
If you create or open up a Material Instance of this material, you can see these designated values here.
Change them to whatever looks the best for your material instance!
MF_RainDrops is an animated normal map of tilable raindrop ripples.
These ripples will only apply to the top of a mesh (not the bottom).
It will automatically fade in when it starts to rain.
This function should be used with the BlendAngleCorrectedNormals node to blend with your existing normal map.
Parallax Occlusion Shadows #
If you plan on creating your own custom Landscape material which utilises Parallax Occlusion Mapping, you may want to use our feature which enables lightning strikes to cast shadows on your POM.
Unreals Parallax Occulsion Mapping node is a bit broken, and doesnt really allow you to do this.
However, some super nerds online developed a fix which we implemented into your own material function.
So the first step is to replace your ParallaxOcclusionMapping node with MF_ParallaxOcclusionMapping_Fixed
Next, you will need to apply these material nodes to your POM function to enable shadow casting from your lightning blueprints.
Beyond lightning strikes, you can also set the light direction of your parallax occlusion shadows using BP_POMLightingDirection.
It is located at Content / FoliagePhysics / Blueprints / Environment /
Drag this blueprint to the far horizon in the direction of your sunlight, and when you play the game, it will cause the POM shader to cast shadows from that direction.
You may adjust the shadow intensity from the blueprint’s details panel as seen in the image below:
Water Material Murkiness #
If you’d like rain to cause your water material to react realistically, you’ll want to make sure that its murkiness increases when it rains.
To do this, simply use the Material Parameter Collection mentioned in the step above to lerp the Absorbtion value of the rain in your water material.