Skip to content

AreaLight

AreaLight is a Light that emits light from a rectangular plane. It also has properties for configuring a set of "doors" attached to the plane which affect the lit area in front of the plane.

Properties

Property Name Return Type Description Tags
sourceWidth number The width of the plane from which light is emitted. Must be greater than 0. Read-Write
sourceHeight number The height of the plane from which light is emitted. Must be greater than 0. Read-Write
barnDoorAngle number The angle of the barn doors, in degrees. Valid values are in the range from 0 to 90. Has no effect if barnDoorLength is 0. Read-Write
barnDoorLength number The length of the barn doors. Must be non-negative. Read-Write

Examples

Example using:

sourceWidth

sourceHeight

barnDoorAngle

barnDoorLength

In this example, a client script animates the width and angle of a "barn door" light. This effect could be used in sync with a door opening from a highly-lit area onto a poorly lit one, generating a cinematic or emotional moment. In this case, the time t is driven by the sine of time(), but it could be driven by the the door's rotation instead.

local AREA_LIGHT = script:GetCustomProperty("AreaLight"):WaitForObject()

if AREA_LIGHT.sourceHeight < 10 then
    warn("Height of the area light may be too small for this effect.")
end

if AREA_LIGHT.barnDoorLength < 1 then
    error("Length of area light is too small.")
end

function Tick()
    local t = math.sin(time()) / 2 + 0.5
    AREA_LIGHT.sourceWidth = CoreMath.Lerp(0, 100, t)
    AREA_LIGHT.barnDoorAngle = CoreMath.Lerp(0, 90, t)
end

See also: CoreMath.Lerp | CoreObject.GetCustomProperty | CoreObjectReference.WaitForObject



Last update: December 21, 2021