2016-07-12 3 views
0

Ecriture d'un script pour After Effects 2015. Tentative de copie des données de coordonnées d'un contrôleur d'expression ponctuelle vers les données de position d'un calque. Je n'arrive pas à trouver un moyen de pointer vers les valeurs du contrôleur d'expression.After Effects Script - Expression Controller Coordinates

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

J'ai aussi essayé ceci:

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

Toute aide serait appréciée. J'espère que je n'ai pas fait de fautes de frappe ...

Répondre

1

Cela devrait vous aider. Vous avez besoin d'une couche avec un contrôleur de point d'expression et elle doit être sélectionnée. J'utilise ici les noms de match des effets. Vous pouvez également utiliser les noms de l'interface. Je suggère d'obtenir le rd_GimmePropPath script from redefinery.com. Ça m'aide à chaque fois.

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

Merci! C'était une aide énorme! – user2337615

+0

Merci encore. Je pense que je l'ai accepté ... encore s'habituer à SE – user2337615