Animate With a Control Layer – Adobe After Effects tutorial

Animating many layers on at once is hard… but not if you use Control Layers. Link the animation of a while field of layer into one gradient layer in minutes with one excellent expression. That expression looks like:


sourceLayer = thisComp.layer(“Transition Control 2”);
sampleSize = [1,1];
samplePoint = transform.position;
colour= sourceLayer.sampleImage(sampleSize,samplePoint);


and you can put that shit on everything!


If you have any questions just let me know in the comments.


Download this project file:

This file ONLY works in After Effects CS6 and NEWER.

Download DirectDownload Via GumRoad


  • Mick

    08.01.2014 at 22:35 Reply

    Thanks! Very cool tutorial. I’m having a problem trying to improve the accuracy of the luminance sampling that triggers the scaling. I see that the same thing is happening in your tutorial.

    For example, the hexagons begin scaling up on screen right while the control layer is still black. I’ve tried to increase the sampleSize which somewhat helps, but it still isn’t perfect.

    I’m hoping to fill the screen with hundreds of tiny objects while using white text on a black background in the control layer to control an animation.

    I just can’t get the luminance/color sampling to be acurate enough to make legible text.

    Any advice? Thanks again!

  • Matthew Roberts

    19.05.2014 at 11:14 Reply

    I have also had a similar problem. I am trying to scale up from the centre, using a radial gradient on a shape layer. The sampling seems to work from the bottom right corner across, instead of working from the centre as desired.

    any ideas?

  • Steve Tarlton

    06.05.2016 at 07:58 Reply

    I was struggling with this to try to get it to match the gradient I was using as a control layer. I did some searching online and it looks like the “sampleSize” and “samplePoint” are reversed in your sampleImage expression. I believe it is sampling from position [1,1], (the upper left corner) at the sample size of whatever numbers “transform.position” is returning. That is why the star starts growing before the gradient hits the transform point of the star. Hopefully that helps someone. Thanks for this expression it is really cool and I love what it can do.

Post a Comment