After Effects Expressions 205 - Linear & Ease

Sdílet
Vložit
  • čas přidán 21. 07. 2024
  • Get the Course Materials: gum.co/animoplex-expressions
    World of Expressions - Full Playlist: • World of Expressions -...
    0:00 - Intro
    0:21 - Interpolation Syntax
    1:01 - Using the Linear Expression
    3:36 - Using the Ease Expression
    4:40 - Ease In & Ease Out Interpolation
    5:23 - Lesson 205 Wrap Up
    View Course: www.animoplex.com/learn/expre...
    If you enjoy this expressions course, consider purchasing the paid content! It includes in-depth documentation, extra tutorial content, high definition video files, and project files used in the training. Your purchase will fund the release of this free course online for everyone to enjoy. Your support is greatly appreciated, and you’re helping to build more free courses like this in the future!
    For additional questions and help, reporting issues, or to share examples of how you used the World of Expressions tutorials, please email support@animoplex.com or post in the comments below.
  • Krátké a kreslené filmy

Komentáře • 83

  • @advocat1090
    @advocat1090 Před 5 lety +2

    Wow, this is awesome! I come from your tutorial regarding the wiggle method, and I must say that I really love the way you describe things. Subscribed right away.

    • @Animoplex
      @Animoplex  Před 5 lety

      I'm glad you approve of the teaching method :) Thanks for the subscribe, let me know if you have any other questions along the way!

  • @gregkrazanski
    @gregkrazanski Před 2 lety +2

    linear/ease is truly the best expression in AE imo. thanks for the great tutorials, I've been sharing them with some people I'm trying to teach AE to

    • @Animoplex
      @Animoplex  Před 2 lety

      Amazing! Yes, they are extremely versatile. Thanks for sharing it with friends, maybe they will get some value out of these lessons!

  • @cenadj
    @cenadj Před 2 lety +1

    this series is just outstanding mate!!

  • @pnksmigge5324
    @pnksmigge5324 Před rokem +2

    Hey Animoplex, I love this series on Expressions! One quick questions that comes up as I apply more of the new knowledge is whether we can control the interpolation further? I know that Javascript in general allows more control than just the default ease(In/Out), which would be super cool. Because in this case it's fine because you're mapping from a slider anyway, so you have access to the curve, but sometimes we can't do that, at least I think so. For instance I'm currently working on a project where I'm interpolation between value1 and value2, but both of these values aren't keyframes, because they have to work with different user inputs (text size changes). Sooo it looks a bit shit without control of the easing that's all. Thank you for the series again and no worries if you can't help or understand the question because I ramble :)

    • @Animoplex
      @Animoplex  Před 11 měsíci +2

      A bit late on the reply here, there's a few things to unpack:
      1) You could connect value1 and value2 to Expression Controls and then attach those to any value you want. As long as it's a numeric value, it'll work.
      2) Non-default easing via expressions is more complicated. A trick you can use: keyframe a Slider Control from 0 to 1 using any ease curve you wish (from Flow or other plugins) - Then, reference the slider from the expression-driven value and use it as a multiplier. This way, you get an easy-to-edit ease curve while controlling a dynamic value. Something like:
      transform.scale * effect("Slider Control")("Slider")

  • @Byte1ocked
    @Byte1ocked Před 7 lety +4

    Subbed, you definitely need more attention.

    • @Animoplex
      @Animoplex  Před 7 lety +1

      Thanks! Your compliments are appreciated. As long as it helps people with expressions, the course has done it's job.

  • @davidwkr3560
    @davidwkr3560 Před 3 lety +1

    I've been searching for this informations like crazy! thanks a lot

    • @Animoplex
      @Animoplex  Před 3 lety

      You're welcome a lot, glad you found it!

  • @sandyh278
    @sandyh278 Před 5 lety +1

    This is a very good and clear tutorial. thank you.

    • @Animoplex
      @Animoplex  Před 5 lety

      Thanks! Glad you found it clear, hope it was helpful.

  • @user-tg8tz8ro6b
    @user-tg8tz8ro6b Před rokem +1

    very neat and informative content .. Thanks!

  • @elreydebastos
    @elreydebastos Před rokem +1

    Thank you for such a great course

    • @Animoplex
      @Animoplex  Před rokem

      You're very welcome, thanks for stopping by!

  • @MylonasFilms
    @MylonasFilms Před 4 lety +1

    Love these Tuts

  • @bentherobotcop
    @bentherobotcop Před 7 lety +2

    Thanks! Really informative

  • @RobertYarde
    @RobertYarde Před 6 lety +1

    Great stuff!

    • @Animoplex
      @Animoplex  Před 6 lety

      Thanks! More coming in a few days, stay tuned.

  • @aleksandragraphics9584
    @aleksandragraphics9584 Před 5 lety +1

    Your tutorials is very useful for me, I really learn a lot thanks to you! But can you tell me please, in what case we can use the linear/ease/easeIn/easeOut expressions?

    • @Animoplex
      @Animoplex  Před 5 lety

      Glad to hear it, thanks for the feedback! You can use linear and ease expressions on values you want to be converted from one range to another. For example, a rotating dial (0 to 360 rotation) can be linked to the transparency (0 to 100 opacity) of a layer using a linear expression. This would create a dial-like control for adjusting opacity of a layer.

    • @aleksandragraphics9584
      @aleksandragraphics9584 Před 5 lety +1

      @@Animoplex thank you :)

  • @DaviAyres
    @DaviAyres Před 5 lety +2

    Hi Parker! I researched and haven't found a way to make the graph steeper whilst using the ease expression. I usually use the Graph Editor to resolve it when using keyframes. Have you figured this out? Best regards,

    • @Animoplex
      @Animoplex  Před 5 lety +1

      Unfortunately, it's not as simple as a single line of code, but you can get the Flow plugin which allows you to apply a custom ease curve via expression: aescripts.com/flow/

  • @geeleeggan
    @geeleeggan Před 4 lety +1

    Psycho thought: can you nest an ease expression within a linear expression (or a random or some other type for that matter)?

    • @Animoplex
      @Animoplex  Před 4 lety

      Technically yes, it's easy to do with a few variables. What are you trying to achieve with this?

  • @davidsaint6097
    @davidsaint6097 Před 6 lety +1

    Great tutorial! Can you think of a way to get more customised expression-based easing? Such as the expressions from Ian Haigh's Ease and Whizz plugin, but still being able to feed the values it transitions between?

    • @Animoplex
      @Animoplex  Před 6 lety +1

      Hey David, thanks for the question! It's a good one. Are you familiar with bezier curve values? You can get a lot of control over an ease curve with them. There's a great plugin called Flow that allows you to visually adjust a bezier curve and apply it to keyframes via an expression. Check it out if you're interested: aescripts.com/flow/

    • @davidsaint6097
      @davidsaint6097 Před 6 lety +1

      Animoplex Thanks so much for the advice! I had the first part down but the Flow portion looks like exactly what I've been looking for. Seems like a great way to visualise those curves before converting to an expression, and should give me greater control to keep my data-fed animations slick :D
      Thanks again for your help!

    • @Animoplex
      @Animoplex  Před 6 lety

      Nice! Glad it helped you out. It's a great plugin and the Apply to Expression functionality is easy to work with once you have a good grasp at what's going on. Post back if you get it to work!

    • @davidsaint6097
      @davidsaint6097 Před 6 lety +1

      Animoplex Thanks, will do :)

    • @davidsaint6097
      @davidsaint6097 Před 6 lety +1

      If you look at aescripts.com/flow/ and scroll down to the bottom, there's a section called "Download additional preset packs to spice up your daily motion!" which I found had ample examples, plus you can right click and save the speed graph gifs to save as a visual reference for each value!

  • @AlexAnder-mq1by
    @AlexAnder-mq1by Před 2 lety +1

    I want to bind ROTATION to POSITION using LINEAR
    example :
    x = transform.position[1]
    p1 = 900;
    p2 = 300;
    r1 = 0;
    r2 = 90;
    linear(x, p1, p2, r1, r2,)
    when the value of p1 goes through the path to p2, r1 should go through the path from 0 to 90 degrees and back to 0 again, but i can't add the third argument, how can i solve this problem?
    please, help

  • @MuhammadNurbasit
    @MuhammadNurbasit Před 4 lety +1

    how can we change the speed and value if we use ease expression instead of keyframe?

    • @Animoplex
      @Animoplex  Před 4 lety

      Speed and value are determined by the input, ease() and linear() only affect how it is mapped.

  • @TinyLittleMaggie
    @TinyLittleMaggie Před 5 lety +1

    Hey Parker! Thanks for the great tutorial!!
    At 2:21 you used "value" to reference the original value of the Y position - does this "original value" refer to the Y position value BEFORE applying the expression? (i.e. this value is a static number that doesn't change over time)
    It's a bit confusing for me because the expression you wrote is the equivalent to "value = linear(thisComp.layer("Control").effect("Rocket Launch")("Slider"), 0, 100, value, value - 1500)" where you are updating value using value itself. Intuitively this code can be interpreted as "value" is changing constantly, and acting as a feedback to itself - which doesn't seem to be what's really happening. Could you perhaps explain this in more detail?
    Thanks!!

    • @Animoplex
      @Animoplex  Před 5 lety +1

      Great question, sorry for the confusion. When referring to the current property, value is the keyframed value before the expression is applied. In the example expression you included, the value attribute is referring to the original property before the expression is evaluated. It is animating from it's original value minus 1500 across a 0 to 100 Slider animation. You are, as you said, updating the value using value itself. But the expression won't stack or apply the modification more than once since value *always* equals the property value before any expressions are included. Hope this clears things up!

    • @TinyLittleMaggie
      @TinyLittleMaggie Před 5 lety +1

      ​@@Animoplex Yay! Thanks a lot! So let me correct myself - if I've already added keyframes to the Y position before applying the expression, the "value" may actually change over time. When I apply the linear expression on top of that, then for each frame, After Effects will take the keyframed value of this very frame and map it onto the new range defined by the expression, then place the object in this new position, but this result won't be used for evaluating the position of the following frames, right? (I think I sort of understand how it works but it's hard to put to words!)

    • @Animoplex
      @Animoplex  Před 5 lety

      It sounds like you've got it right. Each frame is independent, an expression runs on every frame. The only value that would change frame to frame in your scenario would be the keyframed value animating over time. Hope this clarifies things!

    • @TinyLittleMaggie
      @TinyLittleMaggie Před 5 lety +1

      @@Animoplex Awesome! Thanks again!! :D

  • @dmytro_korolkov
    @dmytro_korolkov Před 5 lety +1

    Nice video, thanks! Is it possible to give some kind of loop for linear or use it twice or more? In example I need to rotate main object on 180 degrees twice during 2 time periods of clock layer(between 105 and 260 degrees and repeat linear between 470 and 615):
    MAIN OBJECT EXPRESSION:
    r=thisComp.layer("clock").content("hour").transform.rotation;
    ease(r,105,260,180,360)&&ease(r,470,615,360,540);

    • @Animoplex
      @Animoplex  Před 5 lety +1

      Try this on the rotation property:
      r = thisComp.layer("clock").content("hour").transform.rotation;
      if (r < 470) {
      ease(r, 105, 260, 180, 360);
      } else {
      ease(r, 470, 615, 360, 540);
      }

    • @dmytro_korolkov
      @dmytro_korolkov Před 4 lety +1

      ​@@Animoplex Thanks, it works! I have no experience to use such simple but interesting expression logic.

    • @Animoplex
      @Animoplex  Před 4 lety

      Happy to help!

  • @Sam-qe5wj
    @Sam-qe5wj Před 4 lety +3

    How can I ease all keyframes on a layer using an expression?

    • @Animoplex
      @Animoplex  Před 4 lety

      Easiest way to do this is with the free plugin from AE Scripts:
      aescripts.com/ease-and-wizz/

  • @rifqiartstudio
    @rifqiartstudio Před 6 lety +1

    So how about with speed% because I use speed% in twixtor not a position

    • @Animoplex
      @Animoplex  Před 6 lety

      The linear method simply translates an input range to an output range so any source should work. If you plug in your desired property as the first input argument and specify your output range, it should do what you want. Hope this helps, if you need clarification please reach out.

  • @mohamedtayel334
    @mohamedtayel334 Před 4 lety +1

    Hello 1st thanks for the great tut ... I have a beginner question :) how can I create the layer call "control" in this tut and what are the values of it ... thanks.

    • @Animoplex
      @Animoplex  Před 4 lety +1

      In this video, the "Control" layer was made using an empty shape layer. You can use a null layer instead if you'd like:
      Layer > New > Null Object
      And then you can add an expression control:
      Effects > Expression Controls

    • @mohamedtayel334
      @mohamedtayel334 Před 4 lety

      @@Animoplex thanks a lot my friend

  • @cauealvarenga1945
    @cauealvarenga1945 Před 5 lety +1

    i dont get this linear expression, wouldnt
    value + slider
    do the same thing?

    • @Animoplex
      @Animoplex  Před 5 lety +1

      In this simple example, probably. But any time you want to use a Slider (or other input) to be output to a different range of values, the linear method will be your best friend. It's more than simple addition, it's remapping the value to a new range. If you have additional questions, please reach out.

  • @mfaizfaufanid5947
    @mfaizfaufanid5947 Před 6 lety +1

    oh god, this channel only get 3,2k ?? are you kidding me? *lets subscribee guysss!

    • @Animoplex
      @Animoplex  Před 6 lety

      I’m just glad so many people are enjoying the content :) Thanks for the subscribe, updates coming soon!

  • @antimczenko
    @antimczenko Před 5 lety +1

    АХХЕРЕННА! Спасибо чувак)

    • @Animoplex
      @Animoplex  Před 5 lety

      Translated: “Thanks man!”
      You’re very welcome!

    • @MrPippec
      @MrPippec Před 4 lety

      А нам расскажешь, что он сказал? Я нихрена не понял

  • @NullStaticVoid
    @NullStaticVoid Před rokem

    its weird, when I type it in just like this it gets a syntax error. (for which AE provides no help in locating)
    But when I use the expression menu and pickwhip the layer for input it works fine. I even copied both expressions to a note and compared them. No difference I can see?

    • @Animoplex
      @Animoplex  Před 11 měsíci

      Fascinating! What expression are you trying to use that's giving you the error? Wonder if it's an issue with quotation marks not being formatted correctly?

  • @vcruelbrawl
    @vcruelbrawl Před 3 lety +1

    Bro how can i get something like toggle keyframe with a wiggle expression for position ??

    • @Animoplex
      @Animoplex  Před 3 lety

      Can you explain what you mean by 'toggle keyframe'? Not sure if you mean Toggle Hold Keyframe setting or a Checkbox Control.

    • @vcruelbrawl
      @vcruelbrawl Před 3 lety

      @@Animoplex toggle hold key keyframe, that makes the interpolation looks like a stopmotion movement

    • @Animoplex
      @Animoplex  Před 3 lety

      Try using posterizeTime() for that, here's a short video on how it works:
      czcams.com/video/YLapbNyYxLs/video.html

  • @amirzeinali563
    @amirzeinali563 Před 2 lety +1

    if i want in expression Scale my shape write :
    ease(time,2,3,[0,0],[100,100])
    ease(time,4,5,[100,100],[0,0])
    This command does not execute, why?

    • @Animoplex
      @Animoplex  Před 2 lety

      The ease method won't work with an array. You'd need to just use 0 and 100 and then create an array on the next line, like this:
      myEase = ease(time,2,3,0,100);
      [myEase, myEase]

    • @amirzeinali563
      @amirzeinali563 Před 2 lety

      @@Animoplex If I want to continue the same formula that you wrote, it should be Unscale to 4 and 5, is it possible?

    • @Animoplex
      @Animoplex  Před 2 lety

      You can use 4 and 5 as values if you need. Recommendation is to try it, only one way to find out!

  • @ErickTessaro
    @ErickTessaro Před 7 lety

    Like

  • @EverlastingEclipses
    @EverlastingEclipses Před 5 lety +1

    i came here for trim path offset easeIn so i can ease in the infinite loop of trim path

    • @Animoplex
      @Animoplex  Před 5 lety

      Awesome! Did it work as intended? Feel free to share your code, curious to see how you used it.

    • @EverlastingEclipses
      @EverlastingEclipses Před 5 lety

      @@Animoplex sadly.. :( i ended up doing the copy and paste the trimpath and path file as group multiple times (the only way to see the keyframe to manually set the difference between different paths and end the path also..well kinda) but expression as it can be easy to put big motion for me (with no knowledge of coding or expression code whatsoever) Its not easy to use the expression if i cant do any easing or stopping when i want to..
      its almost like a painting of food and i cant eat it..:( maybe you can teach us *trimpath and using expression* *to loop continuously and also ending it* *whenever we want it plus ease in and out of trimpath* as your next episode if you have time :D
      cuz i think trimpath is like one of many big dilemma that us beginning mographer face these days... :(
      Like if i wanted maybe deathstar's outline strokes being continuously trimpathed to look like it's moving or star wars or spaceship shooting laser continuously etc etc....

  • @wetwindisland6652
    @wetwindisland6652 Před 6 lety +1

    Just a note...the plural of "parentheses" is "parenthesis" and not "parenthesie".

    • @Animoplex
      @Animoplex  Před 6 lety

      Hey Matt, thanks for the feedback! Are you referring to the spoken pronunciation, or a typo in the closed captioning or PDF documentation?

    • @wetwindisland6652
      @wetwindisland6652 Před 6 lety +1

      The spoken pronunciation.

    • @Animoplex
      @Animoplex  Před 6 lety

      Looked into it, you're correct. In the first videos, parenthesis was pronounced "paren-the-see" with a silent "s" at the end. A few colleagues thought the same. But you learn something every day! Thanks for the clarification, Matt.

    • @Animoplex
      @Animoplex  Před 6 lety +1

      Just wanted to follow up with another thank you. The 400 series has corrected this pronunciation error. Appreciate the heads up!

    • @wetwindisland6652
      @wetwindisland6652 Před 6 lety +1

      Animoplex ahh you are thorough :) top marks