Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Graph Editor and loopOut() expression - How to ease into the animation?

Explorer ,
Jul 02, 2021 Jul 02, 2021

Hi everyone,

I'm trying to ease into animation and then have it looped without having it consider the initial ease in which would stop the animation. I have basically animated a wheel and would like it to start fast and lose velocity and loop with that reduced speed. Suggestions?

TOPICS
How to
1.4K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jul 02, 2021 Jul 02, 2021

Split the layer and create two separate sets of animations - one with the ease out, the other with a continuous linear motion to which the expression can be applied. Rule no 1: Keep it simple!

 

Mylenium

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 02, 2021 Jul 02, 2021

Looks like it could work but there is one problem. The animation is basically a "Ferris wheel" type of infographic. There are several icons that basically follow a circular motion and in order to achieve that, I used the expression

-thisComp.layer("ARROWS").transform.rotation

and parented them to another layer that works as a "controller" by simply animating its rotation. If I split the "controller" layer, the Icons can be parented only to one or the other version of the "controller" layer unless I'm not aware of a workaround which is very possible, as I'm not a Pro user. Thanks again for replying!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jul 02, 2021 Jul 02, 2021

You have several options:

Option 1:  Write a couple of dozen lines of code in an expression that will do the whole thing for you

Time required for Option 1 if you have about the same level of expertise in writing expressions as I do: About 4 or 5 hours

 

Option 2: Make sure the anchor points of all layers are in the right spot, parent the layers to a null, add a keyframe to Rotation at 1 second at 0º, move down the timeline about 10 frames and add another keyframe at 360º, then all LoopOut() as an expression, Pre-compose all the layers and enable Time Remapping (Alt/Option + Ctrl/Cmnd + t), open the Graph Editor for time remapping and select edit speed graph and start setting a few keyframes and adjusting the speed. 

Time required for Option 2 with a little experience with the graph editor: About 10 minutes.

 

Option 3: Toss out your transform Rotation expression and use parenting. Select your Arrows layer and move down the timeline to where you want the Ferris wheel to maintain a constant speed. Name the top copy End and the Bottom copy of the Arrows layer Start. Set rotation keyframes on both layers under the CTI at 0º. Move down the timeline and set another rotation keyframe at 360º for the End layer, add the simple expression loopOut() to the Rotation property, open the graph editor, set it to edit speed, and then check the rotation speed by hovering over the speed graph. Make note of the speed.

 

Now switch to the Start copy of the Arrows layer and move to the first frame and set a new keyframe at rotating the layer in the opposite direction several revolutions. Select both keyframes and set easy ease for both. Open the graph editor and adjust the number of revolutions and adjust the bezier handles so you get very close to the rotation speed of the End copy of the layer. You should be able to get it within a few degrees with little trouble. 

 

Now Parent the End layer to the Start layer, then parent all of the other layers to the End layer and you're done. 

Time for Option 3: About 10 minutes. 

 

If you want to make further speed adjustments just pre-compose all layers and enable time remapping and edit the speed graph. The nice thing about using Time Remapping on animated layers is that there is no frame blending. All of the animations are interpolated to the correct value for that new time so nothing is lost and you have complete control over the timing. Since this is the most complicated I'll show you multiple screenshots:

end.pngexpand image

start.pngexpand image

Wheel.gifexpand image

Personally, I would use option 2 most of the time. It is the simplest and guarantees smooth transitions between the rotation speed. These are the steps: Set additional keyframes and delete the last one.

TR 1.pngexpand image

Edit the Speed Graph.

timeRemap.gifexpand image

It took me longer to write the post and make the screenshots than it did to create the animations.

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jul 02, 2021 Jul 02, 2021
LATEST

What Rick said - you are overcomplicating this. In addition to the proposed alternative workflows, simply pre-composing your animations with a continuous rotation and using time-remapping in the parent comp might be one more option to control the timing.

 

Mylenium

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines