This is really simple thing but very powerful and can make your scenes look more dynamic. I have used this kind of light for couple of years – really useful even when it comes to pipeline and consistency.
Blinking Lights are part of Game Dev Tools Plugin.
Features
- Supports Spot, Point and Rect lights,
- Using periods and amplitudes algorithm to change radius, intensity and location. You shouldn’t see any looping,
- They are custom light components so they can be added anywhere. To your base light Blueprints or directly on scene,
- They are optimal: you scene will look more dynamic even when changing radius by 15. It won’t have impact on performance if you are using dynamic light “with care” and make sure you don’t have a lot overlaps,
- Fake sphere volumetric for point lights,
Last Blinking Light iteration was used in Clash Of Clans:
They were tested on PS4 as well.
Documentation
Example Map
Example map can be found here:
\Plugins\GDMegaPack\Content\BlinkingLight\Maps\Showcase_BlinkingLights.umap.
Placing Lights
You can use Modes to add Blinking Lights.
They can be added to Actors as components as well.
Variables
- Config: defines how blinking will be generated. Comes with default implementation, you don’t need to change anything. But you can implement your way of blinking using config.
- Radius Change: how much radius can change during blinking,
- Intensity Change: how much intensity can change during blinking,
- Use Custom Data: if you want to use custom periods and amplitudes.
FAQ
How this can help with pipeline and iteration speed?
As I wrote at Using UE4 to create Game Jam. Blinking light can motivate you to create your light library:
You can then force Artists to use only those Blueprints when trying to create lighting. Another thing is you have base class for BlinkingPointLight/BlinkingSpotLight and you can mess with draw distances and lights defaults which will speed up your iteration speed.
Why not to use light function material?
You can use light function to get similar results in some cases but you won’t get physical accuracy from shader. Blinking lights is physically changing radius/intensity/location – which is looking more realistic than using light function. When you have shadows enabled you will see great results which can be done with light function.
Why not to use lights from particles?
You would need to spawn a lot of lights in particles to have similar result. Which isn’t optimal and will cause performance issues. Blinking Lights is using single light and just changing its intensity/radius/location to create the effect.