7 Replies Latest reply on May 4, 2016 12:17 AM by Rick Gerard

    Controlling Time Stretch with an Adjustment Layer

    MrEkinT

      I am basically trying to change the time/duration of all the layers underneath with a Control Adjustment Layer which I can just drag in from the Project Panel. This is particularly useful as I'm delving into the selling of animated typefaces.

      I'll appreciate any advice.

       

      Tom

        • 1. Re: Controlling Time Stretch with an Adjustment Layer
          Rick Gerard Adobe Community Professional & MVP

          No Can Do.

           

          What you can do is pre-compose a bunch of layers and then use Time Stretch or Time Remapping to change the timing of the nested (pre) comp. If you have keyframes in the nested comp there is no need to turn on frame blending or pixel motion because the timing of the animation will be preserved. You can also add an expression to a time remapped layer. Unfortunately there is no way I know of to tie an expression to the speed of a layer.

          1 person found this helpful
          • 2. Re: Controlling Time Stretch with an Adjustment Layer
            MrEkinT Level 1

            Thanks a lot rick. Surely if you can write an expression for the time remap, then you can link it to an expression control on an adjustment layer, a slider control?

             

            Tom

            • 3. Re: Controlling Time Stretch with an Adjustment Layer
              Szalam Adobe Community Professional & MVP

              Yes. But I would put it on a null layer instead of an adjustment layer so that AE doesn't have to calculate anything extra.

              1 person found this helpful
              • 4. Re: Controlling Time Stretch with an Adjustment Layer
                Mylenium Most Valuable Participant

                Surely if you can write an expression for the time remap, then you can link it to an expression control on an adjustment layer, a slider control?

                 

                You can, but ultimately it's pointless. You cannot store anything of the sort in the project window or an animation preset and hope it would be reusable. Time-remapping always needs to be enabled first for any of that to work, so it's utterly moot how you manipulate it. You are just trying to be super-smart and are trying to do a simple thing in a very convoluted manner.

                 

                Mylenium

                1 person found this helpful
                • 5. Re: Controlling Time Stretch with an Adjustment Layer
                  Rick Gerard Adobe Community Professional & MVP

                  You can certainly use a slider attached to a null or any other layer to control time remapping, but you cannot time remap a layer that is not a movie unless you pre-compose the layer. Pre-composing an animated text layer turns the animated text layer into a movie that you can time remap.

                   

                  I think a better approach to your problem would be to write an expression that is based on the in and out point of a layer and set the transition in and transition out part of the animation with sliders. This expression for example. It is based on Layer Size, takes into account the scale and gives you a cool move. You time the speed of the fly in, the layer bounces, comes to rest, then falls out of the frame. Put any illustrator layer or PSD layer, or other footage in the timeline, position it and scale it at it's resting place, then set an in and out point and add this expression and the appropriate sliders (or use this Animation Preset) and the layer will start off screen to the left, move in to it's resting place, and then before you get to the out point it will fall out of the bottom of the frame. Sliders added by the animation preset include

                  Screen Shot 2016-05-03 at 8.04.30 AM.png

                  Here's the expression:

                  sif = effect("slideIn Frames")("Slider");

                  sof= effect("slideOut Frames")("Slider");

                  // find in and out point

                  inTime = sif * thisComp.frameDuration;

                    if (effect("Match SI SO")("Checkbox") == 0) {

                    outTime = sof * thisComp.frameDuration;

                    }

                    else if (effect("Match SI SO")("Checkbox") == 1) {

                    outTime = inTime;

                    }

                  // Fix  layer size when scaled

                  sf = scale - [100, 100];

                  xSize = width + (width * sf[0]/100);

                  ySize = height + (height * sf[1]/100);

                  realSize = [xSize, ySize];

                  // Set Positions

                  spx = 0 - realSize[0] + realSize[0]/2 ;

                  rstx = value [0];

                  rsty = value[1];

                  epy = thisComp.height + realSize[1] - realSize[1]/2;

                  // create movement

                  freq = effect("bounce Frequency")("Slider");

                          amplitude = effect("bounce Amplitude")("Slider");

                          decay = effect("bounce Decay")("Slider");

                      posCos = Math.abs(Math.cos(freq*time*2*Math.PI));

                      y = amplitude*posCos/Math.exp(decay*time);

                  moveIn = Math.min(linear(time,inPoint,inPoint + inTime,spx  ,rstx-y));

                  moveOut = Math.min(linear(time,outPoint - outTime,outPoint - thisComp.frameDuration,rsty ,epy));

                  [moveIn, moveOut]

                   

                  With CC 2015 you also have access to the size of the text box so this expression could be used to accurately slide in a text layer of any size. Scale is compensated for. If you need to reposition the layer after you add the preset you just go to where it is at rest and move it into position. I have hundreds of these in my user pre-sets and they greatly speed up any kind of animation.

                   

                  You can use the find in and out point part of the expression to control any animation you would create with keyframes from  color changes to distortion effects.

                   

                  So you have two choices for your product. Well actually 3, You can create your animations with expressions instead of keyframes and use sliders to control the timing, You can build your animations in nested comps and use expression sliders to control time remapping, or you can write an script that either uses expressions like the example I put up here or adds keyframes to adjust timing later.

                   

                  There is nothing you can add to an adjustment layer that will change the timing of the layers below if they are not nested comps or movies. It's a render order thing that can only be solved by pre-composing or nesting.

                  • 6. Re: Controlling Time Stretch with an Adjustment Layer
                    MrEkinT Level 1

                    Thanks so much Rick and everyone else who has replied. The way the system works is, someone would import the aep, and you'd have a folder. In that folder is letters, numbers and so forth. Each individual letter is in it's own resized composition, so when you pull each letter out of the Project window, you have a composition full of other compositions. So I'm assuming the time-remapping option would be best. I thought I'd mention I'm 15, I've being doing it for about 4 years, but nothing compared to everyone else here, so I really appreciate the help.

                     

                    Tom

                    • 7. Re: Controlling Time Stretch with an Adjustment Layer
                      Rick Gerard Adobe Community Professional & MVP

                      You have an interesting idea. I am not sure if I would consider buying such a package because it's so easy to to so many amazing things with text animators and converting Text to Shape layers. If it were me I would devote a little time to market research to figure out if folks would really be interested in grabbing a letter at a time to build up some words just to animate the letters individually. You can do that in AE already using text animators. I'm not trying to discourage you and I am sure I don't completely understand your product. I'm just trying to help you make a better product with a larger audience.