Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects How to parent scale only… want proportional control, not just copy value like pickwhiping scale to scale.

  • How to parent scale only… want proportional control, not just copy value like pickwhiping scale to scale.

    Posted by Greg Sage on March 19, 2014 at 6:10 am

    I’ve got a hundred or so layers I need to scale together. They’re all different sizes, etc. I’ve reached a point where I have rounding errors and the like from running out of digits when I daisy chain them.

    So… I need them all to refer back to one single layer which controls the lot. Each has it’s own starting point, though, so what I really need is for them to all grow proportionally larger at the same rate.

    If I pickwhip them all to a null, they all just mimic the null’s value, so they all have the same value at the same time and ignore their unique starting points.

    I’m sure I could write a little expression for each one that takes it’s starting value, then multiplies by the null value, but I’d also have to create a place to hold that for each one, and frankly there’s just got to be an easier way.

    Basically, what I want is what parenting does (keeps the starting value, but changes the value by that much)… but ONLY for scale.

    Greg Sage replied 12 years, 2 months ago 4 Members · 4 Replies
  • 4 Replies
  • Walter Soyka

    March 19, 2014 at 6:30 am

    [Greg Sage] “I’m sure I could write a little expression for each one that takes it’s starting value, then multiplies by the null value, but I’d also have to create a place to hold that for each one, and frankly there’s just got to be an easier way.”

    You will have to do this with an expression.

    I don’t know what you mean “I’d have to create a place to hold that for each one.” Can you clarify?

    Walter Soyka
    Principal & Designer at Keen Live
    Motion Graphics, Widescreen Events, Presentation Design, and Consulting
    RenderBreak Blog – What I’m thinking when my workstation’s thinking
    Creative Cow Forum Host: Live & Stage Events

  • Cassius Marques

    March 19, 2014 at 1:10 pm

    Wouldn’t it just be:

    value multiplied by the null’s scale divided by 100? (value*(null’s pickwipped scale/100))

  • Ridley Walker

    March 19, 2014 at 3:25 pm

    Here’s a sample using an expression control on a null layer.

    7251_expressionsliderscalecopycs6.aep.zip

  • Greg Sage

    March 19, 2014 at 4:34 pm

    Yeah, thx guys. That’s basically what I ended up working out. I skipped the /100 part only because I ran the null from 1 on up rather than 100.

    I’ve noticed some issues that appear to be rounding errors once the scaling gets above 17 zero’s which is where the scientific notation kicks in… so I thought I’d see if I could buy myself a couple extra digits by starting with 1.

    The issue with just parenting by daisy chaining is that once those numbers get above the threshold, I get all kinds of seemingly random movement. I assume it’s rounding errors.

    So… I played around with the pickwhip until I came up with:

    FollowX = transform.scale[0]*thisComp.layer(“Null”).transform.scale[0];
    FollowY = transform.scale[1]*thisComp.layer(“Null”).transform.scale[1];
    [FollowX, FollowY]

    As for the “placeholder”, I wasn’t sure if I could use a stored value for the x and y coordinate at the same time as generating a new value for them, so I thought I’d have to create a null or something to store the starting value since the parented value would take over. I thought there might be a loop where I’m trying to read something, over-write it, and store it simultaneously.

    Apparently, you can do both, and the transform.scale[0] refers to that starting point as opposed to the adjusted value. The output doesn’t replace it, but rather takes over the value since the expression is enabled while still retaining the starting point in the disabled spot (it reverts to the starting point if I disable the expression).

    Anyway, it’s my first time attempting to both read AND overwrite a value simultaneously in the same field, so I just wasn’t sure if it could be done.

    I’ve got a couple dozen scales tied together with this expression now, and it seems to be working. Digging in a bit further to see if I can resolve the other issues.

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