13 - LED Strip Effect (Light Strip Effect)
Module: SuperStage Runtime (ASuperLightStripEffect)
Target Users: Lighting designers, LED programmers
Prerequisites: 03 - DMX Fixture Base
Last Updated: 2026-04-14
1. Overview
SuperLightStripEffect is a DMX-controlled LED strip effect Actor. It implements multiple programmable strip effects (chase, flow, breathing, etc.) via GPU material (MI_Effect_Inst) and can batch-apply the same material effect to multiple static meshes in the scene.
Class Inheritance Chain
AActor (UE5 Engine Base Class)
│
└── ASuperBaseActor ·············· SuperStage Root Class (L1)
│ ├ SceneBase / ForwardArrow / UpArrow
│ └ AssetMetaData
│
└── ASuperDmxActorBase ····· DMX Fixture Base Class (L2)
│ ├ DMX Address / Fixture Library / Channel Reading
│ └ SuperDMXTick / Address Label
│
└── ASuperLightStripEffect · LED Strip Effect (L3) ← This document
├ TargetMeshActors[] → Batch material application
├ MI_Effect_Inst dynamic material instance
├ 9-channel DMX control (Dimmer/Strobe/Effect/Speed/Width/Direction/RGB)
├ 10 built-in GPU effects
└ MaxLightIntensity / MaterialIndex
Design Note:
ASuperLightStripEffectinherits directly fromASuperDmxActorBase(notASuperLightBase) because LED strips don’t need Pan/Tilt rotation axes. Its core function is driving GPU material parameters via DMX to produce visual effects, rather than controlling physical light head movement.
Core Features
- 10 Built-in Effects — Chase, flow, breathing, gradient and other GPU material effects
- 9-Channel DMX Control — Dimmer, Strobe, Effect selection, Speed, Width, Direction, RGB color
- Multi-Target Application — One strip Actor can simultaneously drive materials on multiple static meshes in the scene
- Material Sharing — All target meshes share the same dynamic material instance (unified control, memory saving)
- 8 Strobe Modes — Closed, On, Linear, Pulse, RampUp, RampDown, Sine, Random
Use Cases
- LED bar/strip effect control
- Building contour lights / wall washer lights
- Stage background LED decoration
- Truss light strips / floor light strips
- Any linear fixtures requiring unified material effect control
2. Basic Principles
How SuperLightStripEffect works:
DMX Signal → Read 9 channel values → Update dynamic material parameters → GPU renders effects
│
├─→ Own YStaticMeshEffect mesh
└─→ TargetMeshActors[] meshes in scene
Key: All target meshes share the same dynamic material instance. This means:
- Modifying material parameters updates all targets simultaneously (unified effect)
- Only one set of DMX channels needed to control all targets
- For independent control of different strips, use multiple SuperLightStripEffect Actors
3. Property Details
3.1 Target Settings (A.ModelTargets)
| Parameter | Description | Default |
|---|---|---|
| TargetMeshActors | Array of StaticMeshActors in the scene to apply effects to | Empty |
| StaticMeshEffect | Static mesh asset used by the actor’s own mesh component | None |
TargetMeshActors
This is the core configuration of the strip effect — you need to select the static meshes in the scene to be controlled by this strip:
- In the Details panel, expand A.ModelTargets → TargetMeshActors
- Click the + button to add elements
- Use the eyedropper tool or dropdown menu to select StaticMeshActors in the scene
- Can add multiple targets; they share the same effect
Tip: Target Actors must be StaticMeshActor type. Regular Actors or Blueprint Actors are not supported.
3.2 Default Parameters (B.DefaultParameter)
| Parameter | Description | Range | Default |
|---|---|---|---|
| MaxLightIntensity | Maximum light intensity (material brightness cap) | 0 - 1000 | 1.0 |
| MaterialIndex | Material slot index (which material slot on target meshes to apply to) | 0 - 255 | 0 |
MaxLightIntensity
Controls the maximum brightness value of the material. This value is set to the material’s MaxBrightness parameter during initialization:
- Larger value → higher maximum strip brightness
- Typically set to 1.0 ~ 10.0 (depending on scene needs)
- Actual brightness = MaxLightIntensity × Dimmer
MaterialIndex
Specifies which material slot on the target mesh the effect material is applied to:
- 0 (default) → Apply to the first material slot
- If the target mesh has multiple material slots, a specific slot can be specified
- System automatically checks if the index is within valid range (prevents out-of-bounds)
Parameter Tuning Suggestions
| Scenario | MaxLightIntensity | Description |
|---|---|---|
| Close decorative strip (< 3m) | 0.5 - 2.0 | Avoid overexposure and glare |
| Stage strip (3-10m) | 2.0 - 5.0 | Standard brightness |
| Large venue (10m+) | 5.0 - 15.0 | Long distance needs higher brightness |
| Building facade wall wash | 3.0 - 10.0 | Needs to penetrate ambient light |
| Ambient background | 0.3 - 1.0 | Low-key soft effect |
3.3 Control Parameters (C.ControlParameter)
| Parameter | Description | Range | Default |
|---|---|---|---|
| Dimmer | Total brightness (dimmer) | 0.0 - 1.0 | 0.0 |
| Strobe | Strobe frequency | 0.0 - 1.0 | 0.0 |
| Effect | Effect selection | 0.0 - 1.0 | 0.0 |
| Speed | Effect movement speed | 0.0 - 1.0 | 0.5 |
| Width | Effect width/size | 0.0 - 1.0 | 0.0 |
| Direction | Effect movement direction | 0.0 - 1.0 | 0.0 |
| Color | RGB color | Per channel 0.0 - 1.0 | White (1,1,1) |
4. Control Parameter Details
4.1 Dimmer
Total brightness control, multiplied by MaxLightIntensity for final brightness:
| DMX Value | Material Parameter | Effect |
|---|---|---|
| 0.0 | Brightness = 0 | Completely off |
| 0.5 | Brightness = 0.5 | Half bright |
| 1.0 | Brightness = 1.0 | Max brightness |
4.2 Strobe
DMX value mapped to strobe frequency (0~255):
Material Strobe Parameter = DMX Value × 255
Strobe mode controlled by the material’s internal StrobeMode parameter:
| StrobeMode | Name | Description |
|---|---|---|
| 0 | Closed | Off (always dark) |
| 1 | Open | Always on (no strobe) |
| 2 | Linear | Linear flash |
| 3 | Pulse | Pulse flash |
| 4 | RampUp | Fade-in flash |
| 5 | RampDown | Fade-out flash |
| 6 | Sine | Sine wave flash |
| 7 | Random | Random flash |
4.3 Effect
DMX value mapped to 10 effects (0~10):
Material Effect Parameter = Lerp(0, 10, DMX Value)
| DMX Value Range | Effect Index | Typical Effect |
|---|---|---|
| 0.0 ~ 0.1 | 0 ~ 1 | Static/solid color |
| 0.1 ~ 0.2 | 1 ~ 2 | Flow |
| 0.2 ~ 0.3 | 2 ~ 3 | Chase |
| 0.3 ~ 0.4 | 3 ~ 4 | Gradient |
| … | … | … |
| 0.9 ~ 1.0 | 9 ~ 10 | Complex combined effects |
Note: Specific effect appearance depends on the MI_Effect_Inst material implementation. Visual performance of different effects is determined by the shader logic inside the material.
4.4 Speed
DMX value mapped to speed range (-10 ~ +10):
Material Speed Parameter = Lerp(-10, 10, DMX Value)
| DMX Value | Speed | Effect |
|---|---|---|
| 0.0 | -10 | Fastest reverse movement |
| 0.25 | -5 | Medium reverse |
| 0.5 | 0 | Stop movement |
| 0.75 | +5 | Medium forward |
| 1.0 | +10 | Fastest forward movement |
Tip: Speed supports negative values, which can reverse the effect’s movement direction. DMX value = 0.5 means effect is stationary.
4.5 Width
DMX value mapped to width range (0 ~ 10):
Material Width Parameter = Lerp(0, 10, DMX Value)
- Smaller value → narrower/denser effect pattern
- Larger value → wider/sparser effect pattern
4.6 Direction
Directly mapped to material’s EffectDirection parameter (0 ~ 1):
- Controls the movement direction or scanning direction of the effect
- Specific behavior depends on the selected effect
4.7 Color (RGB)
Three DMX channels independently control red, green, and blue components:
| Channel | DMX Value 0.0 | DMX Value 1.0 |
|---|---|---|
| Red | No red | Max red |
| Green | No green | Max green |
| Blue | No blue | Max blue |
Color values are directly set to the material’s LightColor vector parameter.
5. Blueprint Control
5.1 Control Functions
SetLightStripDefault (Initialization)
Initializes strip material and applies to all target meshes. Must be called once before starting control.
Execution content:
- Set StaticMeshEffect asset for own mesh
- Create dynamic material instance (if not yet created)
- Set MaxBrightness parameter
- Apply material to own mesh’s MaterialIndex slot
- Iterate through TargetMeshActors, apply material to each target’s MaterialIndex slot
SetLightStripEffect (9-Channel Control)
Main control function, called per frame in SuperDMXTick:
| Input Parameter | Control |
|---|---|
| DmxDimmer | Brightness |
| DmxStrobe | Strobe |
| DmxEffect | Effect selection |
| DmxSpeed | Speed |
| DmxWidth | Width |
| DmxDirection | Direction |
| DmxRed | Red |
| DmxGreen | Green |
| DmxBlue | Blue |
5.2 Typical Blueprint Implementation
Event BeginPlay
│
└─ SetLightStripDefault() ← Initialize material
Event SuperDMXTick(DeltaTime)
│
└─ SetLightStripEffect(Dimmer, Strobe, Effect, Speed, Width, Direction, R, G, B)
6. DMX Channel Planning
| Channel | Attribute | Description |
|---|---|---|
| 1 | Dimmer | Brightness |
| 2 | Strobe | Strobe |
| 3 | Effect | Effect selection |
| 4 | Speed | Speed |
| 5 | Width | Width |
| 6 | Direction | Direction |
| 7 | Red | Red |
| 8 | Green | Green |
| 9 | Blue | Blue |
Total 9 channels. If using 16-bit precision, assign Fine channels to key attributes as needed.
7. FAQ
Q: Target mesh doesn’t show effects?
- Confirm SetLightStripDefault has been called to initialize material
- Check if MaterialIndex is correct (starts from 0)
- Confirm target Actor is StaticMeshActor type
- Confirm Dimmer DMX value > 0
Q: Can effects be seen in editor?
Yes. SetLightStripDefault is called both in OnConstruction (when placed/modified) and BeginPlay (at runtime). After configuring TargetMeshActors in the editor, the material is applied.
Q: How to change the effect material?
Default uses MI_Effect_Inst material. For custom materials, create a new material instance ensuring it contains the same parameter names (MaxBrightness, Brightness, Strobe, LightColor, Effect, Speed, Width, EffectDirection).
Q: Effect not applied after adding new target Actors?
After modifying TargetMeshActors, you need to re-trigger initialization. In the editor, moving the strip Actor triggers OnConstruction; at runtime, re-call SetLightStripDefault.
Q: Effect speed is wrong?
Speed DMX value = 0.5 means speed is 0 (stopped), not half speed. < 0.5 is reverse, > 0.5 is forward.
Next Steps: Read 14 - Stage VFX to learn about Niagara particle effect control.