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!
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 :)
@@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)".
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
@@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.
@@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.
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
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.
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.
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.
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!
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.
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.
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.
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!
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
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.
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
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.
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
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?
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?
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.
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
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!
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
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
The first 1,000 people to use this link will get a 1 month free trial of Skillshare: skl.sh/gamedevguide10211
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!
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 :)
@@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)".
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
@@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.
@@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.
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
Ooh, this is a great one! I like it.
This will save you 5 minutes in coding and will produce a ton of fidgety work, when you need to fine tune the balancing.
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 :)
@@rickloyd8208 Why not both though?
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.
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.
Ooh using it for pitch is a nice one!
WOW! I had NO IDEA this was possible! this was one of the most useful videos I've watched in a while!
What beautiful video. This is my first exposure to your content, somehow... Subbed!
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.
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!
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.
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.
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!
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.
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!
Animation Curves are so versatile!
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
Never thought we could use Animation curve in game balance & economy! Great
Every time I open your channel, I can learn new things which helps a lot for my game. Thank you so much!
I use Animation curves for TONS of data storage purposes.
Thank you for a useful info on how to use animation curves!
This video makes my animator heart so happy. 😂
I'm going to be adding curves to absolutely everything.
I was just looking for some tips about RPG Level and Stats to be managed with the curve, so really thank you :)
Helped me so much! Thanks! I was about to do some dumb complicated math.
I like animation curves for adjusting noise to make terrain.
This is mindblowing to me... unlocking a whole new world!
At last, after all this time searching, I might have found my new Brackeys !
Thanks for the videos !
Really nicely taught!
yeah !! a new Game Dev Guide video :D
Amazing as always ! Thank you for all your tutorials :)
Him: "Curves are everywhere."
Me: "Whoa!"
🤣🤣
Awessome video! Thank you for the time and effort put into this! +1 Sub!
very well made and very informative. thanks you so much for making this :D
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
Thanks!
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.
Great video mate. Thanks for sharing
last one was craaaaaazzzyyyyy
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
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.
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
Check out the UI Line Renderer video!
@@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
Amazing tutorial thanks
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?
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?
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.
The video is not beginner friendly but I get that the concept applies generally.
You got a new subscriber
how to estimate time outside the curve?
0:47 programmatically making an animation curve for line of motion, speed, acceleration....how to?
I thought that you would talk about Lean Curves. Maybe included in a next video!
Curves are love, Curves are life
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
Could you do a more in depth vIdeo focused on the scripting side?
I think u should show full code
I cannot edit the key values manually, right clicking while selecting a key gives only add key option?
How can ı add animation curve for jump ? My character can't jump while ı was adding animation curve.
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!
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.
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
Yes it's amazing!
I wish my professors knew about curving 😅
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
Amazing 😍
I used an animation curve in my procedural floating island generator to easily change the shape of my floating island
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
Does using this has any drawbacks in terms of performance?
They should just rename it to Curve.
Thanks for vid
Could you use this for a skill system? If so, how could it be implemented?
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!
I was just telling my friend that I'm too lazy for an XP function, so I just use animation curves LOL
engine torque curves anyone?
No need curve tho,
The curves in Unity suck. They are very annoying to edit. Very bad editor usage.