About
Fades out selected layers over 30 frames ending at each layer's out-point.
Code
// Cavalry Script: Keyfast - Fade Out at End// For each selected layer, animates opacity from 100 to 0 over 30 frames ending at layer out-pointvar selectedLayers = api.getSelection();if (selectedLayers.length === 0) {console.warn("No layers are selected. Please select some layers first.");} else {var frameOffset = 30; // Number of frames for the animationconsole.info("Animating opacity (fade out at end) on " + selectedLayers.length + " selected layer(s)...");for (var i = 0; i < selectedLayers.length; i++) {var layerId = selectedLayers[i];var layerName = api.getNiceName(layerId);try {if (api.hasAttribute(layerId, "opacity")) {var outF = api.getOutFrame(layerId);var inF = api.getInFrame(layerId);var start = Math.max(inF, outF - frameOffset);var end = outF;// Sample current opacity at the start framevar originalFrame = null;try { originalFrame = api.getFrame(); } catch (_) {}var startOpacity = 100;try {if (typeof api.setFrame === "function") { api.setFrame(start); }var sampled = api.get(layerId, "opacity");if (typeof sampled === "number" && isFinite(sampled)) {startOpacity = sampled;}} catch (_) {}// Restore original frame if we moved ittry { if (originalFrame !== null) api.setFrame(originalFrame); } catch (_) {}api.keyframe(layerId, start, {"opacity": startOpacity});api.keyframe(layerId, end, {"opacity": 0});