AeroPlanet Volumetrics
Docs

Documentation

This page is written straight from the plugin's own C++ source, not from memory — the property descriptions below are drawn from the design-intent comments onWelkinStarActor.h,WelkinCloudComponent.h andWelkinAtmosphereTypes.h. If the plugin's Details panel and this page ever disagree, trust the Details panel — this page describes the current beta and will be updated as the plugin changes.

Quickstart

From an empty UE5.5 project to a lit, orbiting planet with weather.

  1. 1

    Install and enable the plugin

    Copy the Welkin folder into your project's Plugins/ directory (or install it from Fab once it's live), then in the editor go toEdit → Plugins, find AeroPlanet Volumetrics, tick it on, and restart the editor. UE 5.5.0, Windows (Win64) only.

  2. 2

    Drop a planet into the level

    Search for Welkin Cloud Actor in the Place Actors panel and drag it in. It arrives with an Earth-like sky and weather already set — Sphere ground, 6,371 km radius, Coverage 0.32, atmosphere on — because the low deck's ground and star settings are copied down to the middle, high and storm decks automatically.

    Ground shape matters here.With Shape set to Sphere (the default), the actor's own location is thecentre of the planet — so an actor dropped at the level's origin with the camera also near the origin starts out roughly 6,371 km underground, which renders as nothing but black. Either move the actor down by the ground radius (for Earth, −6,371 km on Z) so its surface sits where you're standing, or pull the camera back far enough to see the whole sphere from outside. For the simplest first look, you can also switch Shape to Plane — the component's own location becomes flat ground directly beneath it, and a deck appears in the sky immediately.
  3. 3

    Place a star

    Search for Welkin Star and place one anywhere in the level — its own position doesn't matter unless you add it to an orbit. Leave Spectral Type at G (Sun-like) or pick another. With the defaults (Drive Welkin Lighting and Drive Directional Lightboth on), it immediately lights both the Welkin sky and the rest of the level through a directional light, creating one if the level doesn't have one yet.

  4. 4

    Make it orbit

    On the star, add an entry to Planets and set Body to your cloud actor. Leave the defaults (120 second orbit, 20 second spin, Semi-Major Axis 1 AU) to see it move right away — Advance Time is on by default, including in the editor. Because the star and planet can be set up far apart, select the star and use its Frame This System button (in its Details panel) to bring both into view at once.

  5. 5

    Fly down to it

    Select the planet and press F to focus the viewport on it: the editor camera then rides fully with that body's orbit and spin until you focus something else. Fly toward the surface and the camera (and, optionally, nearby ships or stations) automatically take the same step the planet just took near the surface, so the ground holds still under you instead of the world sliding out from underneath.

Actor & component reference

Only the classes and properties that actually exist in the plugin are documented here. Many more fine-tuning properties live under each component's "Advanced" categories in the Details panel — these tables cover the ones you'll reach for first.

AWelkinStarActor — Welkin Star

Place it, give it planets, and they orbit it and are lit by it.

Built as its own actor rather than reused from the in-house Helios plugin, on purpose: it doesn't need a photosphere with granulation and limb darkening, it needs a star that lights things correctly and that planets orbit. What it needs, that a generic sun doesn't give it, is that light arrives as Welkin's own sun direction — per cloud deck, per planet — which is what makes two stars in one scene possible at all.

PropertyType / defaultWhat it does
Spectral Type
enum (O · B · A · F · G · K · M)
G (5,800 K — the Sun)
Sets a temperature, radius and mass unless the overrides below are non-zero. O is 30,000 K blue, M is a 3,200 K red dwarf.
Temperature K / Radius Solar / Mass Solar
double, double, double
0 / 0 / 0 (take the spectral type's value)
Override the spectral type's numbers individually. Mass is what sets every orbital period in the system — changing the star changes all of them, which is correct, and is why periods aren't typed in by hand.
Illuminance At 1AU (lux)
double
0 (derived by Stefan–Boltzmann)
Zero derives it from temperature and radius; for a Sun-like star that comes to about 128,000 lux, the measured value at the top of Earth's atmosphere.
Planets
array of FWelkinOrbiter
empty
The bodies going round this star — see the orbiter table below. Any actor can be added: a Welkin planet, a moon, a station.
Time Scale
double
1.0
Seconds of simulated time per second of real time.
Advance Time
bool
true
Moves the bodies, on in the editor as well — so a system can be watched turning without pressing Play, and dragging a planet is visibly overridden rather than silently ignored.
Drive Welkin Lighting
bool
true
Points every orbiting Welkin planet's sun direction at this star, and hands it this star's colour and illuminance at that planet's actual distance.
Drive Directional Light
bool
true
Lights the rest of the scene, not only Welkin's own sky — an ordinary mesh in the level is lit by whatever directional light the star drives (direction, colour and lux). The light must be Movable; a Static one is baked and ignores this. With two stars, only the one with this switched on drives it.
Corona Strength
double
120
Multiple of the physically-real corona (1 is physical, and physical means invisible — the corona is about a millionth of the photosphere). The shape (two power laws plus radial streamers) stays honest at any value; this only lifts how visible it is.
Carry Nearby Camera
bool
true
A body on a short orbit can travel tens of thousands of kilometres a second. Rather than holding it still or shifting the whole world, the camera is given the same displacement the body just took, weighted by proximity — full weight within a planet radius of the surface, none past ten radii, smooth in between.
Carry Nearby Actors
bool
true
Moves ordinary movable actors near a planet the same way — ships, stations, anything on the ground or in orbit — so nothing is left behind at orbital speed. Skips the star, the bodies in Planets, lights, and anything already attached to something else.

FWelkinOrbiter — one entry in Planets

One body going round the star (or, by the same mechanism, around another planet).

Orbits are a function of time, not an integrator: given a second, position follows in closed form. That means time can be scrubbed backwards, the same second always gives the same frame, and nothing drifts however long it runs. The period comes from Kepler's third law and the star's mass — it isn't a separate number someone types in.

PropertyType / defaultWhat it does
Body
soft actor reference
The actor that orbits. Anything: a Welkin planet, a moon, a station.
Keep In Place
bool
false
On: the actor stays exactly where you placed it, and the orbit drives only the light — one astronomical unit is 1.5×10¹³ Unreal units, so simply adding a body to the list would otherwise teleport it 150 million km away. With this on, the star still works out where the body would be and aims sunlight and its strength accordingly. Off: the transform really moves, for a system with several bodies you want to watch travel.
Orbit Radius (km)
double
1,500,000 km
The orbit the body actually travels, in kilometres. Deliberately separate from Semi-Major Axis (AU): at the real distance a star and a planet can never be framed by the same camera, so this is the distance you set to something you can look at, while the AU value keeps the light physically correct.
Orbit Period (seconds) / Spin Period (seconds)
double, double
120 s / 20 s
How long one lap, and one day, take in real seconds — deliberately fast so the motion is visible in an editor session (the physical period at 1 AU is a year, effectively invisible). Set Physical Periods to use the real numbers instead.
Physical Periods
bool
false
Uses Kepler's third law from the semi-major axis and the star's mass for the orbit, and Day Length Hours for the spin, both stretched by the star's Time Scale.
Semi-Major Axis (AU)
double
1.0
How far out it circles, in astronomical units — this is what the light is computed from even with Keep In Place on. Earth is 1.0, Mars 1.52, Jupiter 5.20.
Eccentricity / Inclination (°) / Phase (°)
double, double, double
0 / 0 / 0
Shape and tilt of the orbit, and the starting point around it. Above about 0.8 eccentricity the solver starts from a different initial guess, because Newton's method from the mean anomaly stops converging there.
Day Length (hours) / Axial Tilt (°)
double, double
24 h / 23.44°
Length of one day, and the tilt of the spin axis from the orbit normal — this is what gives seasons. Zero day length stops the body spinning.
Tidally Locked
bool
false
Keeps one face always toward the star, using the orbital period itself rather than a day length typed to match it — matched numbers drift apart the first time the orbit changes.

AWelkinCloudActor — a planet's clouds and air in one actor

A convenience actor that owns four cloud decks and keeps them in agreement.

Four UWelkinCloudComponents in one actor: the low deck (fair-weather cumulus you can fly through), a middle deck (4–6 km), a thin high deck (8–11 km), and a separate storm deck deep enough for a cumulonimbus tower to climb — a taller low deck alone would turn the fair-weather sky into a wall of cloud, at roughly three times the frame cost. The ground shape, radius and star belong to the low deck; the actor copies them down to the other three on construction, because a planet and its air are one thing, not four disagreeing components.

PropertyType / defaultWhat it does
Cloud Component
UWelkinCloudComponent
The low deck. Carries the ground (sphere/plane) and the atmosphere for the whole actor.
Mid Cloud Component
UWelkinCloudComponent
The middle deck, 4–6 km up.
High Cloud Component
UWelkinCloudComponent
Thin high cloud, 8–11 km up.
Storm Cloud Component
UWelkinCloudComponent
A sparse deck deep enough for cumulonimbus towers and anvils to grow in.

UWelkinCloudComponent — the core dials

The most-used properties on each deck. Advanced tuning knobs live under the component's Advanced categories in the Details panel.

A UWelkinCloudComponent is a scene component: several can coexist, and each one's march runs where scene depth is already correct. Ground shape defaults to Sphere for a reason — a Plane component dropped in front of the camera puts a deck in the sky straight away, while a Sphere component six thousand kilometres in radius, placed anywhere but its own centre, would otherwise put the camera underground.

PropertyType / defaultWhat it does
Shape
enum (Sphere · Plane)
Sphere
Sphere: the component's location is the centre of a planet of Ground Radius (km). Plane: the component's location is a point on flat ground, +Z is up. Not two code paths — one height-and-up answer, read two ways.
Ground Radius (km)
float
6,371 km (Earth)
Planet radius. Sphere shape only.
Terrain
bool
false
Draws the ground itself as a surface, not merely as the place rays stop.
Planet Type
enum (Earth-like · Desert · Mars · Moon · Ice Moon · Titan · Volcanic · Ocean)
Earth-like
Sets the ground reflectances, sea level and snow line together.
Land Fraction
float 0–1
0 (take the planet type's value)
How much of the surface is land, as a fraction — not a height. The height field is turned into the matching threshold internally, so asking for 0.29 (Earth) gives 0.29, rather than a raw threshold that has no direct relation to land area.
Layer Bottom / Top (km)
float, float
1.5 km / 10.5 km
Cloud layer altitude above the ground, as absolute lengths (never a fraction of the radius — a fraction would give a small planet a layer a few metres thick). The low deck reaches nearly to the tropopause so a storm column has room to climb.
Cloud Type
enum (Stratus · Cumulus · Cumulonimbus · Nimbostratus)
Cumulus
A vertical profile, nothing else — a deck, a fair-weather cumulus and a thunderhead are the same field of coverage; what differs is how far each column is allowed to fill and what shape the top takes.
Coverage
float 0–1
0.32
Cloud amount. Measured against reference photographs rather than chosen by eye — coverage compounds across stacked decks as 1 − (1 − a)(1 − b)(1 − c), so each deck sits well below the figure the whole sky should show.
Storm Amount
float 0–1
0
How much of the deck is allowed to build a full-height tower. Zero leaves a plain deck; towers need a layer deep enough to hold them.
Lightning
float (brightness, 0 = off)
1.0
A light source inside the cloud rather than a drawn bolt — lights the surrounding cloud from within, dark at every cell face. Only reaches the shader for a Nimbostratus or Cumulonimbus deck, or a deck growing storm towers; a fair-weather deck can't flash regardless of this value.
Weather Map Amount / Cyclone Amount / Band Amount
float
0.75 / 0 / 0
How strongly coverage follows the shared weather field, how strongly cyclones form within it, and (for gas giants) how strongly coverage is banded by latitude. Zero band amount is a terrestrial world; above zero, pale cloudy zones alternate with clearer belts.
Drift (km/hour)
float
45
How fast the weather field itself moves.
Atmosphere / Atmosphere Type
bool, enum (15 types incl. None)
true / Earth-like
Draws air around this ground; several components can each draw their own, so a scene can hold as many atmospheres as it needs. Earth-like, Ocean World, Desert World, Ice World, Volcanic, Mars, Venus, Titan, Jupiter, Saturn, Uranus, Neptune, Hot Jupiter, Thin, or None (vacuum).
Override Atmosphere
bool + FWelkinAtmosphereParams
false
Off: the type decides every coefficient. On: every Rayleigh/Mie/absorption value below becomes directly editable, pre-filled from whichever type was last selected as a starting point rather than a blank one.
Clouds
bool
true
Draws this deck's cloud layer. Off leaves a bare atmosphere.
Use Scene Sun Light
bool
true
Takes sun direction and colour from the level's first directional light. Turn off (or leave no directional light in the level) to use Sun Direction / Sun Colour / Sun Illuminance directly.
Sun Illuminance (lux)
float
128,000 lux
A real physical unit, not a strength slider — 128,000 lux is a Sun-like star at one astronomical unit.
Paint Amount
float 0–1
1.0
How strongly a hand-painted coverage map (see Paint Coverage below) moves the Coverage dial locally, without changing the cloud shapes or edges themselves.

FWelkinAtmosphereParams — manual atmosphere override

Editable once Override Atmosphere is switched on. Every coefficient is per kilometre.

One rule decides every number here: the colour of a sky is a tug of war between what scatters and what absorbs. Rayleigh always votes blue, so a sky that isn't blue is one where something is eating the other end of the spectrum — Titan is orange because tholin haze eats blue, Uranus is cyan because methane eats red, not because either was tinted by hand.

PropertyType / defaultWhat it does
Height (km)
float
100 km
Thickness of the modelled atmosphere above the ground.
Rayleigh Scattering / Scale Height (km)
FVector3f, float
(5.8, 13.6, 33.1)×10⁻³ · 8 km
Molecular scattering at the ground and the height it falls off over — this is a gas, so the scale height applies to the whole column.
Mie Scattering / Absorption / Scale Height (km) / Anisotropy
float, FVector3f, float, float
0.030 · 4.4×10⁻³ · 1.2 km · 0.72
Haze and dust. Scattering is close to grey; absorption is not — that is where a butterscotch or orange sky comes from. Aerosols settle, so the scale height is short, unlike a gas mixed through the whole column.
Uniform Absorption
FVector3f
0
A gas mixed evenly through the whole column, absorbing with no height profile — the methane that makes Uranus cyan at every altitude, not only at one tuned height.
Layered Absorption / Centre (km) / Width (km)
FVector3f, float, float
(0.65, 1.88, 0.09)×10⁻³ · 25 km · 15 km
An ozone-shaped absorber: a tent centred somewhere above the ground. This is what puts the blue-grey band between an orange horizon and a blue zenith at sunset.
Ground Albedo
FVector3f
(0.16, 0.20, 0.32)
What the ground sends back up into the air. Not decoration — looking down at a planet, most of what the air scatters toward the eye arrived from below, not straight from the star. A gas giant has no surface, so this stands for its deep cloud deck.
Shadow Softness (km)
float
45 km
How far the planet's own shadow takes to close. A length, never a fraction of the radius — a percentage of Earth's radius would be wider than the whole atmosphere and swallow the twilight, because the star isn't a point and the air doesn't end at a line.

Painting coverage by hand

Pick Welkin Clouds from the editor's modes menu, then left-drag over the planet to push cloud coverage down under the brush; hold Shift while dragging to erase it back to clear sky. The brush writes to each deck'sCoveragePaint map — a 2,048×1,024 equirectangular texture, about 20 km per texel at the equator, sized for shaping weather systems rather than individual clouds. It moves the coverage threshold locally rather than the density, so painted cloud keeps the same shapes and edges as everywhere else.

FunctionWhat it does
PaintCoverage(WorldLocation, RadiusKm, Strength, bErase, ViewLocation)Pushes coverage toward cloud (or clear sky, if Erase) around WorldLocation by Strength at the centre, falling smoothly to nothing at RadiusKm along the ground. Stored on a 2,048×1,024 equirectangular map — about 20 km per texel at the equator, sized for weather systems rather than single clouds.
ClearCoveragePaint()Forgets everything painted on this deck.
AddStormPin(WorldLocation) / RemoveNearestStormPin(WorldLocation)Pins a thunderhead at a world location (keeps the latest four), or removes the nearest pin.

Known limitations

Written down plainly, because a features page that only lists what works isn't trustworthy.

  • No planetary rings. There's no ring geometry, analytic or otherwise, anywhere in the plugin.
  • No eclipse or shadow-casting between bodies. A planet does not currently cast a shadow onto another planet, a moon, or its rings (which don't exist either).
  • Multiplayer / replication has not been built or tested. There is no replication code in the plugin; treat it as single-process until it's actually verified.
  • The engine's own Volumetric Cloud and Sky Atmosphere components are not used and are not required — but they are also not disabled for you if a level already has them switched on.
  • Currently in beta (as marked in the plugin descriptor) while a visual issue is being fixed ahead of the Fab listing going live.
Found something on this page that doesn't match the plugin, or have a question that isn't answered here? TheDiscord serveris the fastest way to reach us, or emailnaokun1037@gmail.com.