Это видео недоступно.
Сожалеем об этом.

linear(); | After Effects Expressions

Поделиться
HTML-код
  • Опубликовано: 14 авг 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.schoolofmo...
    Instagram: bit.ly/jbinst
    Dribbble: bit.ly/2tJz5Ay
    Twitter: bit.ly/2tOX7ui
    My amazing music package was made by Sonos Sanctus
    - www.sonosanctus...

Комментарии • 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!

  • @iequezada
    @iequezada 5 лет назад +4

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

  • @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!

  • @lidonevita
    @lidonevita 3 года назад +1

    Wow! amazing explanation!! thanks a lot!!

  • @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!

  • @zackbell8284
    @zackbell8284 2 года назад +1

    Thank you Jake!! Super clear, helpful tutorial.

  • @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 !!!

  • @MichaelTuckerLA
    @MichaelTuckerLA 5 лет назад +1

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

  • @omidpakbin
    @omidpakbin 6 лет назад

    I'm a simple man. I see a fantastic RUclips channel, I subscribe.

  • @cessers
    @cessers 6 лет назад +1

    BEAUTIFULLY conceived and explained.

  • @dansteindesign
    @dansteindesign 6 лет назад +1

    Clear & simple tutorial! Cheers Jake!

  • @korf.design
    @korf.design 2 месяца назад

    Amazing tutor. Thank You!

  • @DavidHendersonHean
    @DavidHendersonHean 6 лет назад +2

    Super useful! Thanks for another great tutorial :)

  • @MrReactive
    @MrReactive 17 дней назад

    God of expressions!

  • @pazzoponce
    @pazzoponce 2 года назад

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

  • @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!!

  • @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?

  • @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!

  • @ChamberWare
    @ChamberWare 3 месяца назад

    Excellent, thanks very much!

  • @RubiconUnlimited
    @RubiconUnlimited 6 лет назад +1

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

  • @mvnyk3nn888
    @mvnyk3nn888 Год назад

    AWESOME DUDE, 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!

  • @celalettingirgic1977
    @celalettingirgic1977 Год назад

    Thank you Jake!

  • @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.

  • @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.

  • @coolthonix
    @coolthonix 2 года назад

    saved me thank u SO MUCH

  • @jamalal-sallami6569
    @jamalal-sallami6569 4 года назад +1

    Thanks a lot, looking forward for new tutorials :)

  • @particleformen8252
    @particleformen8252 2 года назад

    so amazing man! thanks!

  • @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

  • @johaneklund7711
    @johaneklund7711 3 года назад

    Love your tutorials. Best online!

  • @erichan5202
    @erichan5202 2 года назад

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

  • @Joeblax88
    @Joeblax88 Год назад

    thanks Jake

  • @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?

  • @eugenepetersondesign7022
    @eugenepetersondesign7022 4 года назад

    Awesome tutorial -- thanks Jake!!

  • @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.

  • @eduardoasta
    @eduardoasta 4 года назад +1

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

  • @alideep9656
    @alideep9656 4 месяца назад

    Thank you ❤️‍🔥❤️‍🔥

  • @The2cdesign
    @The2cdesign 6 лет назад

    WOW thank you so much! this video is pure GOLD

  • @yupndesign
    @yupndesign 6 лет назад

    thanks for sharing your knowledge Jake

  • @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?

  • @josephb1884
    @josephb1884 2 года назад

    I understand now!

  • @dorcaMusseb
    @dorcaMusseb 6 лет назад

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

  • @JimMayle
    @JimMayle 6 лет назад

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

  • @GwenoleJaffredou
    @GwenoleJaffredou 5 лет назад

    Thanks Jake !!! Helpful.

  • @semillerimages
    @semillerimages 6 лет назад

    Nicely done and explained!

  • @glassroads989
    @glassroads989 3 года назад

    You are awesome.

  • @TheXeviour
    @TheXeviour 4 года назад

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

  • @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.

  • @trovr
    @trovr 6 лет назад

    AWESOME explanation. You ruled!

  • @sameernautiyal
    @sameernautiyal 6 лет назад

    😍Jake love this tutorial, you save my life.

  • @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

  • @Sam-qe5wj
    @Sam-qe5wj 4 года назад +1

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

  • @jeremynixon8434
    @jeremynixon8434 5 лет назад

    This. Is. Great.

  • @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 =)=)

  • @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.

  • @mrerfan2
    @mrerfan2 3 года назад

    How did you create that curvy line? 🤔🤔

  • @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] ---

  • @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.

  • @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

  • @paulopaiva8229
    @paulopaiva8229 3 года назад

    genial

  • @foodshipnine
    @foodshipnine 4 года назад +4

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

  • @mehdiful9929
    @mehdiful9929 6 лет назад

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

    • @andreisopon4615
      @andreisopon4615 6 лет назад +1

      ruclips.net/video/2h9ZfUHVG6Q/видео.htmlm40s

  • @ryanspratt
    @ryanspratt 4 года назад

    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  4 года назад

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

    • @JakeInMotion
      @JakeInMotion  4 года назад

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

    • @ryanspratt
      @ryanspratt 4 года назад

      @@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 4 года назад

      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.

  • @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?

  • @WalkarSajid
    @WalkarSajid 5 лет назад

    Kingman Jake!

  • @izvarzone
    @izvarzone 4 года назад

    yeah, like school math