Forum Replies Created

Page 2 of 18
  • Max Haller

    December 4, 2022 at 4:13 am in reply to: Drop Down Menu Globally?

    Yes, it is possible to update a drop down menu in a main comp and have that update reflected in other linked comps. To do this, you can use an expression control effect to control the drop down menu in the main comp. This expression control effect can then be linked to the drop down menus in the other comps, so that when the drop down menu in the main comp is updated, the linked drop down menus in the other comps are also updated.

    Here is an example of how you can set this up:

    1. In the main comp, add an expression control effect to the layer that contains the drop down menu you want to control.

    2. In the main comp, open the Expression Editor and add the following expression to the expression control effect:

    // Set the default value of the drop down menu dropdownMenu = 1;
    // Update the drop down menu when the expression control effect is changed if (thisComp.layer("Expression Control").effect("Dropdown Menu")("Dropdown Menu") != dropdownMenu) { dropdownMenu = thisComp.layer("Expression Control").effect("Dropdown Menu")("Dropdown Menu"); }
    1. In the other comps, add the same expression control effect to the layers that contain the drop down menus you want to control.

    2. In the other comps, open the Expression Editor and add the following expression to the expression control effect:

    // Set the default value of the drop down menu 
    dropdownMenu = 1;
    // Update the drop down menu based on the value in the main comp
    if (thisComp.layer("Expression Control").effect("Dropdown Menu")("Dropdown Menu") != dropdownMenu) {
    dropdownMenu = thisComp.layer("Main Comp").layer("Expression Control").effect("Dropdown Menu")("Dropdown Menu");
    }

    With this setup, you can update the drop down menu in the main comp and have the changes reflected in the other comps. Let me know if you have any questions or if you need any additional help with this.

  • Here is one possible way to achieve the desired effect using the linear() function and the posterizeTime() effect:

    // Set the magnet radius and the minimum posterization rate

    const magnetR adius = 500;

    const minRate = 1;

    // Calculate the distance of the object from the center of the effector

    const distance = length(thisComp.layer("Effector").position, thisComp.layer("Object").position);

    // Calculate the posterization rate using the linear() function

    const rate = linear(distance, 0, magnetRadius, minRate, 30);

    // Apply the posterization effect using the calculated rate

    posterizeTime(rate);

    The above expression uses the position of two layers, “Effector” and “Object”, to calculate the distance between them. The distance is then used to calculate the posterization rate, which is passed to the posterizeTime() effect. The closer the object is to the center of the effector, the higher the posterization rate will be. You can adjust the magnet radius and the minimum rate to achieve the desired behavior.

    You can also use other mathematical functions, such as the pow() function, to calculate the posterization rate in a non-linear way. For example:

    // Calculate the posterization rate using the pow() function 
    const rate = pow(distance / magnetRadius, 2) * 30 + minRate;

    This expression uses the distance and the magnet radius to calculate the posterization rate in a quadratic fashion, which means that the rate increases faster as the distance gets smaller.

    I hope this helps! Let me know if you have any questions.

  • Max Haller

    December 4, 2022 at 4:04 am in reply to: valueAtTime in both directions

    see if this helps too

    const src = thisComp.layer(index-1);

    const v = src.transform.position.velocity;

    let delay;

    if (time == 0) {

    // Set the position to the initial value at time 0

    [value[0], value[1], value[2]];

    } else {

    // Check if the velocity is greater than or equal to 0

    if (v[2] >= 0) {

    // If the velocity is positive, check if the previous delay value was negative

    if (delay < 0) {

    // If the previous delay was negative, interpolate between the previous value and -0.1 to smooth out the transition

    delay = linear(time, time-thisComp.frameDuration, time, delay, -0.1);

    } else {

    // If the previous delay was not negative, set the delay to -0.1

    delay = -0.1;

    }

    } else {

    // If the velocity is negative, check if the previous delay value was positive

    if (delay > 0) {

    // If the previous delay was positive, interpolate between the previous value and 0.1 to smooth out the transition

    delay = linear(time, time-thisComp.frameDuration, time, delay, 0.1);

    } else {

    // If the previous delay was not positive, set the delay to 0.1

    delay = 0.1;

    }

    }

    // Use the calculated delay value to get the position value at the current time

    src.transform.position.valueAtTime(time - delay);

    }

  • Max Haller

    August 12, 2022 at 3:28 pm in reply to: _mov.mov folders being created on renders

    Thanks for you reply Walter, I believe you’re correct about the cause. I’m not sure why it invalidates though. I don’t remember ever having this issue on older versions. I have comp name set as the default for the Output To: but I have noticed sometimes it puts the entire destination path as the name at first, and I have manually set it back to Comp Name.

  • I believe you understand how its working properly. The bit about it not knowing what to add that layers pixel data to because there’s nothing underneath.

    Have you tried using the choke matte effect to shrink the edges of the alpha? That could be enough to get rid of the dark edges if you play around with that and maybe a blur. Try choking the layer youre using as an alpha matte with that effect just a few pixels and it might be enough.

  • Max Haller

    September 7, 2020 at 8:12 pm in reply to: 3D object rotation

    Hey Tommy

    It depends a lot on what type of 3d things you’re trying to rotate. That link seems to show 3 separate techniques about making 3d text. If that’s what you’re trying to do one of those techniques should work. If you’re trying to rotate a more complicated object- I don’t think AE has the capabilities to do that without buying plugins. If you describe what you’re trying to do maybe I can help you better.

  • Max Haller

    December 6, 2019 at 10:39 pm in reply to: Radial Repeater

    I recently made something similar, (assuming you’re talking about the thin circular rings and not the photos.) Try making a circle shape layers with no fill and a stroke, then change the dash settings and duplicate the layer once or twice with tweaked settings and that should make it look like the dashes are random length. Then just do that for each ring, should get you pretty close.

  • Max Haller

    December 5, 2019 at 7:54 pm in reply to: “Inverting” a Shape Layer

    Julien is right if you do it with a solid layer under the shape layer. You can also do it all in the shape layer by essentially doing the same thing except instead of making a solid layer, you make another shape path and use the merge paths with the mode set to subtract.

  • Max Haller

    December 5, 2019 at 7:32 pm in reply to: Laptop for After Effect – Specs

    That should be plenty of power for what youre doing

  • Well, I don’t know a built in way to do this either. But a while back I was using software to automatically scan a specific directory and move folders that matched certain naming conventions into another drive. Sadly i don’t remember what it was called but there are a lot of software options out there that can do that.

    I briefly scanned this page and it might offer some help: https://www.online-tech-tips.com/computer-tips/how-to-move-or-copy-files-at-scheduled-time-intervals/

    You should be able to set it to scan a project directory searching for AME and then move those files/folders to a separate destination. It’s not ideal but might work.

Page 2 of 18

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