Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions Changing Anchorpoint within a Script – Create Null and parent to selected layer.

  • Changing Anchorpoint within a Script – Create Null and parent to selected layer.

    Posted by Sebastian Rasche on July 10, 2017 at 1:09 pm

    Hey there,

    so I found this script by Lloyd Alvarez on AeScripts called “Add Parented Null to Selected Layers”
    What the script basically does is creating a null and parent it to a selected layer.

    The only thing I would like to change is that the nulls Anchorpoint is centered, so basically having the Anchorpoints coordinates at [50,50].
    As I have no experience with scripting could anybody tell me how I would achieve that?

    Thanks in advance!

    var proj = app.project;
    var undoStr = "Add Parented Null to Selected Layers";

    if (proj){
    var myComp = app.project.activeItem;
    if (myComp != null && (myComp instanceof CompItem)){
    app.beginUndoGroup(undoStr);

    var myLayers = myComp.selectedLayers;
    if (myLayers.length != 0) {
    var saveIn = myComp.duration;
    var saveOut = 0;
    var saveIndex = myComp.numLayers;
    var newInpoint=myComp.duration, newOutpoint=0, myIndex=myComp.numLayers;
    var newNull = myComp.layers.addNull(myComp.duration);
    //check to see if any of the selected layers is a 3d layer
    for (i=0; i <= myLayers.length-1; i++){
    if (myLayers[i].threeDLayer) {
    newNull.threeDLayer = true;
    break;
    }
    }

    for (i=0; i <= myLayers.length-1; i++){

    currentLayer = myLayers[i];
    saveIn = (currentLayer.stretch < 0) ? currentLayer.outPoint : currentLayer.inPoint;
    saveOut = (currentLayer.stretch < 0) ? currentLayer.inPoint : currentLayer.outPoint;
    saveIndex = currentLayer.index;

    if (saveIn < newInpoint) {newInpoint = saveIn}
    if (saveOut > newOutpoint) {newOutpoint = saveOut}
    if (saveIndex < myIndex) {myIndex = saveIndex}

    currentLayer.parent = newNull;
    }

    newNull.moveBefore(myComp.layer(myIndex));
    newNull.inPoint = newInpoint;
    newNull.outPoint = newOutpoint;

    app.endUndoGroup();
    } else {
    alert("Please select at least one layer");
    }
    } else {
    alert("Please select an active comp to use this script");
    }
    }
    else
    {
    alert("Please open a project first to use this script.");
    }

    Sebastian Rasche replied 9 years ago 1 Member · 0 Replies
  • 0 Replies

Sorry, there were no replies found.

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy