Forum Replies Created

Viewing 1 - 10 of 12,606 posts
  • Walter Soyka

    May 26, 2022 at 1:17 pm

    Paddy, I’d use the Fractal Noise, Mosaic, and Colorama effects to build the colored squares layer procedurally, and I’d use the Card Dance effect (in conjunction with another animated noise layer) to animate its scale on.

  • Walter Soyka

    May 25, 2022 at 7:25 pm

    You should write a loop to walk through all of the items in the project. Compare the path of the file you’re considering importing to the path of each project item’s source. If you find a match, no need to import.

  • Walter Soyka

    May 23, 2022 at 9:00 pm

    There is no way to organize or hide elements from the Effect menu, although this exact issue has been addressed sometime since the older version you’re running. The current release of After Effects splits the Effects menu into columns so it doesn’t run off the bottom of the screen.

    Here are a few other options for getting to Effects quicker than drilling through the menu system:

    1. Use the Effects and Presets panel, which a tree similar to the Effects menu. The hotkey to bring up the panel is Ctrl+5. If you then hit Ctrl+F for find, you can start typing the name of the effect you want, and the list will instantly filter. You can double-click or drag and drop to apply effects from the list.

    2. Use a third-party launcher. I use Video Copilot FX Console, but there’s also Quick Menu (and probably several others). This way of working is so fast, you will never want to use the menu system again.

    It’s possible that right-clicking the layer you want to add effects to, then selecting the “Effects” submenu will break the list into columns as I mentioned above, but I’m not sure what version that was added.

  • Walter Soyka

    May 17, 2022 at 2:39 am

    Yes — your indentation is deceptive. You are creating pComp and attempting to move it to pMedia inside your loop. Unless the pMedia folder is the very first item in the project, this will fail; creating pComp needs to happen outside the loop, after you’ve identified the pMedia folder.

    See this revision. (I’ve also renamed your ‘comp’ variable, because reading ‘comp instanceof FolderItem’ made me do a double-take, I’ve added a little error checking in case the folder isn’t found, and I’ve added comments to explain what’s going on throughout.)

    app.beginUndoGroup("Create pComp in pMedia");
    // create a variable to store our media folder
    var pMedia = null;
    // step through the project, looking for the pMedia folder
    for (var i = 1; i <= app.project.numItems; i++) {
    var projectItem = app.project.item(i);
    // check the current project item to see if it's a folder named 'pMedia'
    if (( == "pMedia") && (projectItem instanceof FolderItem)) {
    // we found it, so let's store it in pMedia, then stop processing the loop
    pMedia = projectItem;
    // if we failed to find a pMedia folder, tell the user
    // otherwise, create a new comp and put it in the pMedia folder
    if (pMedia == null) {
    alert("No pMedia folder found!");
    } else {
    var pComp = app.project.items.addComp("pComp", 1920, 1080, 1, 15, 30); // Create Comp
    pComp.parentFolder = pMedia;
  • Walter Soyka

    May 14, 2022 at 1:04 am

    Glad you found the solution. As for why that’s the solution, it’s because the backslash is an “escape character” in Javascript strings. It’s not taken literally; rather, it escapes the string and indicates the next character should be not be processed literally. You can use it to add special characters to strings.

    For example, if you wanted to add a single quote to a string enclosed in your script in single quotes, you’d do it with \’. You can also add a tab with \t, a newline with \n, and, as you’ve noted, a backslash with \\.

  • Walter Soyka

    May 14, 2022 at 12:57 am

    Effects in Ae like the Puppet Tool are inherently raster-based, not vector based.

    I think your best bet is to do your puppet work on your vector layer in a precomp at high resolution, so it’s mostly scaling down in the camera comp, instead of scaling up.

  • Walter Soyka

    April 25, 2022 at 4:52 pm

    This might be a good case for the Essential Graphics workflow. This would let you put all your logic into one reusable comp, then render out instances of it:

    That said, we still see our project files get pretty big any time we have a large number of comps.

  • Walter Soyka

    April 22, 2022 at 7:28 pm

    Two ways to approach this.

    1. Use an expression to offset the effective start time of the animation. Apply this expression to any animated properties in your first layer. Then, when you copy and paste it onto layers with different start times, Ae will play the animation when the layer begins, irrespective of when the keyframes occur on the time.

    if (numKeys < 1) { value; } else {

    var animationStartTime = key(1).time;

    var animationStartDelay = thisLayer.inPoint - animationStartTime;

    valueAtTime(time - animationStartDelay);


    2. You can quickly move all layers to the beginning of the comp by selecting them all, placing the current time indicator at the very first frame, and pressing the ‘[‘ key. Then, you can copy and paste and everything will line up at the first frame. To re-sequence the layers, select them all (first to last), then in the timeline window, right-click any of the layer bars, select Keyframe Assistant > Sequence layers…, and then click OK in Sequence Layers dialog (keeping ‘Overlay’ disabled).

  • Walter Soyka

    April 19, 2022 at 7:24 pm

    You might look at using Essential Graphics to avoid having to pickwhip for expressions across comps.

  • Walter Soyka

    April 18, 2022 at 7:44 pm

    Nope, no obvious way to do what you want. With Ae’s render order putting Effects before Transforms, Set Matte just doesn’t work the way pretty much everyone wants it to.

    Workflower might be worth a look:

Viewing 1 - 10 of 12,606 posts

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