Skip to main content
Multipasser
Inspiring
May 9, 2023
Question

Control 'start' of an animation by sliders (for mogrt)

  • May 9, 2023
  • 2 replies
  • 1782 views

Lately I'm getting so many client request for controlling the timing of an animation in a Mogrt.

 

Rick Gerard did a nice setup with sliders to control the timing of text (animator) fading in.

He also says it is possible with position/scale/rotation? but I cant figure it out!

https://community.adobe.com/t5/after-effects-discussions/time-control-expression-of-layer-with-slider-for-use-with-a-mogrt/m-p/11076054#M109981

 

I added his project but remove the text animator and added a Position/Scale keyframes for all 4 layers.

Is it possible to adjust when the Pos/Scale animation 'kicks' in by controlling the slider ? 

 

It would be so nice if you could move a precomp in the timeline by using sliders.

This would open so many options for clients to control when an FX or animation starts in complex templates. 

 

Anyone can help me out? thanks.

This topic has been closed for replies.

2 replies

Community Expert
May 10, 2023

Another option would be to Pre-compose your animated layers, moving all attributes and trimming the layers to comp length. Because you have a slider for Fade Time, I would apply this expression to Opacity after you have pre-composed the layers:

t = time - inPoint;
et = comp("Comp 1").layer("Controller").effect("Fade Time")("Slider")* thisComp.frameDuration;
linear(t, 0, et, 0, 100);

Comp 1 is your master comp.

 

Then go to the first Pre-comp, add Time Remapping (Alt/Option + Ctrl/Cmnd + t), and apply this expression to Time Remapping:

t = time - inPoint;
st = thisComp.layer("Controller").effect("Line 1 Start Frame")("Slider")*thisComp.frameDuration;
t - st

I changed the Name of the controller to Line 1 Start Frame because multiplying by the frame duration gives you a counter that measures frames. 

 

You can also use valueAtTime(), but if you have a bunch of properties that you want to move down the timeline, Time Remapping is going to be a lot more efficient. 

 

The only hangup with any of these solutions is that any ending transition, like a fade out, even if the area is protected, could get fouled up. I have not tried it yet because most of my MOTRTS use the layer's inPoint and outPoint and a linear or ease interpolation for movement instead of keyframes so that timing does not change when the graphic is stretched in Premiere Pro.

 

I uploaded the modified file for you to look at.

 

 

Multipasser
Inspiring
May 14, 2023

Thanks Gerard.

 

Your project works fine.
Need to figure this one out in my own projects!

 

Mylenium
Legend
May 10, 2023

You will have to set up things with valueAtTime(). The basic offset method used in the other thread won't work due to the specifics involved.

 

Mylenium

Multipasser
Inspiring
May 10, 2023

thanks 🙂 but i'm a expression noob so I have no idea how to set it up.

 

Strange I can't find any tutorial that does this.

Multipasser
Inspiring
May 10, 2023

https://youtu.be/sjH0CCzItj4 so I might just 'copy' the motion of 4 animated layers, clone them and add ValueAtTime with a slider. Could work. Maybe not the most sexy setup. 🙂