Season system
APLM’s season system gives every biome its own seasonal personality. A Temperate Forest can shift from saturated summer green into autumn orange, then desaturated winter gray, while a neighbouring Desert stays unchanged. The whole pipeline runs through one Material Parameter Collection (MPC_Seasons) and one controller Blueprint (BP_APLMController).
What seasons control, per biome
Section titled “What seasons control, per biome”Each biome layer exposes the same seasonal override set:
| Parameter | Effect |
|---|---|
| Season Color | Color tint applied on top of the base albedo. |
| Season Offset | Tonal offset, shifts shadows. |
| Season Gain | Tonal gain, shifts highlights. |
| Season Brightness | Overall brightness shift. |
| Season Contrast | Contrast adjustment. |
| Season Saturation | Color saturation. |
| Season Specular | Specular intensity. |
| Season Roughness | Surface roughness override. |
These are the same eight knobs every biome has. Combined with the per-biome data asset, you can author wildly different seasonal cycles per biome with the same authoring vocabulary.
What seasons do not control
Section titled “What seasons do not control”Base layers (Beach, Cliff, Gravel, Mud, Snow) are not bound to MPC_Seasons out of the box. They use their own per-surface color correction parameters instead. If you want a base layer to follow the seasonal cycle, add the variables you need to MPC_Seasons yourself and read them inside the base material function.
The reason for the split: base layers apply through automatic geometry-driven blending and are usually expected to look the same year round (snow is snow, gravel is gravel). Biome layers represent ecosystems, and ecosystems have seasons.
How a season transition runs
Section titled “How a season transition runs”- A
BP_APLMControllerinstance lives in your level (or in a sky/weather actor). - The controller reads a per-biome Data Asset (or a Sequencer track) that holds the seasonal target values.
- On
EventTick(or any time you choose), the controller pushes the current seasonal values intoMPC_SeasonsthroughSet Vector Parameter Valuecalls. - The biome materials sample
MPC_Seasonsand apply the overrides on top of the base color correction.
The transition between seasons is just an interpolation. Smooth lerp between the spring values and the summer values across N seconds and you get a smooth season change.
Authoring seasonal data
Section titled “Authoring seasonal data”APLM ships four reusable structs you can compose into your own data assets:
F_ColorGrade: a packed offset / gain / brightness / contrast / saturation block.F_SeasonCore: the eight seasonal parameters listed above.F_SeasonMetadata: identity and labelling fields for a season entry.F_SeasonParameters: the full seasonal block (metadata + core values).
You can use these as is, or define your own structs. The wiring pattern is the same either way: write the current seasonal values into MPC_Seasons from your Blueprint, then let the materials read them.
The full Blueprint setup is in the Driving seasons from Blueprint guide.
Where to next
Section titled “Where to next”- Driving seasons from Blueprint: four-step
BP_APLMControllersetup - Season parameters reference: the parameter table without the prose
- Biome materials vs base materials: why seasons attach to biomes only