Skip to main content
Participating Frequently
September 25, 2018
Answered

Sale controls opacity

  • September 25, 2018
  • 11 replies
  • 1658 views

Hi

I have 11 short interviews that will scale and fill the screen at different times. The design is below each person is a separate layer Comp.

Each layer starts as part of a group then fills the screen then returns to its original position in the group.

This is then repeated 11 times.

As they fill the screen I want the background layers to fade out. I want the scale of one layer to change the opacity of other layers both above and below it in the layer order.

This is where I need help, I thought I could use a Slider attached to the scaling layer. Then parent the opacity on other layers so it reduces their opacity to 40%. Issue I have I cannot change the parenting on the other layers when it is their turn to become full screen when they are already parented to another layer.

Looking for help and maybe alternative ways of approaching this.

Thanks

Mike

This topic has been closed for replies.
Correct answer P.M.B

What he wants to do is have all the other blocks opacity fade down to 40% as one block scales up.

But he needs every block to scale up and down in succession. So the block that was the leader becomes the follower and the block that was the follower becomes the leader...in succession.

So as block A scales up, block B,C,D & E  opacity fades down to 40%...then back up to 100% as Block A scales back down.

When Block B scales up, blocks A,C,D,E opacity fades down to 40% then back up as B scales back down

When Block C scales up, blocks A,B,D,E opacity fades down to 40% ...etc.....

Basically whatever block is scaling...all the other blocks opacity should follow

11 replies

Participating Frequently
September 25, 2018

Thanks for your help - I think Gutterfish has a good explanation.I will look at it again tomorrow. Maybe manually line up position key frames with opacity key frames manually.

Once again you have all been in valuable, and have given me some good ideas.

Mike

Participating Frequently
September 25, 2018

I can see how your video works but I also need the second shape layer to pick whip to other layers.

P.M.B
Legend
September 25, 2018

Maybe there is a more elegant way but the solution I know is have 11 (or as many as you need) separate comps.

You know how to have all the other layers fade as one layer scales, right.

So, Before you write any expressions or keyframe any scaling....get all layers in their own comp.

Precompose your composition and duplicate it properly 11 times (or however many times as you need different expressions)

Properly means you duplicate it in the project panel, not in the layer/timeline panel. If you duplicate it in the layer/timeline panel you'll have 11 instances of the same comp, not 11 separate comps.  So do it properly.

See where it's going?

Now in each comp set up the layers with the linear expression you just learned so that all the layers opacity follow the scale of one layer.

Keyframe the scale of that layer to scale up and then back down.

Move to the next comp. Each comp a different layer will be scaling so the expression will change so all the other layers opacity follow that layer that's scaling.

When all the comps are set up create a main comp, drop all the other comps into it (along with any layers that may be underneath them or over them)

and adjust their in and out points to follow each other

For example:

when the first layer/comp finishes scaling back down to it's "resting size", you trim the outpoint of that comp to that frame, move forward one frame and trim the next compositions in point to THAT frame.  The transition will be unnoticeable.

Repeat this process as needed.

Like I said...maybe there's a more elegant way but I don;t know it.  As long as it works, right?

~Gutterfish
Participating Frequently
September 25, 2018

Thanks both and your generous time.  It not that straight forward. I can have the opacity of layer A and C changed by scale layer B. However I want to also scale layer A which then needs to change the opacity of C and B. However C is already pointing at B but needs to point at A.

As i have said scale needs to drive opacity.

Mike

Community Expert
September 25, 2018

. However I want to also scale layer A which then needs to change the opacity of C and B. However C is already pointing at B but needs to point at A.

As i have said scale needs to drive opacity.

Mike

Scale layer A - Changes the opacity of layer B - That's easy. You should know how to do that.

Scale layer B and Layer C's opacity is changing - is that correct?

If you want the scale of layer A to control both B and C then you can either combine the values mathematically or write an if statement so that Layer A overrides the values you get from layer B if the layer B's opacity is above or below a certain value.

Your explanation isn't making very much sense to me. You have this Org Chart and I'm guessing that you want to bring up certain blocks of information or maybe just the photos in the blocks so as they increase in size they become visible. It sounds like sometimes you want to be able to scale up A and have it scale up B and C, but other times you want to bring up B and have it scale up C, but if A is scaled down then B won't be visible so changing the scale of B wold have no influence on the chart. Do you understand my confusion?

If this were my project I'd add a null and a bunch of expression control sliders. One slider for each block in the chart. Then I'd tie the scale and opacity of each slider to the appropriate block and just animate the sliders. You would only be dealing with one layer that has keyframes.

Another option would be to tie both the opacity and scale of each block to the position of a null so that you could just animate a null moving over the chart and have layers scale up and appear.

Another option would be to tie the layer's in point to opacity and scale so that all you have to do is sequence the layers and they scale up and appear when you want them to in the comp. I've actually got an animation preset that does that. There's a slider that sets the number of frames that it takes to scale up and appear so all I would have to do when I wanted Layer 6 to start scaling up and appear at 3 seconds would be to set the in point of layer 6 to 3 seconds.

Try and explain exactly what you are trying to do visually and maybe we can help you figure out a better workflow. If the entire animation lasts longer than five or six seconds I would suggest that you add a camera and move around on the chart to keep your audience engaged. Nobody can concentrate on a chart like that for more than a couple of seconds without some kind of editing to direct their eyes to the important bits.

P.M.B
P.M.BCorrect answer
Legend
September 25, 2018

What he wants to do is have all the other blocks opacity fade down to 40% as one block scales up.

But he needs every block to scale up and down in succession. So the block that was the leader becomes the follower and the block that was the follower becomes the leader...in succession.

So as block A scales up, block B,C,D & E  opacity fades down to 40%...then back up to 100% as Block A scales back down.

When Block B scales up, blocks A,C,D,E opacity fades down to 40% then back up as B scales back down

When Block C scales up, blocks A,B,D,E opacity fades down to 40% ...etc.....

Basically whatever block is scaling...all the other blocks opacity should follow

~Gutterfish
Participating Frequently
September 25, 2018

I should also say the opacity layer will also need to become a scaling layer.

A controls B, C,D etc

then B controls A, C, D etc

C controls A, B, D

Mike

Community Expert
September 25, 2018

Just point to the layer that you want to use to drive scale.

You need to spend some time studying basic expressions. Type expressions in the AE Search Help field and do some studying. This is really basic stuff you could learn by just spending a couple of hours with the community resources. The search help field is in the top right corner of AE. Don't use the Help menu, use the Search Help field.

Participating Frequently
September 25, 2018

Thanks Rick

How would I apply this to another layer - my problem evolves around using scale from one layer to change the opacity of another. Scale being the main controller.

Mike

P.M.B
Legend
September 25, 2018

Here check this out

~Gutterfish
P.M.B
Legend
September 25, 2018

In the video where I was dragging the scale and nothing was happening is because the timeline was playing.

Sometimes it hard to tell since the CTI doesn't move during playback anymore

(one of Adobes stellar improvements in the '2015 overhaul")

I just hit stop and then was able to drag the scale value.

~Gutterfish
Participating Frequently
September 25, 2018

I have it like this. Scale drives opacity - still get an error.

Community Expert
September 25, 2018

Dave's expression is completely wrong for opacity. It would work if you applied it to scale and animated the opacity.

Participating Frequently
September 25, 2018

Thanks guys

Dave that expression seems to over write the scaling keyframes and turns off the animation.

Mike

Community Expert
September 25, 2018

You are making it much to difficult and not understanding the basic principals of arrays or the linear method. Try this:

  1. press "s" to reveal the scale property of the layer
  2. press shift + t to reveal transparency
  3. press alt/option and click on the transparency property to start writing an expression
  4. move to the expression and type t =
  5. select the expression pickwhip and drag to just the x value of scale
  6. add a semicolon and a return
  7. grab the Expression Language Menu and drill down to Interpretation and pick linear(t, tMin, tMax, value1, value2) from the options
  8. edit tMin and enter the x scale you want to correspond to the minimum opacity for the layer (let's say 25)
  9. edit tMax and enter the x scale value you want to correspond to the maximum opacity for the layer (probably 100%)
  10. edit value1 to give you the minimum opacity (probably zero)
  11. edit value 2 to give you the maximum opacity (probably 100)
  12. end expression editing

You should get:

t = transform.scale[0];

linear(t, 25, 100, 0, 100)

This will animate the opacity from 0 to 100% when the layer's scale animates from zero to 100% but the opacity will stay at zero until the scale gets to 25%.

Did you follow that?

Participating Frequently
September 25, 2018

Thanks Dave

I think i need a bit more guidance and help, could you write it out. Many thanks

Mike

Legend
September 25, 2018

Just use:

t=linear(thisComp.layer('B').transform.opacity,17,100,40,100);
[t,t]

Participating Frequently
September 25, 2018

Thanks like this?

Legend
September 25, 2018

On a second line. You are defining a variable called 't', then passing two copies of it to the controller.

Participating Frequently
September 25, 2018

Hi Thanks

Not working - get an error - expression must be a dimension 2 not 1

This is my testing Comp -

I have added Linear expression to Scale layer A then linked it to opacity Layer B. Layer A scales from 17% to 100 percent. Layer B should fade out from 100 to 40 at the same time. Thanks for your help. Mike

Legend
September 25, 2018

Scale needs two values for horizontal and vertical, so end your expression with [t,t]