Изменить продолжительность слоя в композиции с помощью javascript в After Effects

Кто-нибудь может мне помочь? Я пытаюсь написать сценарий для After Effects CC, используя Extendscript. Я хочу изменить продолжительность слоя в композиции с помощью javascript. Я написал этот код здесь

app.project.item(1).layer(1).length = 12;

or

app.project.item(1).layer(1).duration = 12;

но это не работает. Как мне это сделать? Спасибо.


person Max_Pro    schedule 08.01.2017    source источник


Ответы (1)


Дело не так просто. Слои, такие как Solids, не имеют длительности, которую вы можете установить. Но вы можете установить их inPoint и outPoint. Другие слои, такие как композиция, должны быть изменены в их источнике. См. код ниже, как это сделать.

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();
person fabianmoronzirfas    schedule 09.01.2017
comment
Большое тебе спасибо. Да, я только начинаю разбираться в этой теме и так плохо изучил материал, а мне нужен был уже написанный сценарий. В очередной раз благодарим за помощь. - person Max_Pro; 10.01.2017