Copy link to clipboard
Copied
Hi
I am creating a transition animation between images using scale and image wipe but I want the duration each successive image is on screen to be shorter than the last.
I have quite a few images so I don't want to do them manually, especially as i am still playing with the speeds and aren't sure how long I want the whole thing to last yet, so it would be useful to just adjust the first one and have everything else fall in line.
I found a tutorial for time delayed animations but this links the property to the first layer and then does .valueAtTime(time-3/4/5 etc). I figure i can use index to avoid having to manually link and input everything (especially as i may want to change the order of the layers) for the time delay, but I don't know how I would change the duration and have the next one start immediately after.
Is there an easy way to do this?
Thanks
Copy link to clipboard
Copied
You can multiply or divide values in an expression by the index. If the first layer has keyframes, you can look at the time value of the first and second keyframes. If you use the in-point of a layer as a starting time for animation, you could still multiply the duration by the index. For example:
t = time - inPoint;
f = index * .2;
easeIn(t, 0, 2 - f, 0, 100)
This expression will give you a duration of 1.8 for the first transition between 0 and 100. The duration for the second layer would be 1.6 seconds. The third layer would have a duration of 1.4, and so on. It just subtracts 20% of the starting transition time for each layer.
We could help you out if we saw a screenshot showing the modified properties of the layers you want to automate.
All of the layer in-points are at the start of the comp, and each successive layer takes less time to transition from 0 to 100% opacity.
Copy link to clipboard
Copied
Ah yeah, that sounds perfect! What I want to animate is probably quite basic, for the time being I think I just want to do scale and image wipe completion. Here's a screenshot of the top layer:
Image wipe from 0-100 and scale from 50-64. Will be the same on every layer.
Thanks
Copy link to clipboard
Copied
Do you have any suggestions how I can do it for delaying the start of each one as well? I've tried the following just to try and get something going (linked to the top layer) but nothing happens, and i'm not good enough at Maths to figure out a formula that will allow me to do this.
thisComp.layer("2015 Paris & Italy - Dark - Eiffel Tower").effect("CC Image Wipe")("Completion").valueAtTime(value + index)
Copy link to clipboard
Copied
To copy an animation from a layer above and gradually decrease the duration for each copy, you can use the following steps:
By adjusting the duration of each animation effect to be slightly shorter than the previous one, you can create a gradual decrease in the length of the animation over time. This can be useful for creating a looping animation or for animating a series of elements with a similar motion.
You can also have a ook at: https://www.youtube.com/watch?v=rkOJrvTeOc4
Copy link to clipboard
Copied
Thanks but I don't think you read my description at all