Skip to main content
Inspiring
March 20, 2023
Question

How can I copy animation from layer above when finished whilst gradually decreasing duration for eac

  • March 20, 2023
  • 2 replies
  • 2122 views

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

This topic has been closed for replies.

2 replies

Participating Frequently
March 21, 2023

To copy an animation from a layer above and gradually decrease the duration for each copy, you can use the following steps:

  1. Select the layer that contains the animation you want to copy.
  2. Press "Ctrl/Cmd + C" to copy the layer.
  3. Select the layer below where you want to paste the animation.
  4. Press "Ctrl/Cmd + V" to paste the layer.
  5. Open the "Effects" panel and find the animation effect you just pasted.
  6. Adjust the duration of the animation effect to the desired length.
  7. Copy the layer with the adjusted animation duration.
  8. Select the layer below where you want to paste the next animation, and paste the layer.
  9. Open the "Effects" panel and adjust the duration of the animation effect to be slightly shorter than the previous one.
  10. Repeat steps 7-9 for each subsequent layer until you have copied the animation to all the layers you want.

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

Font Changer Guru
Inspiring
March 21, 2023

Thanks but I don't think you read my description at all

Community Expert
March 20, 2023

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.

Inspiring
March 21, 2023

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