Scaling multiple objects individually
Copy link to clipboard
Copied
Hi,
I have imported a mulit layered illustrator file.
I would like to scale each layer individually.
I have applied a null object with scale but it is scaling up all the layers as one.
Im trying to apply a scale expression and want to apply it to all and control it with the null rather than aplying the expression to each layer. If thats possible?
Im obviously not doing it right. Can anyone please explain how to do it properly?
Thanks
Copy link to clipboard
Copied
The closest thing I can think of would involve using a text layer (named "text" in this example) instead of a null. The text layer would have text like this:
[100,90,80,95,100,110,80,100,105,115,95,90,85]
which would define an array with a scale value for every layer.
Every other layer would have this expression:
a = eval(thisComp.layer("text").text.sourceText);
s = a[index-1];
[s,s]
which would retrieve the layer's scale value from the text layer. Each layer still has to have an expression, but the individual scale values could be maintained on the text layer.
Dan
Copy link to clipboard
Copied
You have a wrong understanding how expressions work or for that matter what parenting is and how it works. Of course you need to apply it to all layers individually. Since you seem to have an AI background, think of it in those terms: Using the "Transform Each" command is quite different than just selecting a bunch of layers or groups and transforming them using their bounding box. this is no differnt here, just in a different guise. So to cut to the point: Don't use parenting at all, just set up the expressions, which should be easy enough by applying it to one layer and then copy&pasting to the others, possibly using the "Copy Expression only" command to further facilitate matters and have AE do the hard work of auto-matching properties for you...
Mylenium
Copy link to clipboard
Copied
I see the null with some kind of expression and keyframes applied to scale. I also see all of the null layers parented to the Null layer.
When you scale the null layer you will scale all of the child layers around their anchor point but it will also scale the entire group. If the Anchor Point is in the center of each child layer when the parent scales the position of the layers will also change in the same way a layer would appear to move when scaled if the anchor point were not in the center of the layer.
The easiest option is to create an expression that ties the scale of a layer to the scale of the Null 1 layer with a simple pick whip to the Null's scale property and forget parenting. You can then copy the expression only and paste it to every other layer. You could also add a Value + to the result that would allow you to animate the scale of each individual layer independently but they would still follow the scale of the Null.
If you want to be able to move all of the layers around using the null but individually control their scale with an expression then you can tie the scale of all of the layers to a controller layer's expression control or you can make the controller move, rotate, and scale the transform properties of the controller layer by using expressions instead of parenting.
A little more detailed description of what your design goals are would help a lot. There is nothing in your post or your screenshot that tells us what you want to happen to all of those child layers when the Null layer changes.
Copy link to clipboard
Copied
We definitly need more details about what you are going to achive.
There a some possibilities to have individually scales driven by one controller. You can add randomness and time offsets, but we have to know what you want to do to point you into the right direction.
*Martin
@Dan: nice 😉

