The Rain World Animation Process

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

That's just awesome

👍︎︎ 1 👤︎︎ u/Araly74 📅︎︎ Jul 16 2017 🗫︎ replies
Captions
yeah hello everyone we are July awesome and James there in the lanes Larry and we do rain world I'm on creature design creature animation AI and general programming for the project in game I'm doing level design and audio work and general narrative construction and we're going to talk about procedural animation yeah in rain rules so we thought to start things off a little bit and set the context for you guys we will play a video there we go [Music] so what is rainbow so what is rain world rain world is a survival action platformer or will you play that cute little white lug cat creature and you're kind of existing in this large open world ecosystem of creature of AI creatures and all of the AI creatures the intention for us is so the they have as much agency as the player character so they are moving around the world independently they're hunting they're searching for food they're afraid of things and all the creatures kind of exist perpetually on screen as well as off screen so you can come into a room for instance and you can see some interaction happening that's been going on for like 20 minutes and you just sort of stumble upon it yeah the gameplay is kind of learning to navigate through that ecosystem how the creatures of the world interact what they want etc and sort of finding your way through it as sort of like an underpowered little little creature and of course avoiding the death rate yes so procedural animation is an important part of reign world and procedural animation as I will talk about today is basically animation that does not happen by drawing frame by frame and also not by rigging a character and like replaying an animation but rather it's interactive code informing how the visuals will move so if you look at some of these creatures definitely this one here we call the vulture it's sort of like a large flying predator in brain world which can switch between modes you see it can like climb like a monkey and then fly like a bird and this is this is the concept that occurs quite a lot in the rain' world like the dual nature creature which can switch between modes etc the fixed one is the centipede which are completely disgusting you can tell they're a large bug like creatures they kind of work with some sort of generalized sense clockwork Steven Souza mall sort of moving at the same time and you've got the sort of cool inverse kinematics in the leg action I think they're disgusting so okay here we have the reindeer and it's called it's a very large creature which is not hostile but friendly or indifferent I guess to the character and you can climb in its antlers and bounce down at the bottom of the screen we have the worm graft which is very hostile but also securely anchored to the ground so unless you fall down there it won't be a problem you've cute little guys are called lantern life and they're dumb but they're the very fear and you can find them in dark environments and as you see you can use them as a source of like by illumination if you don't scare them off and this one here is the Leviathan it's a huge sort of mixture of an eel and a centipede and a whale I guess which will gobble you up if you swim too deep and too carelessly into the water or sub rain world and these guys are some of my favorites these are called me rose birds they're like squawking noise the obnoxious half mechanical chicken you can sort of see on their leg there's kind of like that sort of actuators in the legs but yeah they kind of hunt in packs and make like a loud racket you're lucky that gifts don't have sound cuz it's obnoxious these guys are the lizard and that's sort of like the the most reoccurring antagonist in rain world they love the taste of slug cat which is the main character the lizards come in different colors so the ones here are yellow but we also have like the white one for example which can blend into its background like a chameleon and stay these guys comes in packs as you can see they like to surround you and work cooperatively and this one right here is called the scavenger it's sort of the jewel of the rain world ai and it's supposed to be equal to the player character in every way far as movement it can use tools it can as you can see it's perfectly comfortable on poles or on flat ground and yeah they're pretty intelligent and you can see they kind of they look like they know what's going on and that's something that we've been working hard on go for it so why is procedural animation important to reign world so we're trying to create the appearance of like a large natural open world ecosystem and what procedural animation allows us to do is create a sense of agency and believability for all of the individual creatures because with procedural animation we can create a scenario where the AI behavior equals the behavior that you're seeing in the game for instance as you can see in some of the gifts wouldn't of when a lizard is hunting or something like that you can see it's the you you can understand its motivations when it can't get directly to you it gets visibly frustrated because it's trying to like navigate around the environment and that's cool because the player is then able to sort of project into that and project personality into that so you have you have this situation where you have like the player will see a creature do something interesting that hasn't isn't like necessarily a scripted behavior and the player will infer from what's going on they'll say like oh this creature is mad at me now that's not really the case but because we have all of the ingredients visible it makes this kind of like effect of personality for the individual creatures and that's a lot of fun it's different than if you were to have for instance like a black box scenario where we have a robot doing something and you can't like infer anything from its behavior because it just stands there and then something happens and it moves with the procedural animation you have a visible cause and effect which is really interesting yes so a little bit about the technique how do we do this let's take a look here so one important aspect of how I animate these creatures is a separation of the statistics simulation from the cosmetics as you can see on the left side that's a more simple simulation when it comes to the actual like point per tentacle this this creature here is the tentacle creature but coming out of the wall are like trying to grab on to things and pull them back maybe I should explain a little bit what you're looking at here the thin red lines that's the paw finding where they like try to find their way towards their goal in the terrain the semi-transparent like squarey blocky lines that's sort of like the a eyes understanding of the tile matrix because the terrain and rain world is tile-based making it not try to just like grab through a solid wall but be able to understand that it should grab around it and then you have then you have work looks like beads connected by sticks right and that's the actual 2d float vector physics simulation which is quite simple it's basically as like locking points at a certain distance so if they're further away from each other they are moved towards each other and vice versa is that important why is it important to separate the physics in the cosmic yep that's important for two reasons one of them is performance as Jane said earlier what we do in rain world is sort of like a perpetually existing world so stuff is going on even when you cannot see it creatures are interacting with each other when you even when you can't see it meaning that there might be many creatures active at the same time times hundreds probably probably sometimes hundreds yeah and what's important to note here is that these two systems they have a one-way dependence so like the complex cosmetics are dependent on the simple physics simulation but not the other way around meaning that when the creature is not on screen I can do only the thing on the left-hand side I don't need to do that saving saving processing cycles and also so the the dangly bit on the right-hand side those are fairly processor intensive yeah definitely but they don't they don't need to happen unless you're actually doing contrary because they don't they don't inform anything that has to do with how it interacts with other objects another important aspect of this is control the simple the simple simulation on the left-hand side is easy for me to tune and work with and get to behave the way I want and then I can just put that the cosmetic layer on top without having to worry about some sort about it's affecting the working behavior I already have set up so if I were to actually like create a physics simulation which had all of these dangly little hanging tentacle bits that might like pose at the main central for example waist down or it might like get into a bubbly state or become otherwise unstable but because the dependence is only one way I can always be sure that it will behave that way that I've made it to behave pragmatist first of all I guess I have to say that I'm coming as programming from an artist's angle rather than the programmers angle so art is the goal and programming is the means I guess I'm a self-taught programmer more or less and sort of like everything I do and everything I learn within programming is always about getting to the art result so I have pragmatism in the way that I know what I wanted to look like I know whether what I wanted to feel like and then the programming is just about like getting in the best way possible it's not about building perfect programming solutions that are that have like purity of implementation it's about getting to their desired result faking it is easier than making it that sort of the same thing like if I can choose between making a perfectly perfectly correct physics simulation of some complex phenomena or just like make it look I will go for the latter so basically you could say that it's like an illusionist approach it's a smoke and mirrors approach you don't have to pull a rabbit out of a hat so yeah yeah it's better it's way harder to make a rabbit actually appear in the Hat way of having to look like that and if it's the same end result all the better to go with the easier solution so this is another very important aspect of what's going on which is that AI is animation in rain world you cannot really draw a line between the two basically the AI has like the overarching unit which will make decisions and those decisions are generally along the lines of where should I go where should I move to but then you also have the locomotion AI and the locomotion AI is equally is equally if equally animation as it is AI so to speak so locomotion AI would be about where to put my limbs how to orient myself how to like basically move through the world and that entire thing is informed by the environment around the creature so you might see for example that this vulture right here at one point it makes like a wing flap there you go and that's that's not an animation I implement it I didn't tell it to do that in that specific situation or at that specific time that's the locomotion AI that's figured out that maybe it's lost both both its grasps or it didn't have like an ideal position to grab on to so instead of switching to the flying motion and then back again let's make a rain world creature what are we going to make yeah what are we going to make we're going to make a rain world creature called the daddy longlegs which is disgusting like as a giant ball of tentacles and it's kind of like it's sort of an ideal rain rolled creature because it's really messy and like it stumbles around yeah it was lots of tentacles very very many tentacles you're about to see very many times I could start with me start with one tentacle I think I think I've described it as in-between spider and spider's web so let's go what's that what's that the blob the blob you looking thing that's what's going to be the body of the spider thing and then we have the little red dot which is the goal it's traveling towards and with the red line the red line is a line throwing but those two things are connected so basically the AI will tell that where the little red gold dot will be I think maybe when recording this one I actually had it hooked up to the mouse but later it will be the AI and then I use an a-star paw finding algorithm to find my way there through the terrain and at this point it's very simple it's basically like a like a car and a racing game right it's like a physics object that is just like moving towards its destination as an even speed but we don't want a car we want something that looks like a a living organic creature and preferably a gross one preferably a gross one yeah yeah so we put some legs on it you guys should remember these is basically the same tentacles as you saw in the plane those in the wall right yep so this this works exactly the same way the the squarish tentacles keep track of the grid matrix making sure for sure that they don't go food throwing and then you have the statistics simulation which is sort of like where the tentacles actually are so look at the beads and sticks because that's that's where the tentacle is actually asked the other thing is more like its brain start to speak so we want this creature to climb around in the environment and how do we do that what is climbing climbing is basically like making a decision over and over and that position is where should I grab where should I release there you live if you're climbing a tree you look upwards and you're you're selecting a branch and you're grabbing it and you're pulling yourself up and you're selecting a new one and you do that over and over and we want this creature to do the same thing so what we're seeing here is a breakdown of one individual leg later we will as promised put many legs on this thing but right now there's only one leg and the problem to solve is where to grab on you also recognize the blob and the goal those are the same things as earlier and they're red line there is leg and then I have drawn three dots and those three dots are the system for determining where to grab so the general one is the ideal grab position if every single position in the room was a valid grab position that's where I would grab however you kind of grab on just in air so we have to figure something out to get an actual valid grab position which is on terrain that's what we are using the green dots for the temporary go so basically how that works is that I have a method set up which can grade every single coordinate on the with a score for how good a grab position is this specific coordinate and if you're in thin air that's an awful grab position because you cannot grab onto thin air but if it's on terrain that's a valid grab position so so safe safe isn't in air then I might give it like minus infinity grab points but if it's on actual terrain then I wanted to have a higher score the closer it is to the ideal position so what's happened is that every single frame I pick a random position in the room or a random position close to the creature and I check the score of that one and I check the score of my current temporary position and if the new one is better I switch them meaning that over the course of several frames it will sort of like gravitate towards a better position why not just check every position and then pick the best one because that's that very intense on the processor this way it becomes easier and you might not always get the absolute ideal position but you will get a good ish one and I actually think that that's a little bit of like random Ness to it add some character to the to the animations that's not necessarily a bad thing and then we have the blue dot which is the actual current go position so that's where the tentacle is moving towards so how does this become a grabbing motion basically the body is moving upwards and the leg is moving towards the blue dot and when it gets there it latches on and then the body continues moving and when the leg is too far behind it it's releases and checks where is the current green dot where's the current like temporary goal position and it goes there it grabs on the body continues its releases and you have it you have the climbing we let's see it in action let's see it in action here we go so there's nothing on here you haven't seen yet but there's quite a lot of stuff on here so I might explain a little bit there's the tentacles and AI tentacles and the paw finding and then you see the yellow dots which are the ideal drab positions so if you're climbing in a specific direction you will want to put your limbs forward in that direction right that's why they are sort of like in front of the creature towards general vector how does it look like it looks like it's heavy how has that happened yeah that's another interesting thing and that's a callback to faking it easier than making it because instead of doing actual rope physics simulations on all of these tentacles with elasticity etcetera which would be way harder than I could handle it's way above my level I do something that's much simpler which is that in every single frame I count the number of tentacles that are contacting terrain and the fewer tentacles that are contacting terrain the more the body is affected by gravity and the more tentacles that are contacting terrain that foster the body is allowed to move towards its goal so in the in sort of like the free fall case where you don't have any grasps at all on the terrain you will have 100% gravity zero percent like moving towards where you want to go us all and in the opposite case where every tentacle is grabbing gravity won't be an issue at all and instead you get a very efficient movement however in in the actual environment you seldom have either of those two extremes you have like a few tentacles grabbing on and a few tentacles searching for new positions and that makes it so that it's sort of like occasionally wait wait weighted down and occasionally moving forward quickly and because the I correlate these two things like you can see that's when it's grabbing it's able to move quickly and when it's not grabbing it's less efficient it actually looks like this creature is supporting itself by the tentacles which is not at all the case it's if it's floating through there but the illusion is created of being supported by the tentacle let's see how it looks there's some cosmetic tea too so here we go and this is what the creature sort of looks like this is the cosmetic layer so that's the same thing as you saw with the two gifts next to each other right where there's like the previous one you saw that's what's going on logically and this is the cosmetic layer which is sort of like a paper doll just pasted on top of the logic which is informed by where the physics objects are in physics objects are but not necessarily entirely common like the tentacles are curvy rather than jagged yeah exactly like the previous tentacles were jagged but curious like smooth them out a little bit etc and there are more tentacles here actually like some dead gangly tentacles that in fact don't do anything in the game like they cannot interact with any other objects but because they look the same as the actual tentacles it's hard to tell which is which so it just becomes like one unit one gross unit you can see it hunt right yeah thank you you go in the game environment so this creature here is blind it's something by sound so if you look when I hit the ground there it's actually like reacting and when it shares the sound it will send the tentacle over there too to feel for what was doing it and then it's grabbing on to me so this technique comes from my specific circumstances quite a lot I'm I'm the artist I'm the designer and I'm the programmer and that means that I can sort of like work with the technical restrictions and find a sweet spot that works and this also the result I'm going for basically instead of having to as a programmer go over to the artist that can tell them this is not possible to implement I can just like soft I can have like a soft approach where I just look for the compromise that is the best also these creatures of fantasy creatures you know no one has seen them in real life so you don't know what they're supposed to move move like so their movement being a little bit wonky is you have to give them the benefit of the doubt basically so if you were to do a human or a horse or something like yeah it would be very obviously very difficult but if it's a tentacle creature that's what a tentacle creature network no one else can seen them outside of rain world so what can other people take away from this other people not working under my extremely specific circumstances I would say that on the spectrum between art and programming there are actually many design solutions that might not be accessible if you're an artist or a programmer only even if you're an incredibly good artist and an incredibly good programmer on the team you might miss out on solutions that are in between art and programming so for that reason I would encourage artists to learn programming lots of programming more programming than you're comfortable with it's worth it it's not as hard as it looks and I would also like to encourage programmers to learn arts learn what motivates artists what are artists ideas what is important to artists the workflow as well and the workflow definitely so you can sort of like neat off way cool so that's our little chat and for listening if you guys have any questions please let us know is there a microphone if not we're going to be hanging out so come grab there there's a mic right here if anyone has questions but there are only a few minutes until we need to wrap yeah thank you come grab us at the bar all right yeah make sure oh go ahead yeah what physics entropy is underneath sorry what's the use acidic tension under the simulation who did you write all your own physics is home-brewed it's just yep a weird Roga sort of home eight days cool that's great thanks anybody else ah yeah right now right now it's PC Windu consoles and we're going to put it as far and wide as possible because you know we have five years of sunk time so as far as we can push it we can push it thanks guys
Info
Channel: GDC
Views: 160,151
Rating: undefined out of 5
Keywords: gdc, talk, panel, game, games, gaming, development, hd, design, rainworld, steam, metroidvania, game development, game animation
Id: sVntwsrjNe4
Channel Id: undefined
Length: 29min 17sec (1757 seconds)
Published: Sat Jul 15 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.