UE5 / Core Pack

Runtime Control Pack for UE5

Runtime authoring patterns for Dynamic Material Instances, Material Parameter Collections, Niagara parameters, and variation control.

UE5 first

Core Pack

UE5 is the source of truth here. Keep the graph readable first, then branch into project-specific versions only when the base is proven.

01

Goal

Target: Runtime authoring patterns for Dynamic Material Instances, Material Parameter Collections, Niagara parameters, and variation control.

02

Use Cases

Core PackGameplay-driven VFXUse for charge, cooldown, health, team color, or any value that gameplay needs to push at runtime.
Core PackHit reactionsGood for one-shot pulses where Blueprint or Niagara sends impact position, age, and intensity.
Core PackCharacter state changes and spell chargingKeeps state changes on instances instead of cloning a new master material every time.

03

Core Blocks

1. Dynamic Material Instance setup

Name the control after the decision it represents. Runtime values should be obvious when someone opens the instance months later.

Why: clean parameter naming is production work, not polish.

2. Material Parameter Collections

Name the control after the decision it represents. Runtime values should be obvious when someone opens the instance months later.

Why: clean parameter naming is production work, not polish.

3. Niagara user parameters

Name the control after the decision it represents. Runtime values should be obvious when someone opens the instance months later.

Why: clean parameter naming is production work, not polish.

4. Curve-driven values

Name the control after the decision it represents. Runtime values should be obvious when someone opens the instance months later.

Why: clean parameter naming is production work, not polish.

5. Preset and variation naming

Name the control after the decision it represents. Runtime values should be obvious when someone opens the instance months later.

Why: clean parameter naming is production work, not polish.

04

Node Graph Flow

Input dataShape signalAnimateRemap colorControl alphaOutput

Start from the signal

Get a clean black-and-white read first; color, glow, and distortion should only support that read.

Expose decisions

Every exposed value should answer a real art question: how fast, how wide, how bright, how soft.

05

HLSL Equivalent

float shaped = smoothstep(threshold - softness, threshold + softness, inputMask);
float edge = shaped * (1.0 - smoothstep(edgeWidth, edgeWidth + softness, abs(inputMask - threshold)));
return float2(shaped, edge);

06

Artist Controls

07

Production Notes

Production check: keep the read clean, then measure cost in the scene where it actually ships.
  • Preview masks by themselves before judging the finished color.
  • Name parameters the way an artist would search for them in a Material Instance.
  • Keep a cheaper instance for background, crowd, or repeated usage.
  • Write down the gotchas while they are still fresh.