Skip to content

Layer Duration Change

Travis Weston edited this page Mar 21, 2017 · 1 revision

How to change the duration of a layer?
The thing is not that easy. Layers like solids don't have a duration you can set. But you can set their inPoint and outPoint. Other layers like a comp need to be changed at their source. See the code below on how to do that.

function main() {
// do some checking if we have a comp and a layer selected
  var curComp = app.project.activeItem;
  if (!curComp || !(curComp instanceof CompItem)) {
    // alert and end the script
    alert('please select a composition and at least a layer');
    return;
  }
  var durationValue = 1; // the desired value in seconds
  var selectedLayer = curComp.selectedLayers[0];

// if the layer has source layers it is a comp
// so we change its source duration
// else
// we have layers like solids or lights. They have no source and no layers in them
// so we change their outPoint

  if (selectedLayer.source.numLayers !== null) {
    $.writeln('we have a comp');
    selectedLayer.source.duration = durationValue;
  } else {
    $.writeln('we have a layer');
    selectedLayer.outPoint = selectedLayer.inPoint + durationValue;
  }
}
main();

Home

Clone this wiki locally