2016-07-12 28 views
0

Schreiben eines Skripts für After Effects 2015. Der Versuch, Koordinatendaten von einem Punktausdruck-Controller in die Positionsdaten eines Layers zu kopieren. Ich kann keine Möglichkeit finden, auf die Expression Controller-Werte zu verweisen.After Effects-Skript - Expression Controller-Koordinaten

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);       
} 

Ich habe auch schon versucht, diese:

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);       
} 

Jede mögliche Hilfe würde geschätzt. Ich hoffe, ich habe keine Tippfehler gemacht ...

Antwort

1

Das sollte dich gehen. Sie benötigen eine Ebene mit einem Expression-Point-Controler, der ausgewählt werden muss. Ich verwende hier die Matchnamen der Effekte. Sie können die Namen auch von der Schnittstelle verwenden. Ich schlage vor, die rd_GimmePropPath script from redefinery.com zu bekommen. Hilft mir jedes Mal.

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(); 
+0

Vielen Dank! Das war eine große Hilfe! – user2337615

+0

Danke nochmal. Ich glaube, ich akzeptierte es ... gewöhnte mich immer noch an SE – user2337615