Copy link to clipboard
Copied
Hi everybody,
Hard to explain but very simple:
I made a composition where I animated a text.
I put this Comp in another one. I duplicate it multiple time.
I add a sourceText in it. I change the sourceText during time.
I would like my duplicated comp to change its text too.
I have this but it doesn't work:
"
thisCompLayer = comp("CompNAME").layer("LayerNAME");
NewTime = thisCompLayer.time + thisCompLayer.startTime;
comp("CompNAME").layer("SourceTextLayerNAME").text.sourceText.valueAtTime(NewTime)"
Copy link to clipboard
Copied
this expression should be enough:
comp("CompNAME").layer("SourceTextLayerNAME").text.sourceText.valueAtTime(time)
Copy link to clipboard
Copied
Copy link to clipboard
Copied
You must name things correctly.
Copy link to clipboard
Copied
I got you. I made this screenshot to show you the structure of my Comp + Precomp but the names are correct.
With the expression you provided, I have the right text at the beginning but it doesn't change with the keyframes. It keeps the 1st sourceText at frame 0 unfortunately.
Copy link to clipboard
Copied
Copy link to clipboard
Copied
As you can see I created a PreComp with a text animation.
Then, I put it into another Comp where I created a Text as a source.
I keyframed this text layer to change the sourceText each time the precomp plays.
For example, it says "ONE", then "TWO", then "THREE" etc...I want this text animation to play each time with this new text.
For the moment, I have the text "ONE" but it doesn't change during the animation.
Hard to explain (by being French in addition 😉
Copy link to clipboard
Copied
La précomposition 1 doit afficher le mot de l'image clé 1,
La précomposition 2 doit afficher le mot de l'image clé 2
et ainsi de suite?
Copy link to clipboard
Copied
Exactement!!!
Merci merci merci!!!
Copy link to clipboard
Copied
OK, il faut ajouter cette expression:
// Calque qui a les images clés
target = comp('Main Composition').layer(1).text.sourceText;
// Pour cibler la composition dupliquée
precomp = comp('Main Composition').layer(thisComp.name);
target.valueAtTime(precomp.startTime)
dupliquer la composition dans le project panel pour que les compositions aient des noms uniques.
Copy link to clipboard
Copied
Merci pour ta réponse, elle règle un des problèmes. En revanche, si je dois dupliquer la preComp, alors cela entame l'intérêt de créer ce genre d'expression. D'après toi, il est impossible donc de créer une expression qui permettrait d'obtenir le résultat souhaité sans avoir à créer de multiples PreComp?
Merci encore pour ton aide!
Copy link to clipboard
Copied
Bah ouais, si dans ta précomp, tu as juste un calque de texte animé, ça ne sert à rien d'utiliser une précomp, tu as meilleurs temps de mettre ton calque de texte animé directement dans ta composition principale et d'y mettre une expression du genre:
// Calque qui a les images clés
target = thisComp.layer(1).text.sourceText;
target.valueAtTime(startTime)
Et ensuite, tu dupliques ton calque à volonté.
Sinon, si tu ne veux pas t'emmerder à aligner tes calques dans la timeline, tu peux nommer tes calques de texte (1, 2, 3, 4, 5....) et ensuite utiliser le nom des calques pour l'affecter à une image clé:
// Calque qui a les images clés
target = thisComp.layer(1).text.sourceText;
target.key(name).value
Copy link to clipboard
Copied
Top! Merciiiii'
Find more inspiration, events, and resources on the new Adobe Community
Explore Now