Driving seasons from Blueprint
The season system runs through MPC_Seasons and is meant to be driven from Blueprint. APLM ships BP_APLMController plus a small set of reusable structs that cover the standard cycle. This guide walks through the standard pattern. Background on the system is in the Season system concept page, and the controller itself is documented in the APLM Controller reference.
Prerequisites
Section titled “Prerequisites”- APLM assigned to your landscape (see Basic setup).
- A
BP_APLMControllerinstance somewhere in the level, or a custom Blueprint that owns the same logic.
The four steps
Section titled “The four steps”-
Pick or define the structs.
APLM ships these:
F_ColorGrade: packed offset, gain, brightness, contrast, saturation.F_SeasonCore: the eight seasonal parameters.F_SeasonMetadata: identity and labelling fields.F_SeasonParameters: the full seasonal block (metadata plus core).
Use them as is for the standard cycle, or define your own structs if your project has a different season model (more than four seasons, weighted blends, gameplay-driven cycles).
-
Build the per-biome variable.
For each biome you want to animate, add a variable on
BP_APLMControllerwhose type is the data asset or struct that holds the per-season values for that biome. The shipped pattern usesBP_TundraData,BP_BorealData,BP_DesertData, and so on, each typedBP_Season(a Blueprint asset). -
Author the per-biome push function.
Each biome gets a function (for example
TundraVariables,BorealForestVariables,DesertVariables) that:- Takes the current season’s
F_SeasonCoreas input. - Calls a
Season Lerphelper to interpolate between the previous season and the current target across the configured duration. - Pushes the resulting values into
MPC_SeasonsthroughSet Vector Parameter ValueandSet Scalar Parameter Valuecalls, using the per-biome parameter names (BiomeTundraColor,BiomeTundraOffset, and so on).
- Takes the current season’s
-
Run it on tick.
On
EventTick, call a master function (AllVariablesin the shipped scheme) that calls each biome’s push function in turn. The shipped scheme also runs Per Biome Sorting and Set Season Index before the push, so the active season index is up to date before any biome pushes its values.
The result: one tick of BP_APLMController updates every biome’s seasonal parameters in MPC_Seasons. The materials sample those values automatically and the surface shifts in real time.
A simpler runtime
Section titled “A simpler runtime”The four-step scheme covers a generic cycle. If your game has a single in-world season at a time and no per-biome variation, you can collapse the pattern: one struct for the current season, one push call per biome, no Season Lerp if the transition is event-driven instead of time-based.
Where to next
Section titled “Where to next”- Season parameters reference: the parameter table
- Season system concept: the design rationale
- Biome materials vs base materials: why seasons attach to biomes