Keyfast
Script
Free

Pos Down Fade

By Jack Vaughan
Updated 11/1/2025

About

Animates selected layers moving down 30px while fading in. Position animates over 46 frames and opacity fades from 0 to 100 over 30 frames, both starting at the current playhead position.

Code

// Cavalry Script: Keyfast - Pos down fade
// For each selected layer, animates from 30px higher Y (numerically +30) down to current Y.
// Timing: position.y over 46 frames; opacity fades 0 → 100 over 30 frames (both start at current frame).
// Uses Bezier handles matching the provided reference.
var selectedLayers = api.getSelection();
if (selectedLayers.length === 0) {
console.warn("No layers are selected. Please select some layers first.");
} else {
var currentFrame = api.getFrame();
var opacityOffset = 30; // frames for opacity fade
var posOffset = 46; // frames for position move
var opacityEndFrame = currentFrame + opacityOffset;
var posEndFrame = currentFrame + posOffset;
// Bezier easing for position.y (from provided keyCopy reference)
var posEaseStart = {
interpolation: 0,
leftBez: { x: -7.666666666666629, y: 0.0 },
rightBez: { x: 11.95999999999998, y: -30.0 },
locked: true,
weightLocked: true
};
var posEaseEnd = {
interpolation: 0,
leftBez: { x: -23.920000000000016, y: 0.0 },
rightBez: { x: 7.666666666666686, y: 0.0 },
locked: true,
weightLocked: true
};
console.info("Animating Pos down + Fade on " + selectedLayers.length + " selected layer(s)...");
for (var i = 0; i < selectedLayers.length; i++) {
var layerId = selectedLayers[i];
var layerName = api.getNiceName(layerId);