[Music] obviously it's a massive spoiler warning you're gonna see not the entire end of the game but yeah towards the end of insight this happens the huddle a compound fully humanoid blob of muscle fat skin and bones a project spanning experiment involving constant iteration across several fields during the six years of production the hallways worked upon at any given moment from the beginning to the end almost all of plated have laid hands on it in some way or another and we are going to give you a peek at what makes this monstrosity the movement conceptualization that I did the physicality of the main body of the core
that lasted it the handling of auxilary attachments legs arms torsos that sound it and finally shading the beast lets me go and if you haven't seen the harlot before of course yeah this is the same video the harlot does things comes out of water presses through stuff and this goes on for a lengthy twenty or thirty minutes time I'm andreas Norman Cohen with and I'm the animator plated I was invited to plate it in 2011 to do the animations for inside and my first assignment was to do concept animations for this beautiful thing this is a drawing of a potato by Morton Thompson our lead artist and it is often referred to as Li huddle drawing in the company because through our production we would often
refer to this drawing when making decisions on modeling shading lighting shadowing and not just for the huddle but for the entire game it is visually distinctive but it doesn't show a lot of motion apart from what is naturally embedded in a picture and as an animator the first thing I thought about when I saw this was the demonized Bogart NACO that chases Aztecas around in the forest in the woods in Princess Mononoke its aggressive its violent but most importantly of all it morphs and recalibrates to sort of accommodate its mission so if it needs a lake or an arm at some point on its body it'll just spawn it another thing I couldn't stop
thinking about was the old physics driven stickiness game dish where you play this little squishy oily blob of something and it deforms and it's squeezes to kind of get through small gaps in the levels if you put arms and legs and general disgust on this you kind of get a charming little bouncy huddle another thing that I used as inspiration for the limps the arms and legs was crowd surfing in crowd surfing in the crowd there's a lot of hands and they sort of share a common goal some of them will they all want to move the crowd surfer so ever but some of them does that gently others try and keep the crowd surfer fixed in a certain position and some just wants to tear down the crowd surfer and this sort of mixture of motifs in a crowd is a great inspiration
for how the huddle actually is it's a large cluster of individuals with a common goal but with different motifs so I made this really quick rough huddle Rick it consists of it has four bones in the spine and it has about 20 power scattered around the surface of it it has six legs six arms no four arms three torsos and two bodies that are free-floating so I could pull limbs and torsos into the potato and stick them out again somewhere else if I needed it it's really quick to animate and there's no complicated chick to get in the way [Music] so here comes a bunch a couple of animations I did for concept before we
even started working on the huddle this is the harder first time standing up you can see it here it's actually done as early as late 2010 and it's it's all of these animations sort of drove the locomotive development of the hurdle in years to come and please disregard the rendering and the visuals of it the lighting and the quality of the videos it's just just movement these are the hurdles first steps Martin's the Anacin our lead sound designer was kind enough to put some of his sounds onto this chest from his elaborate recordings of oily naked people getting slapped with large pieces of meat I hope that sound on I was just gonna watch it again this is really
embarrassing for me because I don't really want to show these and missing my original plan was for the huddle to have a lot of idols for when there was no input from the audience from the player so when it was standing still the huddle could could have a lot of many activities for it to do in idle state and one of them being peeing peeing on itself and living in it and here's a potpourri of some simple idols I did there's some scratching switch in the league an internal conflict at the top some more scratching and some dog scratching and a bird landing at the top
which we actually implemented towards the end in the forest scene where the hardwood runs around there's birds landing on it so that's pretty cool six years before yeah he wants it to get back it's cute here the huddle lifts a large crate that is reproduced as well in inside there's a point where the huddle pulls a server a lot server out of the wall and brings it to the other side of the room so it can get on top and get over a tall ditch which is here you can see the scrambling behavior of the lakes my idea was that the lakes would sort of help in every way they could even though they didn't have ground contact or contact with the wall so you can see that back side Lakes they sort of they try to still add force to the hole and some paddling
and of course we would utilize the natural sweetness of the huddle so here it pushes itself through some narrow gap in the wall and sadly there's no gap like this in the game because we deleted it but he does push itself through a door and a hatch in the floor at some point in the game walking on ice of course if we needed it sadly we didn't make any ice in the game but we do have a newly mapped floor at some point and there's a spot in the game where you convert a CEO to a bloody mess and then the hole will skid around in the blood that remains yeah its nervous about ice for some weird reason here's one of the last animations I did it's an inspiration for the pendulum scene in
inside where the huddle kind of grabs onto a swinging crane and swings the crane back and forth to pull out a piece of wall to get through the wall and this animation tests a couple of things there's some squash and stretch in the beginning sports it again and a little jump to grab on to the to the hook there we talked about keeping or preserving the silhouette versus plausibility as you see I used only three arms at the top and if we were going for plausibility it would need 20 arms maybe so before I started working on the actual game I made 40 of these animations and they gave a sense of sort of where we were heading and I like to think that the animations sort of contributed as an inspiration for the team a spot on the horizon to kind of
aim for and needless to say the team out did these animations by miles the broad audience thinks that the heart'll consists of thousands upon thousands of animations strung together in sequence and that's not nor is it feasible every game developer might already know this so I didn't make the the huddle I just animated a bit on it before we actually did it and since it's not animated these guys had to use magic in my book to do it up next this lesser right hi my name is Lisa I am senior programmer at plated and I'm gonna do the next part and talk a little bit
about the hurdle core physics so as andreas just mentioned the huddle isn't really animated by conventional means it's animated through physics simulation so we have a skinned mesh at the end of the day and the bones of this mesh they're just bound to some some dynamic bodies stepped by the physics engine it's using a custom physics model developed by Thomas Cole and every frame and the hurdle called weeds and analyzes the world around it a ton of internal impulses are generated and it syncs this back constantly to the physics engine the Hodel core is kind of like a it's like a piece that you would say okay this is a central piece and it's central in a set of black of lastly independent systems and many of these are independently generating impulses that
effect the call so the end result is a system like a total system that is very ripe for emergent behavior something unexpected we tweaked and we tweaked an average week we spend a lot of time tweaking that the totality of this system so it would feel really good and be interesting to play with I would like to show you a short video just to start off with some debug overlays of the internal impulses and velocities in the core just to give you an idea of the amount of Xing forces [Music] [Music]
so there's there's a lot of stuff going on just lots of forces in there so let's go through the different components of the model the custom physics model and dissect it a bit so first of all we have n dynamic bodies and these are just rigid bodies with vehicle ID as attached to them and they're being they're governed by the physics engine we here n is 26 we have 26 of them in the huddle and they live in the physics engine then on top of these internal or the dynamic bodies we have same number of internal bones and these are structures that cache the various properties of the dynamic position velocity mass ceará and these bones are also responsible for the accumulation of internal impulses that are synced back to the physics and on
top of the internal bones we have an adjacency graph that establish edges between the closest neighbors in the sort of like the internal mesh of internal bones when the game boots up the dynamic bodies are positioned or placed on a sphere and the exercise stablished at this time then the edge configuration never changes every edge also has a target length and the target links deform all the time so every it acts as a spring between a pair of internal bones as I mentioned the target links continuously deform and they do this based on the scale and the total height of the of the core like the configuration of internal bones so you could imagine vertically stretching that initial sphere configuration to get a new target lines and yeah then finally
we have another pair of bones and these are two spine bones these are not just animated and they are not just driven by physics they're driven by logic states a little bit of animation and they are also updated every frame the interesting thing is that each of these spine bones they affect a cluster of the internal bones so the internal bones are given local positions towards a specific spine bone and so when you if you take the top spine bone and you apply talked or some type of impulse to it and it's moving it's gonna try and force surrounding internal bones to follow it so we can use these bone bones to model a sort of a macro level motion
of the internal bones essentially this is like skimming the physics so now we know a little bit more about the different components let's just take a little bit some more debug overlays here are the two spine bones drawn as coordinate frames and we have the internal mesh and I've added some colouring to the edges so we can see how they tense up and relax if they get right they are tense if they are relaxed they are growing purple and you can see how this is affecting or happening during a climb here is another type of overlay where the impulse is applied by the spine bones to the internal bones are colored by the spine bones that the impulse is originating from so the green vectors in this image is like okay these are impulses from the bottom spine bone
and the red vectors are impulses from the top spine bone so we can see how the spine bones affect the internal bones the spine of the hurdle generally speaking is pretty important so I'd like to talk a little bit more about that specifically reconfiguring the spine at runtime so the spine is also the hottest objector and the hurdle is to stand it wants the spine to face upwards but at the same time if you have played the game you may know the huddle tends to behave in a bit unpredictable way it tends to roll and fall a lot and hit most landings the spine ends up in a non vertical configuration so what do you about do about these situations how do we get up from this horizontal pose and
what we could do is rotate the spine to stand but maybe you agree that this looks a little bit silly so what we are doing is that we reconfigure the spine bones so that the internal structure the call will rise vertically and there are some small issues here so if we just do this if we just say okay here's a new spine configuration these are your new it's lengths to the internal mesh then we are going to get a pop because suddenly the constraints are all different and and for a few frames we are going to get very strong forces so that the springs can contract or expand to match the new configuration we are we work very hard to avoid all kinds of visible pops in the game - to get the expression that we
were going for and we used a lot of plants and in the same in this case we just we we just blended the its lengths to mask the pub and result was satisfying in pretty much all cases coming back up a little bit to surface level so the huddle is comprised of many types of systems you can make a division between these so there is the call and the call you can consider it the internal bones on top of the dynamic bodies the spine bones and the internal mesh the constraints that hold all this together then next to that you have a ton of logic states and even more auxiliary systems that all affect and feed into the hortal call as I mentioned the course the part that's responsible for holding the model together it was a
like a huge piece of work in its own right it maintains its lengths and drive spine bones it receives impulses from other system and then it talks to the engine and handles all of that control impulses on the other hand they come mainly from the logic states so what happens when you push the stick left or right that's driven by an entirely different piece of code that's of course it lost some thing about how the core is operating but all of these can be considered large systems in their own right some of them are really complex and they really deserve time on their own we don't have time for that today and then as I mentioned there is a ton of auxiliary systems visuals visual systems audio systems many of those and level-specific systems things just happen in one place in the game and all of those lovely details there are so many of those so we have the call and
then we have impulses coming from control States and internal states and systems and all sorts of pieces of code that all have their own internal state and at the end of the day they feed impulses into the call and then level scripts on top of that I mentioned that we have it was right for emergent behavior and I think it's maybe you can see this when we have such a huge network of impulses it becomes unpredictable and a bit emergent what I've talked about is just the core part of it and I'm gonna reiterate again there are so many more things to the huddle and also on the programming side so next up is Sir
hi I'm Sarah Mason I am a gameplay programmer I you usually do animation programming like the gameplay that handles playing of animations and I joined this hurdle thing pretty early when it was looking like that basically just a lot more buggy and the task was to add a visual a thin visual layer on top that would show some arms and legs to - so like see if it was feasible to do whatever and I was not allowed to touch the physics in any ways because that was changing constantly so it was pretty important to get that done early even though it sounds like polish because yeah as you can see here here we have a floating floating blob and in my
opinion this does not look very convincing it does not look like a big heavy mass it I would be really skeptic whether this thing could actually be shipped and made to work but of course here there the story is that this is the final hurdle this is the huddle that you see in the in the game the only thing I've done is make the legs invisible so to take my one of my favorite internet types there is a bird here some people say I can only see a little hyper kit playing with this dog after eating too much sugar and of course the only thing that's been done is that someone has drawn some very crude stick arms on the bird and all of a sudden it's a entirely different creature so if we could just draw some like stick legs to the huddle or something early on we would be able to see if this would actually be convincing and I think this looks a lot more convention didn't bend things and
and the other one and it's the same thing just with fruit legs drawn on it so that was my job so this is the huddle as it looks in the end game and it's made up of some different parts on some of those poles that we saw just before we have like a mesh we put on a mesh it's actually only in the front side the back side is just empty because we're never seeing backside and on top of that mesh we add in this case six legs that they are added to some of the physics balls at the bottom of the huddle then we add six arms at the top the top left one is actually a leg but it is behaving like an arm and they are always there and they're there to have a good silhouette and if the huddle turns around they reconfigure themselves so they are always sitting kind of in that way and then we have a lot of just motion on the front a lot of body parts sticking out that we should animate to make it look
alive and responsive and then on top of that we have like several dynamic arms that are not on this picture because they are normally hidden inside the huddle and they can shoot out and assist the huddle in grabbing stuff if if that's needed okay I'll start off with the the blue ones the purely visual body parts in this animation here we can see the huddle banging into a ball and we see all those arms and and heads and things on the front and initially we simply did that by attaching some rectal meshes and just gluing them on and then it would look like that for a long time in the end we had to switch them out with some custom-made Springs because of performance reasons and when we did that we also had to make a system where they could be tracked into the part of the huddle if you got near a wall you can see the head and arms on on the left I retract here we have to do that because when we remove the rector's we also remove the collision so they would clip through everything if we didn't retract them we could also with this spring's
that we made we added some small forces on the spring so let the bodies would squirm and and swirl by themselves so it doesn't look like a unconscious body parts but actually like they're live and the heads are turning and looking around but that's that's actually it's just some rector's put on top of the mesh so the next thing here's here's when it starts getting interesting it's with the legs and the task was as you saw the pour the hot little puddle was floating above the ground and the task was to just add Lakes to make it look like was running instead I was not messing with the physics it was still floating but the legs would make it appear to be running so and what people always say is like wow didn't use a lot of animation for that and this is where I'm a bit embarrassed because I'm standing here GDC and talking about this thing and it's so simple you could all do it these are all the animations I'm using like we have for running animations on top the two on the left is for running forward
the two on the right is actually for running backwards they will be played in we were in Reverse when the huddle is animating then we had one animation for when the Harless tangling over a word like a pit and then two for when it's falling and that is that is all we're using so yeah here's the algorithm for it we have the this green circle here that's the the huddle pole that we attached the next to like one of those physics balls that Lisa told you about the the white spot is the point where we choose that this leg is going to be sitting when we shoot a ray down so find the ground so that's the yellow spot on the button and we can then play between the two running animations the high and the low running animation like relay in relation to how far we are from the ground so that's just setting a plane value between two animations then we can use the the velocity of the physics body that we are attached to and we can just
directly map that to the run cycle animation speed and after that we can as a set blend between different cycles for flavor the forward running or the backward running in this case and that's it profit we're done know except of course there's still a little bit more like for instance when you are running and all of a sudden you stop then the animation will be in some arbitrary position and if it's in the air and no one is standing with the feet in the air unless they are guru so in that case we could blend into a post in the animation where the food is on the ground and also the legs should be synced differently when the huddle is standing still the leg should be together because that what most people do but when it's walking it should they should be as far apart in the animation as possible because people don't jump normally they tend to walk it can also gallop it can run fast and when it does that we take the animations and make them common like - - - and so
the synchronization is like 25% apart when it's galloping also the huddle colocation is slide as andreas showed on the ice and it's actually pretty easy to make it slide with the system because you can just freeze the animation then it slides on the ground instead of animating and then of course if the hurdle runs over an edge we need to have some systems to make the lakes tangled in the right way and hundreds of other tweaks along the way like generally we tweaked the the huddle as much as we could for the gameplay we needed and if we couldn't swing it enough we removed the gameplay and made some other gameplay where the system worked that's a pretty nice way of doing games I guess I think so here's an example it's running back and forth you can see the white line is the raycast that will crown the fruit the red line is the the velocity of the physics object and then it sets the animation speed and then you see the animation just running back and
forth and being rounded nice that way here's an example with the sliding I love this place this is my favorite place in the game the the floor is slippery so the huddle will just slide back and forth actually the physics here are not at all different from what we're seeing the rest of the game the only thing we're doing is we are like stopping the animation when we're taking turns so the feet will slide on the ground and they will play a slight sound while it is happening so that's I think that's a pretty nice effect that was a little bit of force feedback from me normally as I say that didn't search the physics but when we are running what we're doing is whenever a foot is being planted we send up a little shockwave of impulses up the body of the huddle simply to make it look more like you know an elephant with a lot of blubbery muscles that yeah let's shake when it
takes the steps it's pretty difficult to see actually but when you're playing it it makes a lot of difference it does make it feel more like a human or not a human body as like an animal instead of just something translating back and forth there are a few other places where I could add some impulses to the physics when the heart is grabbing things and moving around with a box sometimes the box would get too far away from an arm and then I could allow the the huddled bones - so like leach out for for that box or pull the Box begging also when the huddle is is pulling in in the server or hanging from the train I could push a little huddle post tool to make it like more likely to look good but generally this is the only real place I use physics feedback okay the arms we have six arms they are supposed to touch
and grab anything that is interesting to touch and grab and then we have the dynamic arms that get spun out from the center and the same question is also you have you've used a ton of animation right mm-hmm in this case and we actually used some more because we have all these idle animations 6-iron animations so yeah that's a lot of animations right there well it's not really but those are the animations that play when the Heartless just standing still and doing nothing and if it's running around we add some like forces to them to make them a little bit rectally but generally that's what you're seeing and then this slide we have some other images and top ones are for when the huddle is in pain if someone hits it and the middle ones are when it reaches out for something but it can't really reach it then it can so like try to reach it and the two Parton ones are the ones that were using the most they're the crab animation which is pretty much used like the legs that is
an animation where I can scrub back and forth and the play position so have it grabs things at different lengths from it and then the retract animation that is an animation of the place whenever one of those dynamic arms that you can spawn gets tired of being alive and we just pulled back into the to the belly so here here we're grabbing a box and we have no arms in this case so the box is just floating around this is a physics model that we made for for grabbing stuff and this is again the model that I'm supposed to put some arms on so make it look believable so I've done it here some arms was a little bit of debug drawing on top to prep the box and this is again it's the same physics the arms are just visual flavor on top of it so what we're doing is we have this we have an arm and then we introduce something called an aim point this is a point that the arm really really wants to reach so every arm has
one of these points and the the point is autonomous it just floats around the huddle and makes decisions of where wants to be so that the arm will point in a nice direction and the arm on the other hand it will try to reach it and if the poet ever gets close enough it will play a grep animation shootout and attach itself to the point until the point gets far away and then the arm will let go and go to idle or if it's it was an atomic arm it will be tracked into the center of the huddle then we have this this is the arm manager and she is responsible of tracking interesting objects in the scene and assign grab objects that aim objects points to that object so for instance we have this this crate they are managing it takes it and says wait I'm going to create these five interesting points on the crate and then I'm going to assign this aim point to one of those rep points and when you so then so as like we saw that the physics system would
take the crate and like put it in next to the huddle that arm will get close enough and it will then grab on to the crate it can also spawn these extra arms because at any time we want to have at least two or three arms holding a crate otherwise it looks very floaty and unreal and they're not enough static arm so that so generally when we are holding on to crates we have a lot of extra arms being shot out to grab the traits we can see here here's an example where the huddle wants to climb over this crate and as it's clamped now you can see some of those points that's one there and another one goes down and attaches themselves to the top of the crate and here's under the lift and other point coming down and that would let who make their arms shoot out and and and reach the trade thing we just see it again see look at the the point just above the crate that's a point that comes here and attaches and another point comes here and attaches to the trade and then on
the left side at the point that attaches just to make the harder like feel the stuff that is climbing on and it makes it a lot more alive here we are grabbing on to a crate we are kind of like moving around and you can see a lot of arms getting in and reaching them and all those and emic arms when they have to let go then the grab on points they'll just shoot away as you see in the left of the picture now there's a lot of points that just shoots out and that means that the dynamic arms can do longer reach and they will just retract that was the system so generally that is it that is how the huddle grabs onto stuff all these arms and legs are just objects they are not a part of the full huddle model model they're just their own meshes that we add runtime so normally that would look really bad with a lot of clipping but luckily for that we have Megan who can do magic with rendering so that's why he took over
[Music] so hi I'm Michael on inside I mostly did visual effects like smoke stacks and splashes and well moat actually most of my time I made and maintained water over the game but I got to do something fun I mean this guy I did surface appearance on it and most importantly a sunset I'm trying to make it look like more than the sum of its parts are you trying to glue these things together with a bit of shade of glue so yeah that's together what that looks like this is as he looks in the final game and we tried a bunch of things with this guy a bunch of us tried a bunch of things I tried a bunch of things in the beginning and Leigh has tried a bunch of things with like physical balls that were rotating around and our graphics program a guru also tried making a huddle shader and after all these experiments were very close to really
needing something so yeah I got to work on on a thing here but before I did a bunch of people started throwing some inspirational material at me I gathered a little bit of my own but the things that I was generally sent by the more artistically illiterate people at the company or things like this so these are some sculptures by John Isaac's I don't know if you can tell how we're inspired by them but they've got these nice folds and lumps and stuff but the color is yeah it could be better so we've got this these paintings by Rembrandt little known indie dude but what's nice about these is even though it's just drawing skin even though is just painting skin he's got a whole palette going on here it's generally just never hitting those pick tones it's just all over with green and blue and red and yellow but somehow it comes together two books Kinsey and right in between these two we've got paintings by Jenny Saville which I don't know how if you can see this but they're
kind of in the middle they're like the colorful paintings put them with lumps right so the this was sort of the main inspiration for the texture job that actually andreas ended up doing the main texture of it but yeah here it is again now like like it necks and said a bunch of arms and legs that we need to glue in there so let's start with the most obvious part of the shadow group which is normals so in the beginning of our normal recipe we've got it looking like this it's a little bit hard edge it's a little bit it's a little bit dull so let's do something for these normals you think normal mapping right no I don't like those so what we've got here is just the what you're seeing is just the regular normal Hudl normals that come from the model and that's what the normal looks like inside of max with some debug and yeah it's just too hard so that's actually instead of doing normal mapping let's do normal unmapped
instead so here we've got the polar opposite it just looks like a MIDI soap bar now that's perfect right no so we need to find somewhere in between these two entities so let's figure out we could do that we've got over on the far left we've got the the huddle normals again in the middle we've got a sphere and if we try to project the normals as a sphere onto the huddle yeah that's sort of what you're seeing here with these soft ellipsoid normals except they're just done in the shader instead but yeah something in between these things would be nice so on comes a blend factor and this is what the benefactor looks like what it likes to factor is to show detail around the edges where we are ok with showing detail but keep it vague in the middle very vague and it also likes to show the detail in the rigid bodies that are attached to it the spring rigid bodies but most importantly it likes to blend together the axillary
bodies so it blends from the hard normals at the tip of the feet and the tip of the fingers into the soft normals at the elbow and the thighs which ends up looking like this so if you just look at the normal buffer at least that's where it's most obvious you can see the legs going from looking very rock so that we like to look much more integrated into the mesh and on the lit renderer you can see that it's now verified the center a little bit Oh without looking unnatural and soap-like that's nice anyways these are these are just recipes lights them Burling in here I've got a code down below I'm not gonna explain it in detail but if some of them more technically minded out there on the nose from greater details you can look into them so after normals comes lighting right so at the bottom of the lighting hierarchy we've got ambient lighting a few of our characters and NPCs actually all of them have an ambient term so you can see them in the dark it also helps them stand out from the rest of the environment and the huddle is no exception this is the
huddle with just straight ambient and no occlusion whatsoever it looks kind of flat you can you can see some of the diffuse albedo details but otherwise it's yes it's flat right so let's have a bit of Rouge into that one the first and least obvious part of the occlusion hierarchy are these limb embody decals as I call them or actually AO decals we use them also on characters like the the boy and any NPC the albinos and generally just most characters in the game you could think of them like point lights except instead of adding light they subtracted on multiply it out it's pretty simple and we covered it in a different talk last year at JC it's on the bolt next up and much more obvious in the in the occlusion hierarchy is a texture right so we've got a just a baked creased texture that sort of tries to give it a little bit more shape and definition again make it less vague even though I just spend a bunch of time
became more vague anyway the sixth should look something like this it's just a tint texture on top of the existing ambient term and that's it most important part of the occlusion hierarchy is this vertical gradient that's going from top to bottom we don't use on any other entities but for a big entity like the huddle here it's very important to have self occlusion going from top to bottom so if you look at just the tops of the far-right and the one next to it you can see that the tops are equally lit but the bottom the far-right one is very you know it's very dark on the bottom so it really helps it ground itself to the ground and this is what that normal gradient looks like it's the jerries just using the Y normal as occlusion nothing else well actually it's a bit of a mix between this anyways it's in the code so after ambient what's next in the hierarchy of obviously some sort of diffuse siding right so the diffuse styling has a bunch of requirements most most importantly just not looking boring but it also
needed to not burn out when there are very bright lights because we like to light our characters very brightly put them in the spotlight and to avoid this burning out thing what we wanted to do is tone map it right so the tone map that we use for the huddle is just this exponentially decay into a map which came for free actually actually was cheaper than free because we happen to be rendering in these LDR pass which happens to just store light as exponential in with multiply blend mode so all we do to get this tone map is not unwind it and that's how we get it next up I like grim lights so we've got this thin little rim light around the edge that just helps separate it from the background even more and not that it's totally painfully obvious already but it also helps to clue it in with the boy because the boy also has the same room light thing going for all the NPC's do and rims are just nice you know I'm
saying it's done very simply by having if you have to if you have a depth buffer of the huddle and you sample it with an offset with the what's it called view normals and subtract those two normals from each other you get this so cool depth and all we do is just amplify the existing incoming lighting with that Sobel effect next up more rims right the intuition for lighting the huddle is that it looks a lot better to light it from the back and from the front just because it's less you know you get to see it let's just nice to keep it slightly vague even though here this is one of those cases where it's not lit from the back it's it from the side we would like to imply that is it from the back so this sort of just amplifies the light coming from the back side rather than the one coming from the front side I ended up calling it roughness because I'm terrible at naming but just to show what my intuition was with that name if you take a regular lambertian term
and turn it into a ornate term it sort of gets that edgy look around the yeah it just so that's why I didn't that being called that and finally it needs to be tuna five so the boy and other NPCs again are more tuna characters so we needed this guy to have the same sort of hard edge lighting we tried the straight-up to ramp this with a hard cutoff but it ended up looking a little bit wacky on a big model like this one so we ended up using a much smoother approach that just ends up kind of contrast enhancing the thing a little bit the only special thing we do other than add the smooth step to it is faded away once we're getting away from lights because we don't like to have this effect where you're moving away from a light and then it's lit little bit not lit not that not that we like to kind of move it off after a while anyways that's enough of boring diffuse lighting next up is specular well here there's no specular there are some specular this is just regular boring Phong specular no no tricks or well
there is one trick this is this fung specular is a lie so total lie and it's also alive it looks a little bit like lubricant in this case so it would be nice if it looked a little bit more like skin when I made this thing one of Mary who's sitting next to me one of our artists said it would be nice if it looked a little bit more like Saturday night chicken roast so we added a chicken skin normalmap to it which is just this normal map of dots and veins and stuff and I'm only using this on the specular it's used nowhere else because like I said I like to unnormal map things usually so what did I mean with this specular is a lie well in insight we don't actually have specular in the regular been rendering pipeline we just have diffused lights but then we also have dedicated specular lights that we use for just making things look wet or shiny specifically just gives us a lot more control but we didn't want to add a ton of specular lights to the huddle and
we always wanted it to look a little bit sweaty at any given time so what we have is basically a fake lighting direction and it looks something like this we just have lights fake specular lights coming in from the back and the top and the sides at any given time in shader and the way that we make sure that it's only shown when it's actually lit it's just multiplied by the incoming diffusion ID so you use the regular lighting as a mask for the figs peak of the light and Bob's your uncle right one more lightning thing I promise just one more so subsurface scattering is the thing that can make not many things look more meaty and maybe more gross here there's none of it and here there's some of it so this is a really really naive speck subsurface scattering it's really just a a blur of the incoming lighting buffer from the pre path deferred that's being
sampled four times we sample it four times in a spiral pattern and gathering the samples and summarize the valid samples and color them red and blend them in with touch and what do I mean by valid sample well we did have some problems with just blurring the light because you could have a hand that's casting subsurface scattering onto the chest or the other way around which tends to not look so good and also a little bit wrong so we tested against the depth buffer just making sure that we don't go too far away off-center and we also because we happen to get some problems where the bright floor could make things look more subsurface scattering and soapy we also test up against a is this the huddle stencil buffer for each sample and but yeah that's that's basically it's just pretty happy right now do you know that feeling when you're about a few months away from constant complete but you just have this killer idea you just want to do it so here
we've got here we've got the huddle with just the regular diffuse texture and this is as he looks in the final cafeteria and I thought it would be nice if we could maybe you know amp this up a little bit in certain cases so on the right hand side it's been it's a little bit more bloody on the right side it's the blues and the yellows and greens are much more pronounced in it and this happened because well it happens over the course of the game that the audience of the player probably ends up abusing the huttle a little bit and this effect happens specifically because I started beating up with a crane and then it's though that gets bruised over time it's not nice again here this totally not crispy and on the right-hand side we've gathered looking a little bit bacony looks like it might smell good that's because I hung it over an open oven for a little bit don't know why you'd do this yeah over here we've got
the huddle in it's great innocence yeah so all these effects are using these masking systems that I came up with which are just these very low-frequency masks to do these weird effects and we've got the Bruce mask and here we've got the Bern mask these masks are all using the same technique even the CEO mask and the way that they're done you can see that they're very very low-frequency it's just really to localize them a little bit the way that they're done is as I told you guys that it's using a physics simulation and it's got 26 rigid bodies so to do this effect I picked up my ninth favorite rigid bodies which happened to be an equal six around the rim and three in the center and I just put my ear down to them with a script and listen for any sort of activity that I'm interested in and the
activity I was interested in was in case of a collision we just add a little bit of damage to that bone you know to bruise it up a little bit in case of the inter is a trigger or well a bonfire we add a little bit more burn eNOS and in the case that the CEO splats on the ground outside of his office we find any single one of these bones that's facing downwards toward the ground and we slide them up and then if we have this on the CPU side on the GPU we can then gather up these results into a mask we do I did this by just hard coding where the bones are in UV space with number in code and did it until it looked right here we see the IDS just exposed as random colors that I thought looked nice and we just take for each of these bones we add in their you know their damage data and multiply it by the local little splotch around where the bone is and then we have a bruise mask that we can
send from the vertex shader and we can fade in our effects and the effects are pretty simple we're pretty simple to do here's the regular diffuse mask before any abuse is done by the audience and then with a regular tint we can take this well it's not really subtle now because I I emptied up a little bit so you guys can see better but it amps up a lot more once we started bruising it so that's what that looks like it's just a regular tint and then the same thing goes for the perm mask except in this case there's a little bit of a dissolve effect going on because of the intuition that they can burns in a dissolve mask and finally the blood splatter which is very dis all V and as you can see it really favors to be bloody around the edges rather than the center it really just likes to put these little bloody dots in the center rather than its pledges and the blood is not using any sort of texture color it's just the color red that's being put on there and
that's your hollow so it took a lot of weird iterations and and stuff and in the end of course I didn't make the huddle these guys did thank you very much [Applause]
Auto-generated captions from YouTube — names and numbers may be misheard.
Distilling the key insights…
Game Developers Conference · 2026
Thomas Brush · 2026
Comments