linear(); | After Effects Expressions

Поділитися
Вставка
  • Опубліковано 30 лип 2024
  • Linear is an invaluable expression to know and understand in After Effects. It allows you to interpret any values in an unlimited number of ways, which is key to making custom controls. In this tutorial I'll walk you through a couple of demos to clearly explain the structure and functionality of this powerful expression!
    Feel free to ask questions or leave feedback in the comments! And if you have any ideas for other tutorials, I'm all ears!
    My Skillshare Classes: bit.ly/jbskill
    Explainer Camp: www.schoolofmotion.com/explai...
    Instagram: bit.ly/jbinst
    Dribbble: bit.ly/2tJz5Ay
    Twitter: bit.ly/2tOX7ui
    My amazing music package was made by Sonos Sanctus
    - www.sonosanctus.com/

КОМЕНТАРІ • 84

  • @Poly_0000
    @Poly_0000 5 років тому +7

    No click-bait, No messing around, No nothing!
    It's truly amazing you share this for free. Thank you so much.
    You are a great teacher.

  • @antigopp
    @antigopp 5 років тому +15

    I'm just starting to learn After Effects and had NO IDEA it could involve coding. It got me excited with the possibilities.
    Thanks for sharing your knowledge for free!

  • @WeAreHelloStudios
    @WeAreHelloStudios 2 роки тому +1

    Jake, you just totally helped me so much! I have spent all morning trying to look for a solution while making half keyframed / half variable sliders to be baked into essential graphics templates for a video editor and your breakdown navigated me to the perfect solution. You're a rock star! Thank you!

  • @iequezada
    @iequezada 5 років тому +4

    I love you, you don't know how long this took me to understand. Thank you, you beautiful AE nerd.

  • @MichaelTuckerLA
    @MichaelTuckerLA 5 років тому +1

    This was so extremely helpful! This is what I've been looking for for years! Thank you!

  • @RubiconUnlimited
    @RubiconUnlimited 6 років тому +1

    So great! Thanks for being super clear with your explanations!

  • @nicolebry1120
    @nicolebry1120 2 роки тому

    Thank you so much for this wonderful tutorial, Jake! I've watched hours of tutorials tonight trying to find the right AE expression that will accomplish what I've been trying to do (I'm attempting to make a reactive faux drop shadow), and yours is definitely the best method I've yet found. Will definitely be using it for this project I'm doing!!

  • @neyvioney7757
    @neyvioney7757 3 роки тому

    It's very difficult to find expression tutorials which is insightful and easy to understand, but you did it ! Thank you so much Jake, you did AMAZING job, I learnt a lot!

  • @duncanlutz
    @duncanlutz 4 роки тому

    Really awesome information, been working in after effects for a couple years now and just getting into expressions seriously. Your channel has been a big help!

  • @dansteindesign
    @dansteindesign 6 років тому +1

    Clear & simple tutorial! Cheers Jake!

  • @lonananana3818
    @lonananana3818 5 років тому +1

    I just discover this channel and immediately subscribe it!!👍🏻👍🏻 They are all so useful!!!You explained them in so details . 🤩These save my life and fasten the workflow in after effect!!!Please keep on and do these kinds of tutorial !!!

  • @cessers
    @cessers 6 років тому +1

    BEAUTIFULLY conceived and explained.

  • @kalpitkatpara4562
    @kalpitkatpara4562 5 років тому

    Love your all video especially those related to expressions. You are the best at explaining complicated things in a simple fashion! Please, make more videos should it be possible.

  • @zackbell8284
    @zackbell8284 2 роки тому +1

    Thank you Jake!! Super clear, helpful tutorial.

  • @DavidHendersonHean
    @DavidHendersonHean 6 років тому +2

    Super useful! Thanks for another great tutorial :)

  • @yupndesign
    @yupndesign 6 років тому

    thanks for sharing your knowledge Jake

  • @The2cdesign
    @The2cdesign 6 років тому

    WOW thank you so much! this video is pure GOLD

  • @lidonevita
    @lidonevita 3 роки тому +1

    Wow! amazing explanation!! thanks a lot!!

  • @dorcaMusseb
    @dorcaMusseb 6 років тому

    And now it all makes sense. Thank you!!!

  • @semillerimages
    @semillerimages 6 років тому

    Nicely done and explained!

  • @jamalal-sallami6569
    @jamalal-sallami6569 4 роки тому +1

    Thanks a lot, looking forward for new tutorials :)

  • @pazzoponce
    @pazzoponce 2 роки тому

    I'm super thankful for your information and videos in here, have a great day Jake ✌️✌️

  • @sameernautiyal
    @sameernautiyal 6 років тому

    😍Jake love this tutorial, you save my life.

  • @johaneklund7711
    @johaneklund7711 3 роки тому

    Love your tutorials. Best online!

  • @eugenepetersondesign7022
    @eugenepetersondesign7022 4 роки тому

    Awesome tutorial -- thanks Jake!!

  • @GwenoleJaffredou
    @GwenoleJaffredou 5 років тому

    Thanks Jake !!! Helpful.

  • @korf.design
    @korf.design 2 місяці тому

    Amazing tutor. Thank You!

  • @omidpakbin
    @omidpakbin 6 років тому

    I'm a simple man. I see a fantastic UA-cam channel, I subscribe.

  • @particleformen8252
    @particleformen8252 2 роки тому

    so amazing man! thanks!

  • @ChamberWare
    @ChamberWare 3 місяці тому

    Excellent, thanks very much!

  • @coolthonix
    @coolthonix 2 роки тому

    saved me thank u SO MUCH

  • @mvnyk3nn888
    @mvnyk3nn888 Рік тому

    AWESOME DUDE, THANK YOU !

  • @celalettingirgic1977
    @celalettingirgic1977 Рік тому

    Thank you Jake!

  • @nitsua948
    @nitsua948 2 роки тому +1

    Thanks for the great explanation, Jake. I come back to this video pretty regularly whenever the proper syntax escapes me :) Can you explain how one or more of the parameters within the linear() expression can be a linear() expression itself?

  • @alideep9656
    @alideep9656 3 місяці тому

    Thank you ❤️‍🔥❤️‍🔥

  • @jeric_synergy8581
    @jeric_synergy8581 3 роки тому

    Really excellent explanation, and you have a very pleasing voice. 10/10. Subscribed.
    Genius anticipation of user question, re stroke width. Noice!

  • @JimMayle
    @JimMayle 6 років тому

    Thanks Jake. Love your skillshare vids also. Well done!

  • @glassroads989
    @glassroads989 3 роки тому

    You are awesome.

  • @erichan5202
    @erichan5202 2 роки тому

    You are my life savior!! THANKS! By the way can you do more expression tutorials?

  • @trovr
    @trovr 6 років тому

    AWESOME explanation. You ruled!

  • @jeremynixon8434
    @jeremynixon8434 5 років тому

    This. Is. Great.

  • @eduardoasta
    @eduardoasta 4 роки тому +1

    It's an amazing tutorial. About the curves, is it possible to do this bezier curves without a plugin?

  • @n3rdyz00m
    @n3rdyz00m 2 роки тому +1

    Hi! I'm loving (and binging) your content. You're a great teacher. One question about this box tutorial. When the x position is 0 and you start rotating, the box will not stay within the composition because the diagonal width is greater than the horizontal width. Also with shapes that are not symmetrical, how would you keep them from falling of the composition?

  • @TheXeviour
    @TheXeviour 4 роки тому

    Thank you) That’s very easy with you to understand all this hard scripting stuff;)

  • @MrReactive
    @MrReactive 3 дні тому

    God of expressions!

  • @Joeblax88
    @Joeblax88 Рік тому

    thanks Jake

  • @josephb1884
    @josephb1884 2 роки тому

    I understand now!

  • @worldclub9590
    @worldclub9590 5 років тому +1

    If I watched this video in beginning I wouldn't watch 10 videos on youtube and read the documentation in vain, THANK YOU SO MUCH

  • @dieblaueseite
    @dieblaueseite Рік тому

    Can I apply the steps in the 'Rotation' chapter also on Scale? How do I write two dimensions in the expression?

  • @Sam-qe5wj
    @Sam-qe5wj 4 роки тому +1

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

  • @adegbengaojoyido550
    @adegbengaojoyido550 2 роки тому +1

    Well done tutor please sir, I want to learn expression and its language to understand deeply in other to use it for work sir.
    I went into your skill shear butIi don`t really understand how it will work sir please kindly help me out on this.

  • @adirakessler235
    @adirakessler235 4 роки тому +1

    I have four objects (three are duplicates of the first). I want the objects to ENTER consecutively but EXIT simultaneously (without using keyframes.) Individually, these tasks are very easy. I can pick whip them to a slider control and add a delay time. But then they all exit consecutively, and I don't want that.
    I figured I could create two sliders; one for entering animation and the second for the exit animation. I am trying to combine the two sliders to one expression.
    BUT THE SECOND ONE CANCELS OUT THE FIRST. I don’t know how to solve this problem.
    Another issue in terms of combining two expressions into one expression is I also want to combine loopIn AND loopOut expressions because I want the animation to start before the first keyframe and continue after the last keyframe. Again, the second expression cancels out the first.

  • @AlexAnder-mq1by
    @AlexAnder-mq1by 2 роки тому +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

  • @exxoncardozo
    @exxoncardozo 5 років тому

    Hi Jake, this is a great tutorial, pretty much what I was looking for. I have a doubt with the line connecting the two dots. How do you make the end of the shape layer follow one point and the other end follow the other point?

    • @JakeInMotion
      @JakeInMotion  5 років тому

      Thank you! See 7:40 for the source script I used to have the line path follow two layers.

  • @paulopaiva8229
    @paulopaiva8229 3 роки тому

    genial

  • @mrerfan2
    @mrerfan2 3 роки тому

    How did you create that curvy line? 🤔🤔

  • @mehdiful9929
    @mehdiful9929 6 років тому

    cool stuff, man. a question though, how is that line connected to both dots pls ?

    • @andreisopon4615
      @andreisopon4615 6 років тому +1

      ua-cam.com/video/2h9ZfUHVG6Q/v-deo.htmlm40s

  • @unison_moody
    @unison_moody 6 років тому

    Hey man, I just subsribed. And I'm here for a interesting tutorial suggestion and is kinda workflow related:
    How to create projects which are very flexible? There are a lot of examples: Like you created an animation but now it turns out that you need to add a new part right in the middle of it with the same objects you already use. It seems like this is such a complex task to do because often you have to pick the right keyframes without messing things up, adjust comp-lengths (especially pre-comps!) and open pre-comps to adjust keyframes which are located there. But it's not just that! Like making it flexible to be able to swap graphics at will or change certain graphic positions.
    What are your workflows doing that?

  • @foodshipnine
    @foodshipnine 4 роки тому +4

    My god, I have been doing this the hard way for years.

  • @tavomb
    @tavomb 2 роки тому

    1:26 How did you hide the X Position?
    Thank you for sharing your knowledge in such high quality.

    • @tavomb
      @tavomb 2 роки тому

      Nevermind lmao, 2 seconds later you explain it. Whoops.

  • @WalkarSajid
    @WalkarSajid 5 років тому

    Kingman Jake!

  • @ThyeKokorow
    @ThyeKokorow 2 роки тому

    i am sorry i have a problem. I would iike a series of animated dots passing through an object like a null or a regulation lvel going from let say 75 to 100 opacity, i tried an if/else involving a linear so once out they got to 100 opacity, i got some strange problems errors. Ok. I try with keyframe, though for the future i would like to know how to it, i mean that can be very nice to get some other effect but i can't really figure out especcially why when defyining variables that are indeed possible i get errorsas ""varx" is not in global" after a pickwhip or with all parenthesis in place i have to add them, but this is another story. So, If objects passing by a regulation level have to go from a percentage of opacity to another, how can i do it?

    • @ThyeKokorow
      @ThyeKokorow 2 роки тому

      thank you in advance, you're tutorial are super, nice and smooth eheh =) =) =)

    • @ThyeKokorow
      @ThyeKokorow 2 роки тому

      in the end i did it with a regulation level and a linear whipe, basically, i would had loved to be more precise, in that sense i mean... thank in advance anyhow though =)=)

  • @ryanspratt
    @ryanspratt 3 роки тому

    Hey Jake,
    Thanks for the amazing tutorial! I worked to apply this to my project where I am scaling a shape layer in the y direction to create a reusable chart element. Using some additional guidance in the comments below regarding using an array for multi value parameters my initial solution didn't cause any syntax errors but the linear() command had zero effect. While I was able to arrive at a solution that ultimately worked I am still not entirely sure why the first attempt did not based on the way you wrote things in the samples above. Likely an over arching concept of expressions or array's I am still learning. Could you help me understand the difference?
    DIDN'T WORK -----
    var x = value[0]
    var y = effect("Column")("Slider");
    linear(y,0,100,0,570);
    [x,y]
    WORKED -----
    var x = value[0]
    var y = effect("Column")("Slider");
    [x,linear(y,0,100,0,570)]

    • @JakeInMotion
      @JakeInMotion  3 роки тому

      I believe it's because you didn't store the linear expression in a variable named "y".

    • @JakeInMotion
      @JakeInMotion  3 роки тому

      Rather, you didn't create a variable for that line, and then call it back in the final array.

    • @ryanspratt
      @ryanspratt 3 роки тому

      @@JakeInMotion I see so in your single number example expressions the Linear() command is part of the variable assignment. Okay, thank you so much for the quick response!

    • @ryanspratt
      @ryanspratt 3 роки тому

      You're right! This slight variation on my original attempt works. I miss understood how y was used/updated in the Linear() command.
      var x = value[0]
      var y = effect("Column")("Slider");
      z = linear(y,0,100,0,570);
      [x,z]
      Thank you for taking the time to help me sort that out in my head.

  • @ThyeKokorow
    @ThyeKokorow 2 роки тому

    this is so nice... so nice... really, all yur work, i swear... i say more blasfemities than breathing when i try because, for exemple why if i put a variable of a layer property as a position it came out to me an error as "matrix, number or property needed" when all what i wrote is var1 (without numbers and/or with numbers or letters but with spaces, so var 1, says it is an illegal use of var word), space, so var1 =, and then pickwhippe a property as a position?

    • @ThyeKokorow
      @ThyeKokorow 2 роки тому

      there is all semicolumn so var1 = (pickwhipped property as position) ; and always, any property i chose get "a layer type object found where is needed a number, a matrix or a property"... i am... disappointed.. ahah

    • @ThyeKokorow
      @ThyeKokorow 2 роки тому

      now i have redone var1 = (first layer position) ; it reads it. I add a second variable so making another line var2 = (pickwhipping second layer opacity);. "the result is 2 where meant to be 1"... i mean... for real, i can't get away with a solution and this isn't the first time it happens, moreover

  • @caetanobr
    @caetanobr 5 років тому

    Can you show how it works with scale? Since scale has 2 values x and y .....so I shoulbe be at least 10 values in linear expressions...

    • @JakeInMotion
      @JakeInMotion  5 років тому +1

      You'll want to make a linear expression for each axis, put those into variables, then use the variables in an array --- [x,y] ---

  • @ThyeKokorow
    @ThyeKokorow 2 роки тому

    sorry for the previous messages and also this one. I revised the expression in a project. two squares, one just stroke, making the external border. They go to a corner to anothe. Should be nice and easy eheh... though given this expression, also if maybe the wiggle isn't the best way to be written (i was trying with random values for it),
    var1 = thisLayer
    var2 = transform.position;
    var3 = transform.opacity;
    var4 = thisComp.layer("Livello forma 1").transform.position;
    linear(var1, var2=var4, var2=var4, var3 [
    wiggle (10,10)], var3 [
    wiggle (100,100)]);
    i get "the property name 1914,00413270761,1066,42297484857 is not a property or was removed" message in the fifth line... this doesn't make sense at all nor is nice nor... else... i reinstalled the program. and nothing... have this any solution? maybe... settings or so... i really couldn't come up with nothing after changing five times or so the expression and getting random "needed )" messages and these stuffs

    • @ThyeKokorow
      @ThyeKokorow 2 роки тому

      i can change it like var2 = var4-var4/2, var2= var4/2 if starts somewhere else like a little after the animation starts and in the center, for exemple, because like this would be changing from the begging to the end with the animation given the two values, if i thought it correctly... though this doesn't make any sense as error... if would be else, like not doing a thing, ok i would understand i made a mistake... this doesn't make any sense

  • @dmellis
    @dmellis 3 роки тому

    This will not work in a parameter that has two dimensions and for some reason After Effects won't let you split x and y positions with shape layer groups.

  • @izvarzone
    @izvarzone 4 роки тому

    yeah, like school math