After Effects脚本 - 表达式控制器坐标

时间:2016-07-12 04:00:07

标签: javascript expression extendscript after-effects

为After Effects 2015编写脚本。尝试将坐标数据从点表达式控制器复制到图层的位置数据。我似乎无法找到指向表达式控制器值的方法。

for (i = 1; i <= app.project.activeItem.selectedLayers[0].property("Effects").numProperties;  i++) {
    app.project.items[2].layer(i).property("position").setValue(app.project.activeItem.selectedLayers[0].property("Effects").property(i).value);                         
}

我也试过这个:

for (i = 1; i <= app.project.activeItem.selectedLayers[0].property("Effects").numProperties;  i++) {
    app.project.items[2].layer(i).property("position").setValue(app.project.activeItem.selectedLayers[0].property("Effects").property(i).property("Point").value);                         
}

任何帮助将不胜感激。我希望我没有做任何错别字......

1 个答案:

答案 0 :(得分:1)

这应该让你去。您需要一个带有表达式点控制器的图层,并且需要选择它。我在这里使用效果的匹配名称。您也可以使用界面中的名称。我建议获得rd_GimmePropPath script from redefinery.com。每次都帮助我。

function main() {
  app.beginUndoGroup("XXX");
  var curComp = app.project.activeItem; // get the current comp
  if (!curComp || !(curComp instanceof CompItem)) {
    // doulble check
    alert("noComp");
    return;
  };
  var layerwithpointcontroller = curComp.selectedLayers[0]; // the first selected layer
  // get the value of the expression controler
  var pointvalue = layerwithpointcontroller.property("ADBE Effect Parade")
    .property("ADBE Point Control")
    .property("ADBE Point Control-0001")
    .value;

  $.writeln(pointvalue); // take a look at it
  var nullobject = curComp.layers.addNull();// add a null
  nullobject.position.setValue(pointvalue);// set its position
  app.endUndoGroup();
}
main();