Blueprint Creating a 2D Side-Scroller | 02 | Live Training | Unreal Engine

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

You can find Part 1 here

👍︎︎ 3 👤︎︎ u/ZioYuri78 📅︎︎ Jun 13 2015 🗫︎ replies
Captions
everybody Allen noon here and today we're going to be picking up with part two of creating a 2-d retro styled platformer so yeah this is part two we had begun this project a few weeks back and maybe the best thing to do is kind of walk back through what we accomplished the first time and pick it up from there so we started out with the 2d side-scrolling blueprint and we went ahead then and added this demo folder and we started creating our own content we created our own character based off of the original template let's go ahead and open him up because that's where the most of the action happens here all right so already I think there's some organization we're going to want to do but let's start with the movement down here so if you remember we're taking movement in we're adding movement to the character movement component there and then we're calling this custom event called update animation which will jump to in a second but then we're reading the axis value that comes on in and we're comparing that to the value zero and then determining this will give us our facing basically whether we're facing left or right and it will set the control rotation of the pawn accordingly so you see here we're just basically flipping on ya'all 180 degrees if we're detecting a negative input alright so probably the next most important thing to look at is this update animation this is a custom event that we created and you can see it's very sloppily put together up here but we're building basically our own simple state machine type of thing because since this is a paper 2d project we don't have access to the animation blueprint currently animation blueprint only works with 3d character skin characters so what we're doing is we've got an enum set up here called state and let's jump back and take a quick look at that so if I double-click we've just got some states for standing running jumping crouch hit and dead and if we put that into this switch here we can switch on enum so every time we switch States we can fire off at different events we have an event for standing and all that does is plays the standing animation now this is a clever piece of code here that came from the animation blueprint basically we're getting the velocity of the character we're getting the length of that vector which basically gives us the speed comparing that against zero and if it is greater than zero then we're going to play the run animation and if it's less than zero or equal to zero then we're going to play the stance animation and then we have an event here for when we switch to the jumping event we just play the jump animation and that is triggered down here we have an input for jump and again we're calling the jump function on the character movement component that makes up our blueprint character which you can see right over here in the hierarchy component hierarchy all right and what else did we do so yeah then if you recall if you're watching last time at the very last minute we inserted some functionality to actually kill off our character so we have a dead state and we just play a simple dead animation it's a one framer of them laying on the ground and we disabled the input right at the last second I think before we closed out the show so I don't like that a whole lot really all I want to do an update animation is update animation I don't like the fact that we had this extra functionality hanging off of there so one of the first things I think I'm going to do is move that around a bit but real quick let's see what we have else of the graph here okay so we have a landed event so the character movement component tracks whether or not your character is in air or has landed on the ground and basically all we're doing there is once we've detected a landing then we're going to set our character standing it's basically a way to reset the character back to his original state all right and what else do we have on begin play we have a sequence of events I like using sequences because you can very easily organize things and determine in which order they happen this is kind of out of order right now let's go ahead and move that around okay so this is actually held over from the template project we don't really need that but I'll leave it there for now that has not working the sprite and then we added some widgets this is the health bar basically so we get the player controller we create a widget attached to that then we set that as a variable so we can refer to it later and then we add that to the viewport so let's see well okay we have one more piece here so in order to test our damage and our health meter we created a simple event bound to the backslash key here you know right away first things first I'm going to change that to the one key so it's a little bit easier to get at and we're getting the current health we're subtracting a value of 0.1 just applying some arbitrary damage there and subtracting that from that current health and if we are less or equal to zero that is true then we're going to kill the character go to the dead state which of course triggers that dead animation all right so that's everything we've got going so real quick let's go ahead and hit play and see what that looks like so here's our guy we've got our sprites that we're running around with we have our animations there's our jump around left around the right stance animation we've got some sprites that were standing on top of there and we can see our health meter up at the top the blue bar so yeah if I hit one it's subtracting some health and he should die there we go all right so first things first I'm going to clean this up a little bit this is the begin play I'm going to go ahead and call this initialize and just a little bit of shorthand that I've grown accustomed using I have developed sort of my own color coding system here anything like on play or tick I put in a purple box so I can find it easily and then I think the next thing is I mentioned this disabling of the input for when we're dead let's get that off of the animation here I'm just going to control X to cut it and then up here I'm going to ctrl V to paste all right we're building this live on the fly here so we're going to do a lot of testing back and forth so now if I get one boom okay everything's still working just fine okay this is kind of a mess we're going to need some room let's go ahead and move some of these things out because depending on how far we get today our animation handler can get kind of large oops crazy mouse there we go okay so where should we start um you know actually I think this little system that we've got going up here is kind of cool maybe we'll flush out the damaged system first so he's currently taking damage but we're not really registering any hits so I think let's jump back to our assets and we'll take a look at our character sprites and currently we only have a handful of animations here but we do have some source art for a hit state and that's going to be this one here I didn't bother naming any of these just for the sake of time concerns but let's go ahead and create animation that's a flipbook and we'll call that a for animation and we'll say that's his hit frame there we go again single frames so we don't really have to go in here and adjust anything that's all it is and we also have this guy down here let's make another animation out of him I think we can put this to use will create a flipbook and call it a for animation and I'll just say sitting all right now we get it started okay back in our character blueprint so we start off by subtracting the health and then we're determining whether or not we're dead so if dead is true we're dying if it's false then let's go ahead and we're going to switch the state so let's just drag this in here and we'll set this as hit alright and you see that we already have the hit event coming off of here so you know what this is kind of untidy let's go ahead and clean this up a little bit and pull this around okay so I'm just going to drag off of there and then start typing flip book flip book there we go and our animation that we just created should show up there as hit alright so let's go ahead and test that alright cool so that much of it works but we need to get him back to his regular state so you saw there that I jumped and you went back to standing because of that landing event so typically in these sorts of old-school games your guy would get like tossed up and back so let's go ahead and add that right now so let's drag off of there and we'll add a force and we'll put that on the let's see character movement component and I'm going to go ahead and break this out I'm going to right-click and split the structu there and this is a bit of a guessing game from time to time so last time I tried this it was how many zeros I have there let's try one more this should throw him directly up in the air yeah that's a little too much yeah I haven't fully a low second here let's there we go that looks pretty good and again because we're hitting ground the landing condition in the character movement component is handling resetting us so that's nice alright and we'll add some force we'll throw ourselves backwards so we'll say - I don't know don't check make sure that's roughly the same we'll want to tweak this out a little bit but ok that's not too bad for starters all right but you'll notice that if I'm facing right I'm getting thrown back left but also if I'm facing left I'm getting thrown back the same direction which looks a little weird and depending on which games are modeling our little project after we may want to throw the character the opposite direction that he's facing so we need to figure that out we've got that kind of going already over here and again I move this too far over let's go ahead I'm going to be moving stuff all afternoon here so if you remember this determines which direction we're facing so let's go ahead and we're going to create a new variable here and we'll call this facing and we can just use an int for this and we'll set that so if we're facing to the right face thing is going to be one and I'm just going to control V control control C control V and if we're facing to the left we're going to set this to negative one okay so now we have a value that we can use back up in our throw over here let's go ahead and we'll drag off with this and we'll do x int and this is going to be our facing value and then we'll promote this to a variable and we'll say that's our knock-back and if we go ahead compile we can go ahead and enter a default value there and I think I want to start out negative okay all right so let's see what happens okay so I hit one I've thrown backwards now the sudden looks like I've added too much force try again that's not enough yeah I find these numbers to be a little finicky let's see here I think that's going to be way too much but I'll try yeah it's not really a linear no too crazy that's a vertical sorry getting ahead of myself here the knock back is what we want over there let's try that okay not enough juice a little bit more all right why seek a pile that's our knock back maybe we'll try point five all right why are you not kicking me back I think maybe I took out too many zeros let's see all right not have much look those ends up being a bit of a guessing game for me if anyone has any advice as to what a good range of numbers that is going to be I'm all ears it largely depends on the size and mass of your sprite as well all right we'll come back to that in a minute let's see if we can't figure out what else to do let's try to debug this figure out where we've gone wrong that's where we started okay let's at least test to make sure that we're kicking our guy the right direction okay and let's wire this back up okay facing right kick to the left facing left and kick to the right okay great again that is probably too hardcore let's try this this is where we went south last time but a little bit too powerful okay that's bit better anyway we can always go back and tweak that we'll probably do that a hundred times okay so very good we're throwing our guy back now also we probably want to indicate that the character has been damaged and again in the old school games we would typically do this with some sort of blinking function and we can do that I think what we'll do is we'll take a look at the sprite here if we scroll down the side we've got actually we can do a search for hidden so hidden in game we want to be able to access that in the blueprint so let's grab a reference to the sprite and we'll say I hidden so set hidden in game now if we went ahead and just tied this right onto here he's just going to disappear and not come back but we actually want to blink him so we want to blink him for a set amount of time maybe a couple seconds or something so it sounds like what we need is a timer so we want to set a timer wire that up and we'll just create a function in a second here called blink and this will run for let's say will blink him every quarter of a second maybe and it's going to loop okay so now we can create a custom event add custom event and we'll call that blink and we'll wire that up okay so real quick let's see what we get here since we get damaged I think we have to set a new hidden there we go give that a shot there we go okay so he disappeared there that's very good but now let's go ahead and let's see where do we want to go from here so he's blinking and we want to see we'll do that for let's put in a little bit of a delay so he'll blink for two seconds let's turn this way down alright I'll see what we get there now should get blinking once and we want to set visibility again or are hidden rather right set hidden on the sprite okay and first we want to clear that timer so let's go ahead and not do very well the tightening today clear timer and the function name is a blink okay so let me think about this so we go ahead and we add our force we're setting the timer to call blink blink is going to set hidden in game and actually you know what I think what we want to do is since we're going to loop this maybe I've got this backwards let's try this all right so we have set hidden duration of let's do point 1 it's difficult to see there we go it's a bit better that's - okay then we clear that timer let me sync is that gonna do what we want - no not at all all right I just set this up few minutes ago should it took my notes let's think it through collar blink on the sprite we're going to set hidden so that was functioning but the timer this does need to be we're going to loop every 0.1 seconds we set hidden then we want to this is where we want to do this okay we can actually just drag right off of there I want to go back I see what we get all right this doesn't work I'm just going to move on have to compare my notes later yeah all right no dice all right let's move on to something else okay so uh we've got a guy being thrown back and let's see we had our sitting animation let's go ahead and let's double check our states let's add another one for sitting okay if we go ahead and compile when we go back to our animation handler we should see a new state for sitting very good and we'll go ahead and set a flipbook there and we've got our sitting animation okay so what we want to do is determine whether or not once our character gets thrown back we want them to land but we don't immediately want him to stand up we want them to sit for a second and then get back up so let's go ahead and we'll set a flag here we're going to say is hit that's going to be a boolean and I'm just going to hold down B and click to get a branch and when we're landing if is hit if that is true we're going to set a new state will sit sitting okay and it falls then we should just go back to standing all right so now what we're going to want to do here is actually call our update animation and we'll probably want to apply this a few times just to make sure that our animations are being updated as we're playing here so again we land we determine whether or not we've been hit if it's true then we're going to sit down for a second and if it's not then we're going to stand and then that's going to call our animation handler over here to go ahead and call the proper flipbook so let's run over here we hit one and we need a little bit of a delay on there lemp's it for a half second let's go ahead and duplicate this okay and then we can set that false all right and when we get hit which is happening up here let's go ahead and set that to true all right let's see what we get through the air and there we go we sat down okay so now we need to get back up and we'll just go ahead and we'll call update animation once again and we want to set him to standing we could just wire this right back into this loop but in order to keep things neat now see what that looks like there he goes alright so half a second might be a little bit short but we can tweak that out if we want with this delay timer right there okay and you know we should probably let's see let's take a look here once I get hit yeah I can actually still move so we need to put that functionality back in where we're actually taking away control and we'll do that right at the beginning over here so let's drag this out of the way and we'll disable inputs and we'll get the player and get the controller like so okay and then when we could do this a couple of different places let's since this is working down here we'll just go ahead and do it here we'll go ahead and okay so when I get thrown through the air I should be dead yeah there we go so I don't get control back until I'm standing okay so that works pretty well all right okay let's take a look and see what we can do next here so we've got our head we've got our dead we've got our sitting jumping and running well we're not going to crouch today but so this is the beginning of a pretty decent little damage system slices malarkey on the end then I'll have to look and see where I screwed that up but I had that functioning back of my other copy but let's go ahead and take this and we're going to make a new custom event and we'll call this damaged system all right okay I'm going to go ahead and add a float to this you'll see why in a moment and we'll call this damage in there we go could just wire that right into there okay so now we have an event that we can call any time the characters damaged in order to hurt our little guy so let's make an enemy or how about a trap that we can inflict some pain on this dude good so I'm going to go ahead and make a new blueprint class and he's going to be an actor and I'll just call him BP trap hit enter to open him up okay so we have some spikes and some other stuff that we can use I think that sounds pretty decent so let's go ahead and add a sprite component so paper sprite and maybe I'll just duplicate that a couple of times all right so this bottom one here is going to be the base so let's go find our source sprite and let's make this a little bit bigger there we go so I think what I want is well down here there we go this looks good because that is our base and I'm just going to move this over the default seen root and that will replace it that makes it a little bit easier to work with I'm going to set my snaps to one and look at this from the front view for now okay and on this sprite let's go ahead and we're going to find our spikes there's right there okay so with him selected we can go ahead and drag him around a little bit put them right there and I'm going to move them forward one unit okay and you know what let's this be faster just to delete that and then duplicate it again okay now I should be able to move him over no why can't I move you all right I did not like that all right we'll just add a clean one and there's our spike again very good right about there and again we'll move him forward one unit so he sits in front of that little bar okay and then the final thing we need is some sort of collision volume so that when our sprite interacts with this we can fire off some events and that will allow us to not be constrained by the shape and size of the sprite either for gameplay purposes we could tighten up this collision volume or expand it to make it more or less difficult to play so we'll just find a box and over here down the side let's drag this out a little bit I'll just tighten that up a little don't have to be exact but let's do it like so there we go so he has a couple of pixels to actually sit inside of the spikes on you know what then let's let's do it like this okay all right now let's with that selected with the collision selected there I'm going to go ahead and say this generates hits and overlaps dynamic and then I'm going to say on component hit or you know let's do begin overlap it's going to take us right to the graph and we're going to get the other actor and let's go ahead and cast to him and our blueprint is called BP dude so basically what we're doing here is calling out to the thing that's hit the this collision volume and we're saying are you the player character or not if you are let's go ahead and get your health so we'll get health current and we need to subtract something from that so we'll add a variable here and we'll call this damage valo and we'll set that as a float and we'll compile and we'll say he inflicts a quarter damage every time all right so again let's let's set health current this time and we're going to go ahead and subtract the damage value so we want floats - float and wire that into their like so okay let's see what happens so now the idea is that any sort of enemy or trap or hazard that we create will have the amount of damage that it inflicts on the player-character so every time it's hit we just call up that character and apply it so let's see so we could do this directly like so but we actually have that custom event so yeah you know what let's move this around let's um that was called damage apply damage no no that's not the one we want ours was called damage system damage system there you go that's the custom event that we created yeah actually this will be easier we're going to take this right into here there we go alright now I'm going to subtract that okay there we go much simpler we can have all that subtraction stuff just live over on the actual dude yeah there we go so this is the damage coming in we'll just wire that into there all right let's see all right what'd we miss so got our trap other actor we're casting to him we're going to get him we're going to call out the damage system on him and we're going to give him the damage value here so that's 0.25 that should be fine okay so let me come in we're pressing 1 we're setting is hit or disabling input are getting the current health and subtracting the damage in and setting that there let's just do bug this a little bit so that should be the full health let's make sure that this value is coming in properly okay so it's zero let's clean this up here there's our trap did it point to firing 14 and our health current let's to make sure that's going to be one alright alright good and I'll just test this here there's a lot of print statements as I'm working on stuff here to quickly debug alright so something is not subtracting properly damage in well that's for one we're testing with the key so let's go ahead and we need to drop our trap into the world let's start with that I'll just place him here now if we hit play I think we're colliding on our sprites there so let's go take a look at our sprites and we take a look at the collision yeah so what's happening there is I'm standing on top of the sprite and not actually hitting the collision volume so let's just we could either delete this or take it all the way down let's try that and then we may have to set our there we go okay so yeah I was actually standing on top of the spike and my collision volume that is inflicting the damage wasn't actually ever getting to my character so now that I'm jumping on top of it there we go and I'm I'm applying quarter damage every time that's what we want so yeah so this little system we can use any time we have any sort of hazard like I mentioned if we have an enemy or something just on that enemy blueprint we just have to cast to the character and then call the damage system and then supply a variable value there through that variable all right okay how are we doing on questions I'm not seeing any come up over here real quick okay anything just doing a quick scan of the chat over here question isn't the input on the damage system and integer and you're feeding it afloat no it's a flow because actually because of our the way that they um G widget works so the value that we're just in here C should be here we go it's a percent so if we fill that up you see it's a 1.0 is a full meter so we're actually subtracting floats from that in order to adjust the amount of fill good question all right okay alright that'll be good for now alright so what can we do next maybe we should get around to making this guy shoot so first thing we're going to need something to shoot so we'll go ahead and create a new blueprint here and this will be another actor and this will be our VP shot and it'll have a sprite associated with it and we'll also have a projectile movement component alright and I'm just going to move this over the default scene routes okay so projectile movement so we want to give it a speed and no no we'll just try like 250 to start with and we'll make the match B then max speed to match and we'll turn off gravity so that way as soon as this thing is born it's just going to fly straight out and that's probably good for now so we need some artwork to go along with this so let's make a new folder and let us call this weapons I suppose in case we ever get around to making some new ones and in my project I have a source folder here and I have a couple of sprites that didn't make it into the original tile set so shot one or shot two so I'm going to go ahead and drag those in and so we've had a bit of a renaming here if you right-click it used to be configure for retro sprites but now the new setting is applied paper 2d texture settings so that'll mask out the background and turn off bilinear filtering and all that other good stuff alright so let's go ahead and we want to create sprites and I'll right-click again and create a flipbook and we'll call this a for animation and so that's a little bit too crazy so again we're working in for 8 now and you can see the actual name of the sprite is listed on the the frame counter down on the bottom there which is nice okay I think the other thing we want to do is maybe adjust the material so this entire sprite set was created in black-and-white with the idea that we can tint it if we wanted to but let's go ahead and while it's not technically retro I'm going to take advantage of some of the shiny features of ue4 and make this thing glow it'll show you how you can work with some of the materials so if we go over to the material that's applied to this thing anytime you create a sprite this default mask material is going to be applied so if we go ahead and find that in the content browser you see that the the actual engine folders have been opened up so let's double click this we see that it's a material instance and we want to find the master material so we'll go and find that in the browser there it is and back up in our project let's go ahead and make another new folder let me call this materials alright and let's go back and find that guy again there we go alright so this is our source material for this sprite now we don't really want to manipulate this material because every time then we go to use it it's going to be changed so I'm just going to go ahead and drag right into the materials folder here and I'm going to make a copy so now let's go ahead and rename this and we'll just call it like and we'll call our shot material I guess yeah okay all right and what I want to do is apply a color and make it glow so I'm going to go ahead and hold down three and click and we've got our color I'm going to right click and turn that into a parameter and I'll just call that color and we'll multiply that in so I'm holding out M and clicking there we go I'm going to unhook a vertex color here now we could sprites come with a built-in functionality to actually tint things but and they use that through the vertex channel there but I'm going to go ahead and set this up this way and if I hold one and click alright I'm going to convert that to a parameter and we'll call that glow all right so let's give this color will start out start out white is the default and this will start at one okay so we can see our material if I go ahead and adjust this there we go we got a nice glow all right just leave the default there all right so this is our new material now save that and then I'm going to right click it and create a material instance that way if we had you know ice shots they'll be blue if we had fire shots they could be orange and what-have-you so we'll just call this M shot this will be our laser all right so now I can expose these parameters here and let's see a sprite texture material property C did I apply those see where are my values that is in the right place all its turn plugins there we go that's a little bit cleaner so that is material instance of why where is my is our sprite texture a physical material where are my parameters all right scrap that so there I'm shot material right got a primer there huh that doesn't help color and glow apply save and we'll create a material instance let's try this again there we go now they show up alright I'll go ahead and make that sort of a whitish blue okay that's better alright so back on our sprite go to our animation and we can go ahead and pick our blue there so let's save that now this might not actually glow behind the background we let's go to our blueprint here I think we have to create a new parameter our new input setting here bring this over and we'll call this new input shoot I'm just going to that up to the mouse button say left mouse okay back on our character there's a good place to put this suppose down here somewhere so we'll say shoot and we want to spawn an actor from class and it's going to be our BP shot alright so we need to supply it with a transform an actual position rotation and scale let's go back to our viewport here and when this character is performing is shot he's actually going to raise his arm so you know let's give ourselves a little bit of a helper I'm gonna use an arrow all right that's kind of large so we'll scale that down and I'm going to say that maybe when he shoots his hand is roughly somewhere in the neighborhood of this we can take this out later okay so now we can get that what did we miss here yeah see it's complaining about the transform because I compiled so let's go ahead and grab that arrow and we will get the transform and we probably want the world transform get world transform we could supply that into that pin we'll see will spawn even if we're colliding and that should clean up the error there all right so we're shooting and see we don't have a shooting animation so let's go ahead and set that up so we need to head back to our character States add another one here call that shooting okay great and again we'll set another flipbook and we need a shooting animation so let's go back to our source art and we've got jumping shooting running shooting and standing we'll just start with the standing that's this one here so we'll go ahead and right-click and create a slip look and we'll call that shoot I tore dude all right okay and we're going to go ahead and update animation all right that should make sure that gets called okay so when we shoot we spawn the actor from the shot class spawn transform is of the arrow and let's see anything else all right why you're not shooting let's double check and make sure that we're actually calling that all right so shoot is being called let's double check Oh so here we go we went ahead and made our animation but we didn't actually hook up our sprite so let's find our shot someone there got a projectile movement actually you know what let's go ahead and I think we can just set a flipbook instead of a sprite yeah paper flip look let's do that instead yeah that's the one I probably don't even need this guy anymore there we go that looks a little bit better there we go okay so he's glowing a little bit but somewhat difficult to see and I believe that's due to our sky down back here there we go so now I have some cool lens flares going on okay so we got a few things done today hooked up to new animations we got our guy firing you know what he isn't actually playing his firing animation is he we have a few minutes here we could take a look at that so he's updating his an admission because we did not set his state so let's set that to shooting alright let's try that here we go that looks a little better looks like our arrow could probably be up a couple of points but good enough for today so yeah maybe next time we pick this up we will hook up the running so that he can run and shoot yeah he's not coming out of his shot state right now but I think what I would probably do here is you know maybe real quick we probably have time for this let's do a REIT rigged herbal see if this works we trigger delay and we'll give it half second that seems kind of long but we'll set the state to standing and again we'll update animation we can just borrow that one there so we fire and then after half a second we go back to standing so that way if you're spamming the fire button he keeps his arm out and you won't like keep dropping it and you won't get that glitchy looking situation going on so alright cool glad that worked and also we hooked up our trap we've made our enemy gun I'll have a look and see why my blinking wasn't working I think I forgot a note or two in there somewhere I got it out of order there we go okay cool real quick let's take a look and see what other questions can you give him a grappling hook yeah absolutely yeah maybe we will add that in the next stream I laugh because a number of years ago I worked on a project where we wanted to add a grappling hook and we're told on numerous occasion grappling hooks are impossible so yeah that was good times all right another question given the massive engine overhead when doing 2d would this not run faster as a 3d game with side on camera well so the 2d in 3d worlds are actually one in the same really in unreal the paper 2d features that I'm using you with sprites and you know flip books and all that other stuff they still do exist within the 3d world so if I'm moving around you see here there is there is depth going on so you're not strictly limited to 2d you can do 3d if we went and changed our camera over here and I think we showed this on the first time around alright if we swap that to a perspective view now this could look well we don't really have anything worth of any depth to show off of them the effect but yeah so if we extruded those blocks out or put background back there you'd be able to actually see perspective so the 2d in 3d worlds as I was saying are really one of the same alright another question coming up yes actually okay so the question here is couldn't you jump into the spikes backwards and push you forward as an exploit yeah and actually that was on purpose and I forgot to mention that because depending on how you implement this stuff and what you do you can come up with some pretty neat gameplay features so yeah if I jump forward and click back right at the last second it looks like I've lost my throw back but yeah I could be thrown an extra distance so like what could be cool is let's say this is a big gap and then over on the other right-hand side I have you know another ledge that I want to get to but maybe down below there's a hidden area and I can only get to it if I get that extra boost by running jumping onto some spikes that are placed at the edge and then quickly facing the other direction that would launch me into the new area so yeah you can do some pretty cool stuff now the other thing that we didn't set up is we could have set up a flag to determine whether or not you're hit and we can enable and disable that so that your character can take multiple hits what we do have is hit right but depending on how we set it up we could have it so that if you get hit and you bounce you could get hit again and hit again and hit again so you can come up with some really interesting level designs where if your character has made it through the level to a certain point and you have enough health you could sacrifice some of that to get to a new inaccessible area or you know make it around a particular enemy so there's all sorts of cool stuff that you can set up like that yeah absolutely all right okay I don't see any other questions coming through but yeah there's lots more we could do this we could add grappling hooks flame traps all sorts of stuff double jumps triple jumps and then the one thing that we still haven't touched on our tile maps which in for eight there's a luncheon allottee they're a little bit too much to get into today but tom apps are really cool really powerful a lot of fun basically you can piecemeal together objects and level art and what-have-you just out of a small subset of sprites so definitely check that out and yeah I think that's probably it for today so thank you very much we'll see you again you
Info
Channel: Unreal Engine
Views: 107,531
Rating: undefined out of 5
Keywords: Unreal Engine, Epic Games, UE4, UDK, Unreal
Id: 5KkcbO3Tmbw
Channel Id: undefined
Length: 59min 30sec (3570 seconds)
Published: Fri Jun 12 2015
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.