Files
cycle-atlas/.agents/skills/after-effects/scripts/sequential-offset.jsx
T
Claude d4b3cf1b85 Add motion design skills pack
Installed via npx skills add iart-ai/motion-design-skills. Kept the
project's existing remotion-video skill unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E35uEC1pGu95tUpM4b815L
2026-10-18 21:56:31 +00:00

48 lines
1.4 KiB
React

/*
* sequential-offset.jsx
* Staggers the selected layers in time so each starts OFFSET_FRAMES after
* the previous one (a "domino" / cascade start), based on the first
* selected layer's start time.
*
* Usage: select layers in a comp, then File > Scripts > Run Script File...
* Edit OFFSET_FRAMES and ORDER below.
*/
(function sequentialOffset() {
var OFFSET_FRAMES = 2; // frames between each layer's start
var ORDER_BY_SELECTION = true; // true = order of selection; false = by current startTime
var comp = app.project.activeItem;
if (!(comp && comp instanceof CompItem)) {
alert("Open a composition and select two or more layers first.");
return;
}
var sel = comp.selectedLayers;
if (sel.length < 2) {
alert("Select at least two layers.");
return;
}
var frameDur = comp.frameDuration; // seconds per frame
var offsetSec = OFFSET_FRAMES * frameDur;
// Build the working order.
var layers = [];
for (var i = 0; i < sel.length; i++) layers.push(sel[i]);
if (!ORDER_BY_SELECTION) {
layers.sort(function (a, b) { return a.startTime - b.startTime; });
}
var base = layers[0].startTime;
app.beginUndoGroup("Sequential Offset");
try {
for (var j = 0; j < layers.length; j++) {
layers[j].startTime = base + (j * offsetSec);
}
} finally {
app.endUndoGroup();
}
})();