July 26, 2021 at 8:40 pm
Hello. I am creating some assets that I duplicate using true comp duplicator. They are meant to be used many times in the form of a question with some options as answers. Text is going to change of course for each instance.
I have a master composition where I have some precomps for the question/option boxes. the text layers are all in the master composition. I have a null(as a control layer) at the top with some sliders that control the width of all of the boxes which I remind you are inside their own precomps(They are all basically the same precomps but TRUE duplicated).
The way I achieve this is by adding an expression to the width of the boxes(shape layer with points following nulls, so the expression lives in the x position preperty of one of the nulls) which references the name of the composition where the expression exists(thisComp.name) and uses that to find the slider with that name we just referenced back in the master composition.
I want to make clear that this is something I do every day every week and have been doing it for almost a year, but this is an asset I am creating for a new client. I am basically just recreating a method I have already been using for my older client for almost a year.
BUT NOW, for some reason, the compositions are changing their own names to random numbers, that makes ALL expressions break because they are trying to find a slider with the name of the composition where they exist and if that name is being change by after effects then they are never going to find the slider they are looking for!
I need help please. I have been doing this for several months and normally there is no problem at all. precomps having the same name is not a problem for the expressions because all of those precomps with same names live in master compositions with different names.
n = thisComp.name;
sl = comp(“Multiple Choice Question 01”).layer(“Control”).effect(“Width “+n)(“Slider”);
July 26, 2021 at 9:40 pm
Instead of True Comp Duplicator and name-based expressions — which are extremely fragile! — I’d build this setup with Essential Graphics. Then you will only have ONE template comp of each type, and you can build other comps that use it as an instance, passing different data into the Essential Graphics comp and getting different renders back.
This will make much more sense after you read through a couple of relevant links to get you started:
July 29, 2021 at 1:41 pm
For anyone looking for an answer on how I solved my problem:
I modified my expression so that it does not address the entire name of the comp, but1 rather some parts of the name only. I did this with the ‘split’ method, which you should go study if you don’t know what I’m talking about since I will not go in depth here about it.
(great tutorial on it here: https://www.youtube.com/watch?v=C5ZwX8zk4eg)
But basically here’s the code:
n = thisLayer.name.split(” “).charAt(0);
thisComp.layer(“Control”).effect(“Opacity Option “+n)(“Slider”)
This expression lives within the opacity property of my pre-comp layer called “Option A”.
On the first line I am referencing the name of the layer, but not the entire name, specifically, the second word, and more specifically, the first character of the second word. This way if After Effects changes the name and adds a million numbers at the end of it, the expression won’t break since it only cares about the first character on the second word, which will always be “A”.Some contents or functionalities here are not available due to your cookie preferences!
July 29, 2021 at 1:47 pm
Thank you so much. This did not solve the initial question but it gave me ideas on how to work around some other things using essential graphics panel!
One question thought: I know you can create different instances on Premiere using Eseential Graphics, but as far as I know you can’t create “virtual isntances” within after effects itself, right? I can’t just have one comp and modify it in different ways from the EG pannel without having to true duplicate them. If you bring the same comp twice onto a amster comp, modifying one from the eg panel will change both, because they are the same comp.
Having this ‘instance’ feature work inside after effects itself would be a tremendously powerful tool to have for me!
July 29, 2021 at 2:34 pm
You CAN have the instances work in Ae. It’s a game-changer. Easily the most important feature to hit Ae in the last 10 years, and it’s sadly kind of under the radar!
Set up your comp in Ae with the Essential Graphics panel. Then, when you use that comp as a layer in another comp, if you twirl it open in the timeline, you’ll see that you have access to “Essential Properties.” Everything you rigged up in the Essential Graphics panel is now accessible in your timeline on a per-instance basis, no True Comp Duplicator required.
July 29, 2021 at 6:51 pm
Hey Walter thank you so much man! Wow! This is indeed life changing! You did actually solve my problem at the end!
Log in to reply.