local effectChannels = { bloom = Channel.keyframe().addKey(0, 0), vignette = Channel.keyframe().addKey(0, 0), chromatic = Channel.keyframe().addKey(0, 0), grain = Channel.keyframe().addKey(0, 0) } local postProcessing = PostProcessing local effects = { bloom = postProcessing.Bloom, vignette = postProcessing.Vignette, chromatic = postProcessing.ChromaticAberration, grain = postProcessing.Grain } for _, effect in pairs(effects) do effect.enableEffect {'intensity'} end for effectName, effect in pairs(effects) do effect.intensity = effectChannels[effectName] end function applyEffect(effectChannel, timing, duration, intensity) effectChannel.addKey(timing, effectChannel.valueAt(timing)) effectChannel.addKey(timing + duration, intensity) end addScenecontrol( 'posteffect', {'effect', 'duration', 'intensity'}, function(cmd) local effectName, timing, duration, intensity = cmd.args[1], cmd.timing, cmd.args[2], cmd.args[3] local effectChannel = effectChannels[effectName] if effectChannel then applyEffect(effectChannel, timing, duration, intensity) end end )