Animation Bootcamp: An Indie Approach to Procedural Animation

  Рет қаралды 734,896

GDC

GDC

Күн бұрын

Пікірлер: 648
@Zeawsomee
@Zeawsomee 4 жыл бұрын
The clearest example of working smarter instead of harder
@TheGooGaming
@TheGooGaming 4 жыл бұрын
Seems genius but all these processes make the game run terrible on pretty much any hardware, which is honestly a shame
@phynx1756
@phynx1756 4 жыл бұрын
@@TheGooGaming It's more so optimization. Its a bit more taxing but still.
@TheMrTape
@TheMrTape 4 жыл бұрын
@@TheGooGaming That's simply very far from true. Normal animation is probably more taxing (depending on engine) in that it still needs to grab data from ram and apply it for each frame. You could calculate hundreds of millions of interpolations a second, yet only need about 60 for each instance. I can't think of why it wouldn't take only one CPU instruction to calculate the interpolation value of any given instance.
@prooxy1234
@prooxy1234 4 жыл бұрын
trolln
@TheMrTape
@TheMrTape 4 жыл бұрын
@@BassRukarioGuerrero No not necessarily. An animation consists of a relatively large data set where each frame is dependent on keyframes and the previous frames, so all that data has to be worked on to calculate bone angles for each frame, rather than just interpolating between 2 values according to simple math via one or few instructions.
@speakingmia7298
@speakingmia7298 5 жыл бұрын
It’s a video back to 2014 and it still looks unbelievable in 2019.
@Icewind007
@Icewind007 4 жыл бұрын
Holy moly, I am a new game developer and this is going to directly affect how I am about to do a lot of things. I am so glad I watched this.
@TheSssarasss
@TheSssarasss 3 жыл бұрын
he's an expert on this he worked on this game for many years I played the game is amazing and you can see how much love is put in this game, those people are pure artists
@Marcos10PT
@Marcos10PT 3 жыл бұрын
I am grateful to witness such a manifestation of ingenuity. This guy is in his own league, one of the greats among us. Much to learn from him!!
@falxie_
@falxie_ 3 жыл бұрын
I love how much applause he got for this, well deserved
@isaiaslafon9329
@isaiaslafon9329 4 жыл бұрын
I thing GTA IC V RDR are the most in the other side in responsivness! I love this talk, I'll rewatch it time to time
@pajeetsingh
@pajeetsingh 5 жыл бұрын
He has done more programming than entire Bethesda staff
@pedor5965
@pedor5965 4 жыл бұрын
tbh that isn't saying much
@BuranStrannik
@BuranStrannik 4 жыл бұрын
It is future of game animations here.
@awashmicrobe
@awashmicrobe 6 жыл бұрын
and I'm here learning block breaker
@Noyssu
@Noyssu 3 жыл бұрын
this is gold thankyuuuuuu
@slmjkdbtl
@slmjkdbtl 4 жыл бұрын
madly useful
@amanzar8515
@amanzar8515 7 жыл бұрын
Excellent!
@GusLapchatiy
@GusLapchatiy 4 жыл бұрын
16:53 maaaaan, i'm so stoned, this shit is good!
@johnvoidman6616
@johnvoidman6616 3 жыл бұрын
How does it really work with two frames? Shouldn't it be multiplied by 2, each pair for a foot.
@StormySeb
@StormySeb 4 жыл бұрын
The fact that I managed to understanding even 50% of this is a testament to how good he was at explaining everything.
@mishikokenkebashvili879
@mishikokenkebashvili879 3 жыл бұрын
I watched this one year ago and didn't understand shit but i rewatched it now and I'm proud of myself for understanding it lol
@JungoFunko
@JungoFunko Жыл бұрын
​@@mishikokenkebashvili879me too lol
@JoshuaReyes
@JoshuaReyes 7 жыл бұрын
This is a awesome talk, this guy needs to teach a course on this.
@simplyble
@simplyble 7 жыл бұрын
he would actually make some great courses if he did
@mikeluna2026
@mikeluna2026 7 жыл бұрын
Agreed, I'd really love to have the know how to do such good outstanding animation.
@EnriquePage91
@EnriquePage91 6 жыл бұрын
Yeah this would be a great course but it would certainly be at least 30-40 hours long - not a small topic and particularly when aimed at indies that more often than not do not come from programming backgrounds
@EnriquePage91
@EnriquePage91 6 жыл бұрын
I know I've been researching this topic for over a year at this point
@kuurozen1
@kuurozen1 6 жыл бұрын
Enrique Have you found any other good ones you can recall from your research?
@jonathanxdoe
@jonathanxdoe 7 жыл бұрын
Incredible how solid it looks compared to a game like assassin's creed with hundreds of animations. The power of code
@magnusm4
@magnusm4 6 жыл бұрын
Fuck animation and graphics, hail gameplay and physics. Doesn't matter if it's not realistic as long as it looks plausible for a game and is fun and fluid
@Probable.Orange
@Probable.Orange 6 жыл бұрын
it looks lifeless tbh
@satellite964
@satellite964 6 жыл бұрын
Power of math.
@ryanmartin8060
@ryanmartin8060 6 жыл бұрын
I agree, the quality really isn't that far off from what we can see in some popular titles. NieR: Automata has super responsive controls, something I'm a huge fan of, and having that responsiveness and fluidity is more important to me now than having a more realistic movement system that drags more and sucks the fluidity out of the controls. Definitely going to try and implement some of the things he's talked about here. I've got a 3rd person game demo that I'm trying to do on my own, and implementing these principles would save soooo much time.
@jeffwells641
@jeffwells641 6 жыл бұрын
To be fair, often times what appears to be a simple, obvious solution is completely non-obvious until it is pointed out. EA would probably* not have spent tens of thousands of man-hours animating each movement of every character in Assassin's Creed (and don't ask me why AC keeps coming up in comparison to this video) if they had known they could get better results with a clever programming trick. There are certain realizations here that are pretty brilliant in their simplicity, and while I wouldn't say he's the only one who had such realizations, he's one of only a few. It's also worth noting that these tricks would have been completely unworkable in the Mario days - they require a certain amount of processing power to make them trivial operations that hasn't been around until relatively recently. *EA makes some pretty dumb decisions sometimes, so I can't just say they wouldn't go the brute force route even if they know there is a better way.
@michaelabildgaard646
@michaelabildgaard646 5 жыл бұрын
Ubisoft - Spend 11 years, deitic amounts of money and international divisions developing a billion-dollar franchise around character movement David Rosen - "Look what I can do with 13 keyframes" I am in awe every time I come back to watch this
@BiosElement
@BiosElement 5 жыл бұрын
Only took em 9 years...
@jwadaow
@jwadaow 4 жыл бұрын
@@BiosElement A lone developer with limited funds.
@jeffwells641
@jeffwells641 4 жыл бұрын
I still find Overgrowth's movement to be one of the most satisfying I've ever played. It's just damn fun to run around and jump around in that world. It's not exactly a deep game though, and the jump-kick is infinite cheese, which kind of spoils it after a while. Still, the movement was an absolute blast.
@talanock
@talanock 4 жыл бұрын
the way this looks isn't realistic though. there is a cartoony nature to it which is not what you want when you wan realistic, viscual human like movmeent for osmething like assasins creed. This looks more like puppets flaing around, which works for this game, but it's foolish to think one method can fit all.
@m3rl1on
@m3rl1on 4 жыл бұрын
@@talanock that's the thing, you can adjust the params for those dampener and animation transition to make it more realistic, and i think thats why this tech is very interesting.
@tahaelaradi5539
@tahaelaradi5539 7 жыл бұрын
Dear David, this talk has been by far one of the best GDC talks I've watched for years. Technical yet easy to understand, and your approach is just great. I wish you would have explained a little 'how' whenever you explained 'what' you did to accomplish such interesting results. Wishing you lots of success.
@OlinaChang
@OlinaChang 4 жыл бұрын
FYI. After I finished reading 476 comments (=~ 95%), I figured out the speaker did this technique with his own engine. Some people who left the comments with the experimental of Unity, but not implement the entire animation set yet. One commenter executed it with webGL, he also showed the idea on his channel. I am an animator, not a coder, so... I am not sure I can understand. One commenter posted a github link, which seemed the implement code or result, but it's a fail link... For further research, I arranged some google key words from 476 comments: DamagedSplinter: skeletal animation [insert your preferred graphics api] tutorial SketchpunkLabs: implimented the idea with webGL kzbin.info/www/bejne/qqm0kqiega6caqc kzbin.info/www/bejne/qKqZc6GbqsR4jaM
@Donotargue
@Donotargue 7 жыл бұрын
This is amazing. Didn’t know you could get such detailed movement/animations with so little keyframes.
@joroc
@joroc 4 жыл бұрын
You and all game producers
@maya_gameworks
@maya_gameworks 6 жыл бұрын
Jesus what an INSANE talk! U can literally feel ur brain growing.
@ClokworkGremlin
@ClokworkGremlin 4 жыл бұрын
17:24 most realistic "I've fallen, help!" ragdoll physics I've ever seen, and they're from a tech demo from 4-5 years ago.
@LeeAndersonMusic
@LeeAndersonMusic 4 жыл бұрын
The first alphas came out in 2008, which already had pretty much exactly what you see here
@flubnub266
@flubnub266 2 жыл бұрын
@@LeeAndersonMusic Can confirm, I was there!
@jakes-dev1337
@jakes-dev1337 5 ай бұрын
10 years (since the demo, NOT even the game) and this is still my favorite GDC
@SnackZaddy
@SnackZaddy Жыл бұрын
First do no harm to gameplay is why I'm done with rock Star games. They are mechanically not fun to move around in. Having to wait a full second for a turn around animation looks incredible and realistic, but when you're just trying to run out of gun fire it is really tiresome. Not to mention things like when your character literally just trips and falls when you clip some random geometry.
@animatrix1490
@animatrix1490 4 жыл бұрын
I really love that basically every single time ragdoll footage plays people laugh. It's kind of adorable
@Twisted_Logic
@Twisted_Logic 7 жыл бұрын
I remember when he put this talk up on his own channel a couple years ago and it's still brilliant. And congratulations to Wolfire on finally bringing Overgrowth into full release!
@ClayMann
@ClayMann 7 жыл бұрын
Super super interesting. I love the methodical breaking down of what is at first glance a horrendously difficult thing to do in games. Now I wonder if this kind of approach could solve the armor problem where armor is getting more and more elaborate in games but the intersecting of different armor bits is getting worse and worse. I can't tell you how much it grates on me when I see a shoulder pad glitch straight through a characters head when they reach forward or watching hugely elaborate armors just go into intersecting madness not giving too shits about physics. I haven't seen anyone trying to solve it so it must be a tough cookie to take on. I think I know a guy that could help!
@fappylp2574
@fappylp2574 7 жыл бұрын
Realistically you'd need to inhibit a character's motion range depending on the armor worn. Perhaps one could define a set of maximum angular ranges for each piece of armor and then have the animation somehow be procedurally limited to these constraints. An immediate problem I see here is that for instance very cumbersome armor will lead to shorter maximum step sizes, which in turn needs to slow the actual forward movement of the character. This breaks the rule of the animation not affecting the actual motion, but maybe a compromise can be found.
@ZEGTHEFISH
@ZEGTHEFISH 6 жыл бұрын
You could actually turn the inhibiting factor into a gameplay mechanic for more clumsy armour being perhaps more protective but less motile
@philsburydoboy
@philsburydoboy 6 жыл бұрын
With this you could solve that pretty easily. Just like he said with the spear, for each new item you do a new set of keyframes. Because there are an extremely small number of keyframes to make, you can customize animations to any in-game item very easily. The only issue I could see is if you allow complex combinations of items, because then you would have to procedurally generate keyframes for the whole body based on what is worn/held on each part of the body. For example: I am wearing chainmail pants, a steel chest plate, a giant pointy helmet, carrying a spear, and have rigid boots. This would require his system plus some sort of procedural priority system to choose parts of the different animation sets. The helmet will VERY seriously affect rolling animations while the boots will affect all animations, and the spear will have even more effects on rolling, jumping, and anything close to a wall. Very doable, but this changes from a few months for his sustem to almost a year, maybe more, for a procedural version
@spartanwar1185
@spartanwar1185 6 жыл бұрын
Either inhibit movement or make a good PRACTICAL armor design
@tiagodarkpeasant
@tiagodarkpeasant 6 жыл бұрын
yeah make most armor practical, and if there is an impractical one, it is a full set, so all motions are limited, like a power armor, it restrain you movements but increase the strenght a lot, and only makes sense to use full armor
@zaeche
@zaeche 7 жыл бұрын
Really enjoyed this talk! I know he keeps saying key-frames, but essentially what David's doing is making strong poses, key-framing them sparsely, then using code/interpolation/what-have-you to make them sit nice, right? To me, It makes for reactive controls with pleasantly whippy animations, and what's clever about it is that the previous animation state ends up being the anticipation for the next animation state and so on. Good stuff.
@ThePhobiephozee2000
@ThePhobiephozee2000 7 жыл бұрын
Yes, I agree!
@rurzan
@rurzan 7 жыл бұрын
Yeah, I know little about animation, so was wondering if it boils down to making only the extreme poses (like standing pose and crouching pose), and interpolating in code, rather than creating the in-between poses manually, which would be the more traditional approach. Is that correct?
@zaeche
@zaeche 7 жыл бұрын
(Not an expert but) I believe that is correct! Especially since he's modelling the interpolation on springs (force, damping etc) you get some procedural ease-in and ease-out. I'm _also_ quite sure using material physics lumps on secondary motion. And so on and so forth. It really is fascinating--the more you think about it, the more ways you can optimise towards an efficient animation workflow (even if you go back in later with high fidelity animations during polish).
@MajkaSrajka
@MajkaSrajka 7 жыл бұрын
@ruzan Yeah I believe so. In the Q&A he gave example about making key-frames for holding large ball, small ball and interpolating between them ( 25:35 ).
@EnriquePage91
@EnriquePage91 6 жыл бұрын
Think of it In this way, I use blender and will explain it with this software but the idea is the same regardless of the software: Do your animation as you would in Blender/Maya/etc, If you're doing a run cycle...: you most probably have a few major poses, not just two. YOU CAN STILL DO THIS!! What he did was a very simplified illustration of the process, but ultimately he is just interpolating KEY POSES directly in his GAME ENGINE instead of doing it in Blender. This way he does not have to bake the information into a 250/X - frames animation, and then read all of that information in the Game Engine. He can simply use the KEY POSES to "recalculate" the interpolations necessary for the whole animation. Your 3D Animation software does this already, but it is more powerful if you do so directly on the Game Engine. When you animate in your software you define key frames which determine a specific pose of the skeleton in time. Whatever you don't manually "specify" gets "imagined" by the software and recreated by interpolating the positions of EVERY vertex on your mesh from one point in time to another. If you export your KEY POSES only, and then complement this by Interpolating in between them IN the GAME ENGINE, then you can control HOW these interpolations happen in realtime. If I use unity as an example, when you import a 250 frames animation, each frame has a specific instruction set of how the skeleton is posed, meaning you have 250 different sets of instructions on your animation data that Unity will read when playing the animation. Today, computers are so fast that we can do the interpolation in realtime, so we could instead only import an animation that is 7-8 frames long instead, which only contains the KEY POSES of our animation. Then in unity, utilizing animation curves, you can CODE how these animations interpolate based on the animation curve you added. These animation curves can then be easily edited in realtime, or in the editor. Ultimately this results offering a lot more controls to the devs on what they can do with animations, and besides that, it is also easier for animators themselves to work with. This way, your animations are shorter (and occupy a substantial amount less of SPACE on the game data side), and more "adjustable".
@BigFreakingCacodemon
@BigFreakingCacodemon 6 жыл бұрын
Well heck, two frames. Even I can do that. I don't need it to be super pretty, but animation felt like it would be a colossal barrier to game development, but this really breaks it down into a much easier, more understandable process. Really cool.
@QuietSnake-xs5vx
@QuietSnake-xs5vx 7 жыл бұрын
Fkin genius...breakthrough man
@MiRoDevYT
@MiRoDevYT 6 жыл бұрын
Is there a way to learn this technic? Any courses maybe or articles explaining this in more detail it’s very fascinating, and could really use it to speed up my workflow
@ProblemBears
@ProblemBears 7 жыл бұрын
Wow this is great!
@neolynxer
@neolynxer 7 жыл бұрын
Better animation flow then assassin's creed. In 13 keyframes. (yeah-yeah, and, like, 15 years of development, but still)
@neolynxer
@neolynxer 7 жыл бұрын
MTRredux, IMO, not something to praise: you should save time to make as good a game as you can. This is not 97. It's like writing your own browser to make a website. I'm sorry to say, but Owergrowth, as a game, was not worth this amount of time in development. Yes, animation system is awesome in it's simplicity and system design and works for anthropomorphic rabbits. No one knows how that would look on a realistic human.
@scottcourtney8581
@scottcourtney8581 7 жыл бұрын
+Lynx Lynxov, I hear what you're saying, but that assertion depends on whether his goal was making a game, or making great technology as a source of personal fulfillment. Ars gratia artis, or art as a product for sale? I make virtual things on a computer, or real things in wood and metal, that I could have purchased, because what I really want is not always the result. Sometimes the real goal is the joy and learning of the craft process.
@Twitch375
@Twitch375 7 жыл бұрын
Markus Glanzer I'm not sure but it was one guy working probably less hours than a part time job over 15 years. At 20 hours a week that's 15,600 hours. Even if assassins creed was made with 100 people working full time for one year it come out to 208,000 hours. I can almost guarantee more people are involved for longer than a single year and a good portion will do overtime. But that's comparing the games in total. Knowing how many hours spent on the animation system for either game is kind of impossible.
@rafaelr6792
@rafaelr6792 6 жыл бұрын
Just a question,so am i able to do the same in unity?
@alxl.929
@alxl.929 6 жыл бұрын
EXACTLLY
@LouisHong97
@LouisHong97 7 жыл бұрын
what a great talk. extremely engaging throughout
@demetresaghliani9048
@demetresaghliani9048 6 жыл бұрын
As a beginner, how would I go about doing this? Do I need to create keyframes in, say, Blender, and then import those into, say, Unity, and interpolate between the keyframes however necessary within the game engine, or do I create the animation inside Blender and then choose which frame to scroll to in Unity?
@Ertie
@Ertie 5 жыл бұрын
Keyframes in blender, then logic and physics and math and stuff in the engine
@arthurfacredyn
@arthurfacredyn 4 жыл бұрын
I say, contact the dude, his info is at the end of the vid
@seraaron
@seraaron 3 жыл бұрын
Wait, this guy *made* Humble Bundle! Oh wow, that's kinda crazy to think about :0
@CubsYT
@CubsYT 3 жыл бұрын
My favorite GDC talk. will never stop rewatching this
@80sJoel
@80sJoel 25 күн бұрын
Guy is the Jesus of game dev programmers.
@bigalkool2897
@bigalkool2897 3 жыл бұрын
what a massive CHAD!!!
@yasserarguelles4245
@yasserarguelles4245 7 жыл бұрын
"Pretty simple trigonometry"
@bignasty389
@bignasty389 7 жыл бұрын
We teach trigonometry to teenagers. Any eighteen year old with a public school education should be familiar with the concepts enough to apply them with a little bit of study.
@DarienCaldwell
@DarienCaldwell 7 жыл бұрын
yeah if it was simple, everyone would be doing it.
@bignasty389
@bignasty389 7 жыл бұрын
That isn't true. There's still a large amount of work that goes into effectively applying these principles. Most people aren't learning the technology and spending the hours necessary to create procedural animations because it's a niche skill. However, if you're working with computer graphics, then you are "doing it". If you've used OpenGL you're working with simple trigonometry and linear algebra. Just because the principles are simple doesn't mean building the system to use it, or coming up with the idea independently is simple. Let's stop mystifying math. Trigonometry is one grade after algebra.
@DarienCaldwell
@DarienCaldwell 7 жыл бұрын
This isn't about Trigonometry. Yes that's simple as a principle. it's about what he's doing, making a whole animation system replacement without any real animations. that *Isn't* simple and is what people are talking about. It's not simple to do, no matter how much Trig you know. Nobody is 'mystifying' math. Math isn't even part of the discussion. But you know, since you brought up the discussion of "Mystifying" math, Here's a gripe to ponder. Pick any math subject, for random example, Verlet Integration, and look it up: en.wikipedia.org/wiki/Verlet_integration Now tell me, why do they only present it in 'secret mathematician's code' instead of layman's terms? Or better yet, as simple to understand computer code? The page even has a warning about how it's too technical to be understood. If you want to 'demystify' math, stop using coded language to present it. It's designed to keep people from clearly understanding it. I don't see anyone working to improve this type of thing. /rant.
@bignasty389
@bignasty389 7 жыл бұрын
I'm over here trying to find the exact moment this quote was from, because when I responded I thought it was within the context of a response to a specific technique but I couldn't find it in the few minutes I have to search and respond. So, if it was more of our narrator's humble oversimplification of his creative approach then I'm sorry for being so combative when you were just being cheeky. I do agree with everything else you've said. Ideas aren't valuable wrapped up in layers of notation being used as some shibboleth useful only to the people who already know it. I think we all have a tendency to reflect ourselves upon others and those with knowledge can forget that our brains reference data much more easily than they write it. The ways that something makes sense are as important as the ways that it doesn't and we need to understand both to be effective communicators.
@randomrandom450
@randomrandom450 4 жыл бұрын
Really cool and interesting. I used to work in AAA companies for about 12 years, as a gameplay programmer and animation programmer. The procedural animations I was making was always to make something precises, like foot IK, spine tracking, head tracking, ropes and tentacles. But 2 years ago, I made the leap to indie, we are very few and everybody lacks time, so I started to use procedural animation to save animators time. Not because our animators are lazy, but we have multiple characters, so making something a blend of like 8 animations, instead of being procedural, might mean that we just wont do it, since it means 8 animations times the number of characters, while procedural animation can be applied "automatically" to all characters. It might be just a bias because I know about it, but like the speaker said, it is not that hard, it's just a bit of math and I feel the best way to learn anything, including math, is doing something cool with it. I first though it was scary, now I love making procedural animation.
@LuisCassih
@LuisCassih 4 жыл бұрын
but how does affect on the perfomance to do these calculations for multiple characters? are the differences huge enough to not be worthy?
@-BRODEN
@-BRODEN 3 жыл бұрын
​@@LuisCassih I am not an expert, or incredibly experienced, but what I do know is that modern computers are incredibly fast, and can process an INSANE amount of data. Interpolation and blending is fairly simple for a computer to do, as it is just simple math (adding/subtracting and multiplying/dividing). Keyframed animation still has an edge over procedural in terms of performance, but not by a lot. For the modern machine, procedural shouldn't be a problem. If you'd like a deeper dive into the subject, I found an article called "Comparing Traditional Key Frame Animation Approach and Hybrid Animation Approach of Humanoid Characters". It goes into performance about 22 pages in.
@MicrowaveHateMachine
@MicrowaveHateMachine 7 жыл бұрын
Arma needs this so bad lol
@Roxor128
@Roxor128 7 жыл бұрын
Hmm... Interesting! You can go from essentially Wolfenstein 3D type framerates to pretty smooth so quickly, just by being smart about using interpolation.
@Marcos10PT
@Marcos10PT 4 жыл бұрын
Now I just need a tutorial on doing this in Unity :D
@gegen_den_strom
@gegen_den_strom 4 жыл бұрын
or ue4^^
@FranciscoSciaraffia
@FranciscoSciaraffia 7 жыл бұрын
Oh man, i need to rethink my entire life now... Loved this talk!
@CherPsKy
@CherPsKy 6 жыл бұрын
Sargas Evigmae How did it go?
@Gurem
@Gurem 4 жыл бұрын
Seems he's still rethinking.
@catinwall4256
@catinwall4256 4 жыл бұрын
@@Gurem I hope he has a rethinked life now.
@DoomRater
@DoomRater 4 жыл бұрын
Four minutes in and I can't look away. It's so beautiful. Every developer needs to see this.
@Nekich12
@Nekich12 7 жыл бұрын
Great talk! Can anyone point me in the direction of some tutorials or guides on how to implement the transitions that David is talking about in this video? Thank you very much.
@brianshannahan6983
@brianshannahan6983 6 жыл бұрын
I know I'm a year late to this, but... damn. This is literally some of the most impressive animation I've ever seen, and all explained in a straightforward, usable way. Awesome work.
@MaxRostas
@MaxRostas 6 жыл бұрын
Brian Shannahan seriously. It's funny how touted the euphoria engine is for gta, yet this guy's falling animations are loads more convincing using the simplest of methods.
@490o
@490o 2 жыл бұрын
I always found the movement in most 3D games super awkward. Maybe I should check out this game
@tomascampo2283
@tomascampo2283 6 ай бұрын
man, overgrowth is an amazing game, you did a fantastic job
@alexmighty693
@alexmighty693 4 жыл бұрын
This guy is awesome at explaining stuff. You can tell that someone is really good at something when they make it look/sound easy.
@sarthakvinchurkar
@sarthakvinchurkar 5 жыл бұрын
But can anyone explain how exactly can I use interpolation and basically blend two animations smoothly in Unity? is there an option in the animator window or something? or what? (I've recently begun learning Unity and haven't gone much into animation yet as this is what I was afraid of, that I'd have to create loads of keyframes manually, without mo-cap. But now with interpolation it seems easy, but idk how. like after I create the basic keyframes, what/how do I do it?
@soliderarmatang5664
@soliderarmatang5664 3 жыл бұрын
When this guy was born he taught GPUs how to run his game.
@LittleMikeStarCraft
@LittleMikeStarCraft 4 жыл бұрын
I miss Dave's voice from his updates. Haha. Brings me back to the good ole days.
@jtsiomb
@jtsiomb 7 жыл бұрын
Brilliant idea. I'll definitely try this approach next time.
@Dahxelb
@Dahxelb 5 жыл бұрын
I am educating myself to become a game developer. I can't work with graphics much at all, but it's really, REALLY impressive to see how good these animations actually are with such little actual graphical work put into the animations. Just a couple of different key poses that you need for the rig, and run smooth transitions between them. This is great and very inspirational.
@EnRandomSten
@EnRandomSten 3 жыл бұрын
that could actually be a pretty nifty fighting mechanic. have the character go more and more "into active ragdoll" when taking damage or after preforming heavy attacks as an opportunity for the opponent to punish greedy attacks
@MondoMurderface
@MondoMurderface 6 жыл бұрын
Its amazing but also very simple when you think about it. Traditional animating software uses blends, IKs, Poles, and constraints all the time between key frames. Hes basically built a basic animation assistant into the game engine and simplified the animations into keyframes. Something more engines should have built in for artists and animators in time.
@rumfordc
@rumfordc 7 жыл бұрын
this is one of the most helpful videos i've watched
@nmtkawb
@nmtkawb 7 жыл бұрын
This is definitely one of the best talks on GDC sessions. It was simple, informative, yet entertaining.
@gaia35
@gaia35 3 жыл бұрын
crazy how the questions asked weren't about what he was presenting. Animators can do whatever they want, the demonstration shown had 2 animation frames, this is the simplest example he could have presented the "technique" on.
@blarghblargh
@blarghblargh 3 жыл бұрын
"animators" didn't exist on his team. that's what the whole presentation is about - doing as much as possible in procedural animation instead of with manually authored animation.
@kingenidjingeln
@kingenidjingeln 4 жыл бұрын
This guy is a great speaker, I was clued to the talk even though I'm not a game designer.
@BudLeiser
@BudLeiser 4 жыл бұрын
This guy is like a quiet humble genius. Oh wait is that why it's called Humble Bundle?
@SaltedMallows
@SaltedMallows 4 жыл бұрын
Man OVERGROWTH IS OLD AS HELL How does it Still look this way if its still beong worked on??? When will its big full release happen?
@Notius
@Notius 4 жыл бұрын
It was released in 2017, this talk is from 2014.
@SaltedMallows
@SaltedMallows 4 жыл бұрын
@@Notius Still After all these years and all this talk of production This game just doesnt look impressive to me after all this time. It looked cool back in the day because the fluid combat with dynamic reactions was a little bit unseen at tye time but alot of developers have stepped their game up. Overgrowth just doesnt seem thave evolved into anything greater or at least I cant see it
@_fudgepop01
@_fudgepop01 4 жыл бұрын
hearing that this guy starting humble bundle is like hearing the guy who started patreon say he's the guy that started this small project called patreon. That alone is awesome!
@mildpass
@mildpass 4 жыл бұрын
Great talk. Played an overgrowth alpha a while ago and recall being very impressed with its animations. Now I know why. Was really impressed with the usage of interpolation methods to animation.
@kadir6411
@kadir6411 Жыл бұрын
Inspiring!
@LeeAndersonMusic
@LeeAndersonMusic 4 жыл бұрын
Man, I remember playing a very early version of Overgrowth many years ago, and especially then it blew my mind. Even with how simple it was I loved how alive the characters felt. Now over a decade later I find this video to explain why. I didn't know Receiver, another favourite, was made by the same developer. Great video
@porthothedev2453
@porthothedev2453 3 жыл бұрын
Me: Well, it sounded easy! I will try it! Me after 3 days: It its not easy! And i probably didnt understand not even half of it!
@Chris-pv2my
@Chris-pv2my 6 жыл бұрын
I watch a lot of Game Dev videos, from what's new in a game engine to the animation process, to coding but I don't necessarily grasp everything the person/teacher/video maker is saying (sadly more often then not). This guy makes complete sense and I understood every word he said. Maybe it was how he presented his information, maybe his brain just works similarly to mine in reasoning, I dunno. BUT it was excellent video and I enjoyed the talk and presentation on animation very much.
@superdepressif6047
@superdepressif6047 7 жыл бұрын
Where can I find more information about stride wheel in animation ? Nice talk.
@SketchpunkLabs
@SketchpunkLabs 6 жыл бұрын
trying to implement this myself and couldn't find any information. For the stride or probably call it he radius of our wheel. I'm thinking about the distance from center to the furthest the foot touches the floor or calc the the overall distance the foot travels from back to front which can become the radius. So if we can get the overall radius of a circle, we can form a wheel. Now the part i'm hung up on, if I rotate a wheel, how do I determine how much distance is covered by one full rotation of a wheel. So if I know the distance traveled per rotation, I can then divide that distance by 360 degrees. So from there, if I have a rotate speed of 10 degrees per second, I can then say something like 10 / 360 * RotationDistance which in theory should give you the correct speed to move at. So I might be wrong but thats my plan of action. If I ever get it to work I'll probably reply to this thread.
@SketchpunkLabs
@SketchpunkLabs 6 жыл бұрын
Learned that using the circumference equation of a circle will give you the length in whatever units. C = PI * Radius * 2. So we just need to figure out the stride length which would be the radius of the wheel, from there you can then calc speed based on rotation. Something like like CurrentRotationIncrement / PI * C = Forward Movement.
@SketchpunkLabs
@SketchpunkLabs 6 жыл бұрын
So got some things working. So for the stide wheel, its just a wheel who's radius is the length of of the stride. Decided to go one step further and try using the ideas with a sphere and created an online tutorial and code on how to move a circle/sphere and based on the increment of rotation, you can determine how much to move it. kzbin.info/www/bejne/qqm0kqiega6caqc Then I went a step further and decided not to try this stride wheel idea and try tracking feet position and it actually worked out. I can move an armature purely by tracking the feet and when it touches the ground, you start moving based on the current foot velocity in reverse. Add a lil friction and a constant update of velocity and I can make things move based on where the feet is taking the character. This is probably a much better solution since you can just use any animation and not have to build a wheel to determine speed So another vid and code samples for this idea. kzbin.info/www/bejne/qKqZc6GbqsR4jaM
@itsnass4268
@itsnass4268 9 ай бұрын
Been looking for a video like this for a whole time, this is truly inspiring and cool to watch. I always wanted to learn more about making a character controller like this.
@mehdisaffar
@mehdisaffar 6 жыл бұрын
Can someone please help me with the bicubic interpolation part? I don't know how to adapt the blend tree in Unity3D to use bicubic instead of whatever internal interpolation method it uses
@LouSaydus
@LouSaydus 6 жыл бұрын
I've done a lot of work in CSS animations and transition curve have been absolutely essential, and awesome, to getting clean looking animations. I've always wondered why games use complex animations with tons of data in them instead of relying more on transitional curves. Now I know that not everyone is taking that classical approach. I hope more developers pick up on this and start using these techniques, they produce excellent results when only a single person is working on them who has no professional experience or teaching on the subject. Imagine what would be possible if you had experienced, professional artists doing this kinda work.
@VinWeasel113
@VinWeasel113 6 жыл бұрын
This is so good! I can't stop watching this egg become a flipping wall running humanoid rabbit.
@samsibbens8164
@samsibbens8164 6 жыл бұрын
That shit is hard, I'm trying to make a 2D running animation using inverse kinematics and so far it looks like a chicken.
@Oxmond
@Oxmond 4 жыл бұрын
Wow! Great video! Really, really cool animation examples! David Rosen is a TRUE animation artist! 👍🤓
@mentoleh
@mentoleh Жыл бұрын
hello, i started doing my own little game and i wanted to knwo how to do the "weel" thing with the key frames on unity, if any one know or knows a vid, it 'd be cool.
@jakes-dev1337
@jakes-dev1337 5 ай бұрын
Make a circle. Rotate it. When its up and down vectors touch the ground, play left foot forward. When the left and right vectors touch the ground, play the right foot forward.
@joseph.cotter
@joseph.cotter 4 жыл бұрын
So that whole "have to keep center of gravity over feet" is the major bugaboo I hear related to animation over and over. It is not correct in any way. Walking is an act of falling forward (or backward or sideways depending on direction of motion.) any motion is in fact off center in the direction of travel until we come to a rest state. The faster the motion in a given direction, the more one will in fact be off center of gravity. The act of walking is slow enough that this is subtle (but if not taken into account we get a very stilted walk cycle.) Then we transition into the image of a gymnast doing flips in the air right after this statement where the feet are flying in an ark around the body. How much more contrary to that statement can we get? This is so basic I really have a hard time with the fact that the center of gravity over feet when referring to motion is still so often said. Having said that, the rest of the presentation was very interesting.
@alexcinos3756
@alexcinos3756 7 жыл бұрын
Amazing, just amazing work
@Akshaizo
@Akshaizo 6 жыл бұрын
Excellent talk, David. It's always interesting to look into animation and the various choices that go into animation.
@muffinberg7960
@muffinberg7960 3 жыл бұрын
this guy is a legend. I remember playing his first lugaro game as a demo from a pc magazine. This was at least 15 years ago maybe more when I was around 10.
@jadefae
@jadefae 3 жыл бұрын
Wow that's really smart
@TheAmbientWarrior
@TheAmbientWarrior 5 жыл бұрын
Wow I think this just became my favorite GDC talk.
@skywalker778
@skywalker778 6 жыл бұрын
Well, it's my second year in making games in my spare time..
@dunravin
@dunravin 2 күн бұрын
She's accelerating at 9.81m/s^2 downwards even when she's on the ground. Otherwise she would weigh nothing while touching the floor and would not be able to exploit friction to run and jump.
@TalDSruler
@TalDSruler 4 жыл бұрын
I would really, really love a full break down on how to make something like this.
@thomasrosebrough9062
@thomasrosebrough9062 4 жыл бұрын
The same guy who made receiver also started Humble Bundle??
@Bloodywasher
@Bloodywasher 3 жыл бұрын
I have admired overgrowth for years and been waiting for it to be complete. It's soooo good and inspires me to meet my goal of a 1 man dev team. I know i'm gonna have to cut a lot of corners while mastering the basics but, it's working so far especially with people like this fine genlteman out there.
@Bloodywasher
@Bloodywasher 3 жыл бұрын
Physics and mechanics in games have always inspired awe in me
@cloudshaifr
@cloudshaifr 3 жыл бұрын
a game i dont see mentioned enough that had a very great animation system was [prototype] while i assume it was adapted from a combination of hulk and spiderman, it still had a very unique way of animating the character, and i would endlessely play just to see the various animations that existed, such as how he handled maneuvering over cars and one big thing I enjoyed that no longer exists even in the miles morales game(latest spiderman i played) is the feeling of building momentum and maintaining it while the animations kept up. very insightful video and a like and subscribe as well for all designers wanting insight into the beauty of animations.
@Oxmond
@Oxmond 4 жыл бұрын
Wow! Great video! Really, really cool animation examples! David Rosen is a TRUE animation artist! 👍🤓
@grixxy_666
@grixxy_666 2 жыл бұрын
4 years later and I'm still looking for a more indepth talk about his process
@vrhyrsh
@vrhyrsh 2 жыл бұрын
you could just refer to the source code for extra details - the game was open sourced recently.
@grixxy_666
@grixxy_666 2 жыл бұрын
@@vrhyrsh thanks I didn't know that!
@SketchpunkLabs
@SketchpunkLabs 5 жыл бұрын
At the 6:49 mark, he talks about Linear Interpolation and has 4 points connected. How is that curve applied on the poses? I dont get how the curve can animate two poses. In my testing, I generate 4 keyframes out of the two poses and I can easily lerp between the frames to start making the animation but I still don't get how to use his curve in the animation. It can't be the curve used between each frame. Is that the curve set for the whole animation? Like how much time is spent moving from one frame to another? Thats the only part of this system I'm having a hard time trying to figure out.
@porglezomp7235
@porglezomp7235 3 жыл бұрын
I know this is two years later so it's not necessarily helpful anymore, but I think those specific points are just purely illustrative. Nonetheless, there *are* actually 4 points in the animation despite only having 2 poses, because those two poses are also used mirrored in the animation cycle.
@SketchpunkLabs
@SketchpunkLabs 3 жыл бұрын
@@porglezomp7235 The pose thing I already figured out, my question was how "curves" handle interpolation between poses really. The 2 poses holding 4 points of animation is kinda right. The idea is like compressing animation data down, so for the two poses the leg animation has 4 points for one cycle. To get the complete cycle of one leg, you have to merge all 4 leg positions in the two poses then mirror two so it works right with one leg, then you can mirror that good set of leg poses to animate the other leg with a 50% cycle offset :) I figured out my answer by learning a few different Hermite curves work. The trick was to create the idea of a closed loop Hermite curve, where the first frame reaches to the last as its tangent value and vice versa. This means any sort of hermite-like curve can be used to interpolate any animation loop to smooth out the transitions between frames. I posted the code way back when I got it working. Been meaning to do a tutorial on it but haven't had time. sketchpunk.bitbucket.io/src/fungi_v5/008_overgrowth_cubic.html
@SketchpunkLabs
@SketchpunkLabs 3 жыл бұрын
@@porglezomp7235 The one thing I haven't fully grasped is how they used a wheel to control the stride? I get that the arc length can help you determine how much distance to travel, but not sure how the wheel can make the legs move further out or closer together depending on how big the wheel is. If it was an Inverse Kinematics thing, then I think I might get how it works but the video had no reference to IK, so I'm still baffled on that part of their system.
@porglezomp7235
@porglezomp7235 3 жыл бұрын
@@SketchpunkLabs I think that's just based on a blend between the run poses and the walk poses.
@SketchpunkLabs
@SketchpunkLabs 3 жыл бұрын
@@porglezomp7235 Rewatching that section and I now see that he isn't really controlling the stride. Its really two sets of poses, one for walk another for run. I spent alot of time thinking about controlling stride and did it using IK while dynamically changing a curved path. Incase your interested. fungi.sketchpunk.com/demo/ik/stride_test.html
@kerynadcock2226
@kerynadcock2226 4 жыл бұрын
Dare I say: You're a genius young man! Thank you for sharing your innovative approaches.
@hi_its_jerry
@hi_its_jerry 2 жыл бұрын
i regret not watching this sooner.
@ashleywhite8888
@ashleywhite8888 4 жыл бұрын
Line of action > "Center of mass" I'll take dynamic over realistic, thank you.
@yadav-r
@yadav-r 2 жыл бұрын
Damn, this is gold stuff.
@jasonalen7459
@jasonalen7459 6 жыл бұрын
16:18 How that one friend plops onto the couch next to you when you say "pizza party"
@cheekymeeper
@cheekymeeper 5 жыл бұрын
Please forgive the potentially simple questions, my background isn't in game development, but I'm incredibly interested. Firstly, is he using any particular engine, or is it all something he's made? I understand many engines support frame interpolation, but some don't give much control over interpolation methods. I'm guessing he also does the sensing of obstacles using some kind of collision sphere surrounding the character which when something enters triggers the interpolation to the safety keyframe/s. Also, I've always wondered, how do games do foot placement for animations? As in, placing a foot correctly on the terrain below, changing step height and even body position dependent on surface. Thanks for any answers :)
@CloudlessStudio
@CloudlessStudio 12 күн бұрын
If you are making a platformer this is a must watch
Is Procedural Animation Worth it?
19:47
Benjamin Blodgett
Рет қаралды 83 М.
The Rain World Animation Process
29:17
GDC
Рет қаралды 368 М.
iPhone or Chocolate??
00:16
Hungry FAM
Рет қаралды 40 МЛН
АЗАРТНИК 4 |СЕЗОН 4 Серия
36:20
Inter Production
Рет қаралды 491 М.
Остановили аттракцион из-за дочки!
00:42
Victoria Portfolio
Рет қаралды 3,7 МЛН
The Best Animation Tricks of the Trade (For 2016)
34:55
A simple procedural animation technique
8:31
argonaut
Рет қаралды 388 М.
This Problem Changes Your Perspective On Game Dev
25:51
Jonas Tyroller
Рет қаралды 413 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,5 МЛН
How To Make A Game Alone
16:44
Thomas Brush
Рет қаралды 268 М.
The Strange Graphics Of LETHAL COMPANY
15:59
Acerola
Рет қаралды 856 М.
Rendering Organic Monsters
6:39
RujiK the Comatose
Рет қаралды 441 М.
You Don't Need a F-ing Publisher
33:32
GDC
Рет қаралды 486 М.
Procedural Running / Galloping in Minecraft
8:40
Cymaera
Рет қаралды 795 М.
Animation Bootcamp: 2018 Tricks of the Trade
31:10
GDC
Рет қаралды 43 М.
iPhone or Chocolate??
00:16
Hungry FAM
Рет қаралды 40 МЛН