Why Animation Curves In Unity Are So Useful

Поділитися
Вставка
  • Опубліковано 28 чер 2024
  • The first 1,000 people to use this link will get a 1 month free trial of Skillshare: skl.sh/gamedevguide10211 - Animation Curves are more useful than you think! Let's take a look at some non-traditional ways we can take advantage of evaluating values in Animation Curves.
    Making Progress Bars: • How to create Progress...
    Custom Playables In Unity: • Using Custom Playables...
    Strategy Game Camera Controller: • Building a Camera Cont...
    --------------------------------------------------------------------------------
    Want to support the channel?
    ▶️ Help fund new episodes by joining the Patreon - / gamedevguide
    Use these links to grab some cool assets from the asset store:
    Get the Must Have Assets! - assetstore.unity.com/top-asse...
    Free Unity Assets! - assetstore.unity.com/top-asse...
    New on the Asset Store! - assetstore.unity.com/top-asse...
    Top Paid Asset Store Packages - assetstore.unity.com/top-asse...
    Asset Store Partners - assetstore.unity.com/lists/as...
    --------------------------------------------------------------------------------
    Socials and Other Stuff:
    • Subscribe - ua-cam.com/users/gamedevguide?...
    • Join the Discord - / discord
    • Twitter - / gamedevguideyt
    • Facebook - / gamedevguideyt
    • Instagram - / gamedevguideyt

КОМЕНТАРІ • 84

  • @GameDevGuide
    @GameDevGuide  2 роки тому +9

    The first 1,000 people to use this link will get a 1 month free trial of Skillshare: skl.sh/gamedevguide10211

  • @ligofleyens9131
    @ligofleyens9131 2 роки тому +142

    The AnimationCurve doesn't necessarily need a "time" value to be evaluated, you can use it to tune the glow brightness of an orb, and your epic music volume as the player gets nearer or further from the target, being "distance" what is actually evaluated. You can even use the negative values of that curve!

    • @JohnVanderbeck
      @JohnVanderbeck 2 роки тому +4

      Semantics :) Traditionally the math behind a curve uses f(t). t can be anything. I use these curves for all sorts of things. They are great anytime you want a float value based on some other factor :)

    • @ligofleyens9131
      @ligofleyens9131 2 роки тому +2

      @@JohnVanderbeck Naturally it is a function behind the scenes after all, but this is not that easy to get for everybody since the Unity method states "Evaluate the curve at time." and the syntax is "public float Evaluate(float time)".

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

      I don't see the point of relying on animation curves for music when there's already a bunch of audio-related curves to tweak that on the audio source itself tho

    • @ligofleyens9131
      @ligofleyens9131 2 роки тому +2

      @@L0upyb0y Of course there is, but it's all about maths and control. You can use a [0 to 1] range to multiply/sum the already configured sound curve. Sometimes you don't want things like background music to dim its volume depending on distance, thus the built-in curve won't do the job, or at least not good enough.

    • @ligofleyens9131
      @ligofleyens9131 2 роки тому +2

      @@L0upyb0y Furthermore, imagine you have a super-custom-controller script where you setup everything, except sound. So for sake of convenience you can use a curve in this script to override the one in the AudioSource so you don't have to select different GameObjects in the Inspector, but only one.

  • @MaksMikhnevych
    @MaksMikhnevych 2 роки тому +62

    One of applications is to have probability spread unevenly between 0..1 with non linear animation curve. Could be used to drop rare items much less frequently than regular ones with probability thresholds configured

    • @GameDevGuide
      @GameDevGuide  2 роки тому +12

      Ooh, this is a great one! I like it.

    • @DoubleBob
      @DoubleBob 2 роки тому +3

      This will save you 5 minutes in coding and will produce a ton of fidgety work, when you need to fine tune the balancing.

    • @rickloyd8208
      @rickloyd8208 2 роки тому +3

      I would not do that as it's good idea to increase chance if rare item is not dropped for a long. That's what users treat fair chance :)

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

      @@rickloyd8208 Why not both though?

  • @erz3030
    @erz3030 2 роки тому +8

    WOW! I had NO IDEA this was possible! this was one of the most useful videos I've watched in a while!

  • @AleeWiksa
    @AleeWiksa 2 роки тому +10

    I used earlier this year animation curves for utility AI, I made also custom plugin to unity to generate different curve types with a press of one button that were then held in scriptable objects. Very simple, but god damn useful.

  • @dastm0
    @dastm0 2 роки тому +17

    In one of my latest projects, I use them to pitch the engine sound of a vehicle. This gives the player the feeling of shifting gears while having just a single one logically.

    • @GameDevGuide
      @GameDevGuide  2 роки тому +5

      Ooh using it for pitch is a nice one!

  • @jojikYT
    @jojikYT 2 роки тому +5

    I use AnimationCurve for procedural Animation like lerping between two positions or animating a step. You can also use negative values like getting the dot product of two vectors (-1 and 1) and evaluate the curve with it.

  • @pius6330
    @pius6330 2 роки тому +4

    What a great tutorial! For the past week I've been figuring out a way to store Xp amount and level correlation, turns out you can just create a single animation curve. Subscribing to this channel was a really great decision.

  • @Tarodev
    @Tarodev 2 роки тому +4

    What beautiful video. This is my first exposure to your content, somehow... Subbed!

  • @DrGroo
    @DrGroo Рік тому +3

    Great video. I was very happy on the day I realized Animation Curves didn't need to be related to actual time. The little project I've been working on for the last couple of days uses multiple animation curves to control post processing settings (depth of field, desaturation, contrast, fog) based on the height of the camera above the game map. So much easier to make subtle tweaks than in code.

  • @qthefirsttimelord
    @qthefirsttimelord 2 роки тому +6

    I'm trying to find motivation to get back into programming. Looking at something like this is a reminder to just take it slow and enjoy the various new ways highly graphical interfaces such as Unity permit but don't limit the coder to. Thank you for showing yet another feature, this will absolutely come in handy for camera movement and more!

  • @Connordore
    @Connordore 2 роки тому +2

    I’m working on a 2D player controller and this is EXACTLY what I need. I had no idea I could do something like this. Thanks for making this video!

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

    Every time I open your channel, I can learn new things which helps a lot for my game. Thank you so much!

  • @branidev
    @branidev 2 роки тому +2

    I didn't even know I can use it like this, this is mind-blowing for me. I gonna play with this over weekend. Thanks

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

    Amazing as always ! Thank you for all your tutorials :)

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

    Found this by googling how to properly use unity curves and even if I am a veteran gamedev I found your tutorial very nice. Very soothing and clear voice and good pointers all around.

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

    very well made and very informative. thanks you so much for making this :D

  • @TheKr0ckeR
    @TheKr0ckeR 8 місяців тому

    Never thought we could use Animation curve in game balance & economy! Great

  • @christinaVennegerts
    @christinaVennegerts 2 роки тому +4

    Oh, this is amazing, thank you! I've played around with it and now use it to generate my initial town's population based on a curve that displays their age. This is incredibly handy!

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

      Animation Curves are so versatile!

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

    This video makes my animator heart so happy. 😂
    I'm going to be adding curves to absolutely everything.

  • @skyheart_dev
    @skyheart_dev 10 місяців тому

    Thank you for a useful info on how to use animation curves!

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

    Really nicely taught!

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

    I was just looking for some tips about RPG Level and Stats to be managed with the curve, so really thank you :)

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

    Great video mate. Thanks for sharing

  • @JohnVanderbeck
    @JohnVanderbeck 2 роки тому +4

    I use Animation curves for TONS of data storage purposes.

  •  2 роки тому

    At last, after all this time searching, I might have found my new Brackeys !
    Thanks for the videos !

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

    yeah !! a new Game Dev Guide video :D

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

    This is mindblowing to me... unlocking a whole new world!

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

    Helped me so much! Thanks! I was about to do some dumb complicated math.

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

    Amazing tutorial thanks

  • @axon266
    @axon266 13 днів тому

    Awessome video! Thank you for the time and effort put into this! +1 Sub!

  • @robertlowther7442
    @robertlowther7442 2 роки тому +3

    I like animation curves for adjusting noise to make terrain.

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

    Omg that level system you've made is so OP. Is there a github with what you've just showed or everything I need to reproduce it is in the video? What did you added to use the custom buttons?

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

    Amazing 😍

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

    You got a new subscriber

  • @MTandi
    @MTandi 2 роки тому +3

    I'm using animation curves not just for movement, but always when I just need some interpolation.
    E.g. the smoothness of brush that paints trails on terrain when people walk on grass.

  • @titanovsky
    @titanovsky 2 місяці тому

    Thanks!

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

    Please make a video on how to plot a graph in Unity UI (like RPM/Torque) and how can we make an editor to edit this curves from UI in build game. Not in Editor

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

      Check out the UI Line Renderer video!

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

      @@GameDevGuide it doesn’t work in latest Unity and it’s not 2D I believe. And still doesn’t mention how to change AnimationCurve in Runtime

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

    How did you go about solving this for the RTS camera video you had? I see you've developed the zooming in and out, with level difference here, cant figure it out from your code snippet at 3:30

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

    last one was craaaaaazzzyyyyy

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

    What if you took the "boring" acceleration code in the beginning. But made it using an animation curve?
    Instead of setting the speed directly with a curve. You set the acceleration.
    Why?
    Let's say you use a curve for speed aka velocity. You move forward, but you want an enemy to push you when hit.
    If you use a curve directly, this leads to JANK. He hits you and either you snap to slow or snap back.
    Or if it's curved as usual, then the curve might affect the enemy's push and it suddenly isn't consistent.
    Instead you use the curve to set the acceleration.
    You start with an acc of 5 then gradually go down to 0 the further speed gets to maxSpeed.
    This way you control how fast you start your movement, but also your maximum movement separately.
    Otherwise usually if you increase the acc, then the max speed increase as well.
    I'll have to experiment with this but it's just a thought.
    I generally avoid direct manipulation of movement as much as possible if I ever want to add interactive elements that apply force to the player.

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

    Yes it's amazing!

  • @Semmetje11lolly
    @Semmetje11lolly 2 роки тому +3

    Hey Matt, I've been searching the web on how to make a 'News' Tab (something like the News tab in Brawl Stars or Clash Royale for example) in-game in Unity, but can't seem to find anything. Could you maybe do a tutorial on something like this?

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

    I thought that you would talk about Lean Curves. Maybe included in a next video!

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

    This takes away much of the complexity you'd otherwise face. I used this to simulate a jetpack that would keep ascending with "inertia" by just decreasing the percentage of speed you get (and taking more time to ascend if you were descending, etc). It's awesome and hugely contributes to the game feel.

  • @4984christian
    @4984christian Місяць тому

    The video is not beginner friendly but I get that the concept applies generally.

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

    Curves are love, Curves are life

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

    Right now I'm making a whole AI for my game out of animation curves 🤖
    I use the curves to tweak AI behavior in an intuitive way, and behind the scenes convert them into actual 3-degree polynomials so I can use linear algebra and calculus to quickly evaluate complex decisions without sacrificing any accuracy

  • @WeaselOnaStick
    @WeaselOnaStick 2 роки тому +2

    Wow, I was just searching for using curves to affect character accel./speed but couldn't find anything. (Would there be a similar technique for affecting character's *deceleration*? After movement key is released or direction is changed for example)
    Thanks for the video!

    • @GameDevGuide
      @GameDevGuide  2 роки тому +2

      Yep, I actually do this in the video! Just sample another curve and subtract the value from your speed for the time it has not been held.

  • @frostyflames7864
    @frostyflames7864 2 роки тому +3

    I wish my professors knew about curving 😅

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

    Could you do a more in depth vIdeo focused on the scripting side?

  • @sebastianklocke9780
    @sebastianklocke9780 Рік тому +1

    Last week, I used an animation curve to give my camera zoom a little bit more polish, because a linear zoom felt boring.
    I think the next step, thanks to your video, will be an acceleration curve for my camera pan speed

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

    Could you use this for a skill system? If so, how could it be implemented?

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

    How often you make a video about the problem (smooth user experience progression) I currently face. I wish I can give you hundred of likes!

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

    5:14 Ah, i know this feeling, "Hey, you know what'd be fun? If i made a completely useless editor button for this feature!" *spends 5 hours making an editor feature that saves me 10 minutes total* lol

  • @USSR-Lenin-Stalin-Forever
    @USSR-Lenin-Stalin-Forever 2 місяці тому

    how to estimate time outside the curve?

  • @ShatabdaRoy115
    @ShatabdaRoy115 Рік тому +1

    I think u should show full code

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

    How can ı add animation curve for jump ? My character can't jump while ı was adding animation curve.

  • @shiv-iwnl8188
    @shiv-iwnl8188 2 роки тому

    I used an animation curve in my procedural floating island generator to easily change the shape of my floating island

  • @goldenboy0527
    @goldenboy0527 11 місяців тому

    I cannot edit the key values manually, right clicking while selecting a key gives only add key option?

  • @rahultandon9749
    @rahultandon9749 4 місяці тому

    0:47 programmatically making an animation curve for line of motion, speed, acceleration....how to?

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

    Yo, can Animation curves be made to alter Wind zone floats like Turbulence? The values must be public as you can alter them in inspector

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

    They should just rename it to Curve.
    Thanks for vid

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

    Does using this has any drawbacks in terms of performance?

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

    I want to zoom camera with curves. Does anyone have a working code? And then in all the videos there are only code fragments, and I'm new to this business

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

    I was just telling my friend that I'm too lazy for an XP function, so I just use animation curves LOL

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

    engine torque curves anyone?

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

    No need curve tho,

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

    The curves in Unity suck. They are very annoying to edit. Very bad editor usage.