I thought this would be easy but it’s not working. I created a 50×50 stickfigure shape C and placed it in a 200×200 comp B at the top. Then i place comp B 6x in a 200×200 comp A and rotated each +60 degrees. So you get this http://www.patrickjansen.net/AE/tmp.html
but instead of having each stickfigure rotated according to the manual rotation, I tried rotating them “back” (so they’re all upright) by attempting to read in that manual rotation -> (in the subclip B rotating it “back”) by setting C rotation value to expression -thisComp.rotation but it’s not working.
Am i missing something? is this not possible?
I’m not quite sure of what you’re trying to do, but if you want to invert the sense of rotation of a layer, the expression would be
transform.rotation * (-1)
Hope that helps. cheers!
- Won a Competition
- Sold between 50 000 and 100 000 dollars
- Author was Featured
- Author has had an Item Featured
- Has been a member for 3-4 years
- Microlancer Beta Tester
- Exclusive Author
- Referred between 50 and 99 users
I dont understand what you are trying to get.
All those figures to rotate around the center like a wheel?
All you need to do is put a null object (New> Null Object) in the center, parent all those stick figures to the null object and then make the null object rotate.
the stick figures need to be standing up, as if standing on their feet
Not really sure what your question is or why you’d want to do that, but if you want to counter-rotate each instance of the comp, then you need to read in the rotation of the underlying layer.
The following on each of the comp instances rotation property should do it.
thisLayer.source.layer("stick man layer").rotation * (-1);
If the layer’s are offset in-time, then you need to use….
thisLayer.source.layer("stick man layer").rotation.valueAtTime(time - thisLayer.startTime) * (-1);
If you’re using layer stretch or time remap it gets trickier.
Replace “stick man layer” with the name of your stick man layer.
However I don’t think that this is what you’re trying to do…. I think what you want to do is parent each layer to a null, like cyzer suggests and then rotate the null while keeping them upright. In that case you just need to measure the null’s rotation and rotate the layer accordingly
thisLayer.parent.rotation * -1;
As you can see, expressions are rather precise and if you really want help, you need to be equally precise in what you’re asking for. That’s half the battle.
i’m not sure if I’m explaining properly. I’ll try again. Remember this is only a sample of what I’m doing, it’s not literal
1) I create a comp “C” of 50×50 pixels with a stickman in it.
2) I place it in a comp “B” of 200×200 pixels and place it glued to the top of the comp “B”.
3) Then I create a comp “A” of 200×200 and place 360 instances of comp “B” in it and manually rotate each a degree so I get a full circle of 360 stickmen.
At this point I want comp “B” to automatically adust its internal instance of “A” back so that each stickmen is with his head upwards
does that make more sense? and if so, is there some/any efficient way?
||+521730|patrickjansen said-|| i’m not sure if I’m explaining properly. I’ll try again. Remember this is only a sample of what I’m doing, it’s not literalBe literal.
||+521730|patrickjansen said-||1) I create a comp “C” of 50×50 pixels with a stickman in it.Good so far
||+521730|patrickjansen said-||2) I place it in a comp “B” of 200×200 pixels and place it glued to the top of the comp “B”.Glue? Is that a technical After Effects term? How exactly do you place the instance of comp C? At what coordinates? Where is the anchorpoint?
||+521730|patrickjansen said-||3) Then I create a comp “A” of 200×200 and place 360 instances of comp “B” in it and manually rotate each a degree so I get a full circle of 360 stickmen.Do you move the position of A as well, if you just adjust the rotation, then you won’t have a a circle, but a bunch stickmen at different rotations sitting on top of one another. Or did you move the anchorpoint? Please be specific.
||+521730|patrickjansen said-||)At this point I want comp “B” to automatically adust its internal instance of “A” back so that each stickmen is with his head upwards.You can’t. B are all the same comp. If you adjust for one, you adjust for all. To give each a separate rotation, then you’d need to adjust the instance layers, not the internals of the comp. You’re thinking about this wrong. From what you’re saying, I still think that my answer above (the end part) is probably right.
||+521730|patrickjansen said-||) does that make more sense? and if so, is there some/any efficient way?
I’ll say it again… you dont’ need to describe the steps you have already taken, you need to precisely describe what you want to achieve.
I’m still pretty certain that what you’re trying to do is what I described at the end of my first post and that what I said at the end of my first response is correct. Here it is again.
Make your 50×50 Stickman comp. We’ll call it Comp C.
Make a 1920×1080 comp (360 50×50 stickmen in a 200×200 comp? You’ve got to be kidding!). We’ll call this Comp B. There will be no Comp A.
We’re going to make a circle with 10 stickmen for simplicity. First you will arrange them in a circle.
Make a Null in the middle of Comp B. Drop one instance of Comp C, the stickman into Comp B. Move it to coordinates [1060, 540], then make it the child of the Null. Rotate the null by 36 degrees, then drop another instance of the stickman Comp C in to Comp B and set it’s coords to [1060,540], make this a child of the Null aswell, rotate the Null by a further 36 degrees to 72 degrees (you can just type +36 after its current value if you can’t be bothered to add it up in your head) and so on until you have a circle of stickmen.
Now put the following expression on to each stickman’s rotation property.
thisLayer.parent.rotation * (-1);
(as I said above)
Now when you rotate your null, you stickmen will rotate in a circle, while remaining upright. I’m guessing that’s what you were after. If not, I think you’re going to need to make a screen cast to demonstrate what it is you’re trying to do.