Copy link to clipboard
Copied
Hi all,
I need help from people smarter than me! I can't figure out how to do something that I'm sure there's an easy way to do. Here it is:
In Comp A, I've got a template for an entrance effect on a line of text (it's a text animator that fades text in from left to right). In Comp B, I've got several additional text layers that I want to apply the same effect to, and the obvious way is to parent the text animators for each layer in Comp B to the one in Comp A (the end state to be that I only need to change it in Comp A and have the change propagate throughout the entire project, so I don't have to go through and change every one if I decide to make a change).
That part's easy.
This is the part where I need help: the text layers in Comp B will come in at different times, but when I parent the text animators, they all follow the time from Comp A. (So, in other words, if I set the animator in Comp A to go from 0:00:00 to 0:00:15, all of the animators in Comp B will work at those times, regardless of the mark-in time of the text layers in Comp B...so if any of those layers come in after 0:00:15, the text won't animate because by the time the layers start, the parented animation is already done.)
Thus, what I'm looking for is a way to parent a property from one comp to another, but have the parented animation start at the mark-in time of the text layers in Comp B. (And it has to be a dynamic expression, because after Comp B will be Comp C, D, E...and so on, and they're all going to have different times.)
Has anyone figured out how to do this?
Copy link to clipboard
Copied
Could be as trivial as adding/ subtracting a few frames/ seconds or a fixed offset like the in point along the lines of myAnimator.valueAtTime(time-thisLayer.inPoint) with "myAnimator" apparently needing to be the reference to the parent comp...
Mylenium
Copy link to clipboard
Copied
The most efficient way to do this is to create an animation preset. You have two options for setting up the timing. The first is to set the animation preset up so that the animation starts at the first frame of the comp. When everything is the way you want it to be, select the layer, Select all of the properties that you have modified that you want modified and then save that selection as an animation preset.
Now you can just apply the animation preset to any text layer in the comp and the animation will start where the CTI (current time indicator) is parked. This is how almost all of the text animation included with AE work. Set the CTI where you want the animation to start, apply it, and that is when the magic happens.
The second option is almost the same. YOu create the animation but instead of setting keyframes, you write an expression that animates the transition based on the layer inPoint. Then all you have to do is drop the text layer in the comp, apply the preset, then adjust the in point of the layer. This can be faster than Sliding a bunch of layers in the timeline.
The following expression will animate a range selector from 0 to 100 in 1 second and it will always start at the layer in point.
t = time - thisLayer.inPoint;
ease(t, 0, 1, 0, 100)