How to Make a Third Person Shooter Game in Unreal Engine 5 - Full Beginner Course

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's up guys welcome to new Unreal Engine 5 tutorial today I'm going to show you how to make a third person shooter game it will cover all the things that you need now even though this tutorial is focused to beginners if you are a total beginner I recommend firstly checking my how to make your first game in Unreal Engine tutorial which I'll be linking in description alright with that said this is going to be a very easy video to follow so let's get started alright so the first thing that we need to do is to create our project in this case I will be using the latest version of Unreal Engine a real engine 5.2 now of course if a new version is out and you want to choose the latest one go ahead but if you just wanna play it save and go in my version go ahead all right so I'm gonna go into the game section and choose our third person template that's gonna be a third person shooter and here we're going to specify if we want blueprints or C plus plus in this case it will be Blueprints and then we can leave pretty much everything as default and this desktop maximum and then make sure that we have um sorry content on as it will give us some handy materials and assets that we may use in the future then we need to specify the prior location and then the prime name okay so now we can go ahead and you say create and now we just have to wait a few seconds all right the engine has opened so now the first thing that I always like to do is to put my um content browser bar anchored in the button um so it's always accessible so we're just going to go into window go into account browser and you select content browser one now we just appear we can just drag the tab and just put it down and there we go now yes it will be always there and I just prefer it let that way you know all right so now basically we have play as you may know from my uh how to make your first game in real engine tutorial basically we just have our mannequin we can just jump around and there we go so there are a few changes that we have to make into this now it depends a bit on The Locomotion motion that we want but in this case we are actually going to keep the main Movement Like This basically a free camera but basically when we aim that's when it's gonna be different and basically we will need to Anchor the character to always be looking at where it is aiming of course if it makes sense now first of all I will want to import some assets that we need this includes the animations that I'm going to use for holding the gun and then also the character model itself and the weapons so in this case I'm gonna be three free assets from the Unreal Engine Marketplace that I'm gonna be linking the description and let me just show them so the first one is going to be the animation starter kit it is from epic games completely free I will be the link in description what you have to do is go ahead and add it into your library and with that you will be good to go it will have the animations that we need for our weapon then we'll need the stylized character kit this will just be the character that we'll be using of course later on after detail you know we have finished it um you can change your Chrome character and put the one that you want but for the sake of this one I think this one looks pretty cool so I will use it and then last but not least we'll be using the FPS weapon bundle which is just a free pack for weapons I will be using one of those um so with that said go ahead and basically download them they're free into your epic games library and let's go ahead and import them so to import them what we have to do is open our epic games launcher and we're gonna go into the library section and then we go down over here you will see that we have all the assets so if you just search the animation starter pack you will see here I will click this button to add it into our product and now if we search our product we'll find it here now we'll have a warning that it is not compatible with the latest version which in this case 5.1 but don't worry about that just use the latest version which in my case is 5.0 and it will work the same so just add it into the product so now you will see that it will begin to download and install into the pride so basically now you just have to wait a few seconds hopefully it will be a bit quick let's see alright so it has installed as you can see the button is now available again so let's search the next pack which was the stylized character kit so do exactly the same just add it into the Privacy go select the latest version add to prod and now let's go ahead and wait a few seconds right so now that has installed so now we have to do the latest one it was the weapon bundle so again add it to the bread shooter the latest version which is in this case it's actually 4.27 but again there won't be an issue okay I've done this many times before with this pack added to bread and wait a few seconds all right so we have everything installed we can now close the epic games launcher and if we go back you can see that we have a few uh basically new folders available from our animation starter pack with all the animations that we're going to be using with our Character Pack so you can see in here for example go to models all the different parts and then also lastly in where I said the FPS weapon bundle with all the animations that well sorry meshes that we can use for our gun so let's just Begin by applying the animations into a character okay and then we'll add the gun and then panel will add the character into it so the first thing I'm going to do is go into the anim starter pack and you'll see that we have a whole bunch of animations in here well let's go ahead and just gonna make this bit bigger so I'm gonna have a better View and let's just go ahead and find the idle animation and in this case we have a few different options in this case I'm gonna be using a rifle so I'm gonna go into more of the rifle animations instead of the pistol okay and um basically we have the idle rival hip and then we have the orange side basically going to be using these two animations for our normal standing and then aiming so we're gonna also select this both now there's a problem with these animations and the things are there for the your old and realizing for skeleton so we have to basically right click go into retarget and duplicate and them so here we have the option to use an ik retarder which will be on when included in the template and we can convert them from 3 4 to ue5 and with that as you can see it will basically go probably before to E5 you say retarget and then in a few seconds we have demo here with the new ue5 skeleton as you can see perfectly fine so we have a few more animations that we need of course we'll need to walk and Jog now in this case I'm gonna go directly into the jug because we will not be able to walk it's going to be a bit more simpler okay so in this case we have a few options we're best going to go into the jug forward rifle just right click go into retarget and duplicate again choose from ue4 to E5 with Target and then lastly we'll just need the basically the shoot I think it was called fire yes so I will be using the iron side okay which will be for the one of the rifle strike Lake again retarget from ue4 to E5 and there you go so now we have all the animations that we need I'm gonna go ahead and just right click and create a folder so everything is nice and easy and organize so it's going to be like shooter animations okay and let's go ahead and select them drag them through the animations select move here and there we go so what we have to do right now is create something right click and go into animation and Legacy a blank space 1D so and here we have to select our skeleton in this case it will be the SK mannequin okay so it's one you can search for manicking make sure that you use the one that just says SK mannequin which is the new one then we can just go ahead and call this the shooter blend space only if you want and let's open this up so now we put this here we have a few options let's open the horizontal axis and first thing that we want to do is change the name into speed and then put the maximum value into 500. basically this timeline will allow us to change between animations depending on a value in this case we will use this to change the animations depending on the player's speed so we'll have the idle animation here and the jog animation here as the speed increases it will be transitioning from that idle into the jock and you will see that will have really cool it will end up with a pretty cool result so basically in the maximum value we have to put our maximum speed that our character will be able to work with Chuck or whatever in this case by default it's set to 500 in the blueprint so put the same in here so now we can go ahead and find out Auto animation in this case it was the idle rifle hip okay make sure you set the hip not the iron side because the iron side will be for our aiming okay and then we'll go ahead and answer the jug and now we have the jug with the rifle just put it at the end so now if we hold Ctrl and move it along the timely you can see that as the speed increases our animation will change smoothly and it's just perfect what we want now what we can do is also go and search for weight and just put a tiny weight like 10 so the transitioning will be even a bit smoother you you can play with that later on but that will be great for us so the Brand's place is done we can close this and just create now the animation blueprint I can also go ahead and make this smaller so right click go into animation blueprint again we have to search our mannequin skeleton which will be used to be the SK mannequin now create ABP underscore and this will be just for example shooter and let's just open this up of course you can put whatever names you want I mean it's pretty shooter because Edge is going to be good for us but you can put whatever we want basically as you may know in the animation blueprint we can put the animations that we want and the conditions that we have to play them and so on so let's go into the asset browser if you don't see again it's going to window and it should be as a browser here and now we can go ahead and find our shooter blank space that we have just created now let's go ahead and before plugging this in here we're going to add another note which is going to be the default slot this will allow us as you may know from other my tutorials to play an animation from a blueprint with an animation Montage so make sure you add that and then basically in the blending space we have to change that right now to compile you can see displaying the idle animation but if I were to put this to 500 just to show you and compile is now jogging basically we have to change this let's put it back to zero and dynamically depending on the player's speed in the game while playing the game so right click promote variable so now will be a variable called speed let's go into the band graph so in here what we can do is get the velocity from the owner of this blueprint or animation blueprint and then we can use this node called the vector length so it can be converted from a vector into a nice flow so here's a number that we can plug into our speed so now basically in the update it will be getting the velocity from the owner and then going ahead and well converting this to a nice float and just passing it into the Babel so now if we save and go back to the third person uh map we have to do one more last thing and is that we have to go into our third person Blueprints and open a third person blueprint character go into the viewport and select our character mesh over here so now what we can do is change the name class into our new here it is shooter class now you'll see that we have it here it will press play you can see now we can go ahead and move with our animations like we have great something is going ahead and working now let's go ahead and we can actually close the animation book from now and let's add our animation sorry animation now our weapon in our hand because right now it's just walking with an empty weapon right empty hands so let's go into our weapon bundle let's go into weapons and we're going to mesh it now we have a few options here that we can choose right um I think the one we're going to be choosing is going to be the ar4 which is just gonna be a simple rifle as you can see now we have different things over here we have different options from a skeletal match into a static mesh the difference between the skeletal mesh and a static mesh in this example with the weapon is that well the static mesh will just be the model itself okay the model itself but the skeletal mesh will contain the model itself with some bones and the thing is that we want the bones and you're probably wondering why well because we will not will want the where is it it's gonna be this point right over here which will just be the tip of the weapon the thing is at this point will will basically use this point to spawn our bullets so that's why we want to use the skeleton because it will contain already this point that we can use to spawn our boots so let's go ahead and close this and we'll have this um skeleton mesh here which is again one they're going to be used so SK underscore ar4 okay um let's see if we remember so now what we have to do is go and add a socket into our skeleton so you'll see why in a second so let's go into characters I'm going to go into the mannequins folder and open up meshes and you'll see the SK man against button let's open this up so basically like this we can add a socket and basically apply your weapon here now for this properly we're going to do is go up here into preview animation and put our Arrow animation so if it doesn't crash which please don't crash there we go we can now type Jog and search our jog forward animation so I can just pause this and now we can place our well actually instead of jog it which is better we just the auto animation honestly which oh this is mesh animation arrow and it's gonna be the the uh the hip okay the hip and with that now we're gonna go into the right hand so in this case this left hand we go a bit down you'll see the hand R in here just right click add a socket so this will be created I just rename this into the right hand and then we can just call this rifle now if I right click in this object we can now add a preview acid in this case it will be the SK underscore ar4 which is the one that I said before and this is skeletal mesh very important that is that one so now we can start rotating this and placing it in position so it will align into our character and with that that should pretty much be good um now I'm gonna be placing this pretty damn fast okay so if you want to put more detail and attention to it you can do so all right I'm right now just kind of putting it like this so I'm gonna put this into five degrees all right so if you want to put more time into it to make it look a bit nicer go ahead I'm just gonna do it like that I think that's pretty nice honestly I'm not gonna lie for me that will pretty much work well let me just do one last thing instead of this once once again there we go I think that yeah that will work good for me okay so if you want to put my uh location you can see this here and the same with the rotation and that will work for me rigging is safe now things are now repressed but you see that is not here and the things that this sockets really use empty in our skeleton this is just a preview okay of where we want to place that socket so we need to do is go back into our blueprint and select the mesh and add a skull Dimension very important to this is child of our mesh and this will just be our rifle so now we can just go into pair and socket and now find our air our sorry I don't know even how to talk RH rifle socket that we have and now you'll see that it will place in the position so now we can search our SK underscore ar4 and now it will be placed in the exact position that we set on here so close that and now very important go down and make sure that the Collision press it preset is set to no Collision very important so now if we compile and save and press play you can see that now we have a weapon and everything is working as intended great so that was our first step of our tutorial now we are gonna go ahead and move on into applying our character which we imported which is going to be look so let's go ahead and do so all right so let's go ahead and place our character in here instead of our mannequin now I did just realize okay guys that basically this um you know character is actually using the old ue4 skeleton so we didn't have to retarget some of the animations so on but hey is what we did hey you learned something to retarget cool now let's go ahead and do the same but inversely sorry about that but um so we're going to do is go into our and shooter animations and let's get our animation blueprint in here that we created earlier and we can actually just right click and retarget the whole animation blueprint in here it is going to be from ue5 to ue4 so basically we could say that we're basically on dump we are just upgraded for nothing to downward again it's okay now in here choose our mesh in this case let's see we have this guys already um pre-made okay so we have different parts of the body because we can basically customize them or we have already some pre-made and of course we're going to be using the pre-made in my case I'm going to be using um I guess that this one looks pretty cool mesh pc03 as you can see that's gonna be good we can because it's gonna be the same skeleton we can now change the mesh later on easily so that's going to be good um so now we can just say retarget and there we go we have everything changed and we tried it um in my case I'm going to Intruder animations a new folder and call this ue5 and put all of them in here so move that there and now we can get our new ones and just move it inside shooter animations and like that that's great so now we can go back into our third person thing and basically just search our character that I chose which was this one and you can see that right now if it has the same animation blueprint it's like squashed um look I mean of course if you want to make a fun game right I have like characters like that we'll go ahead but you know in my case I'm gonna change that um basically now we can select this new one and put it and you can see the now is correctly done of course the weapon now we have to sign in again but that's okay now I think I'm going to do is go and open the animation blueprint I'm gonna change the default mesh into the Act 2 character because I like to have also my animations to preview that great so sorry about that okay guys but now we have it like that so now it's basically resolved so sorry about that um all right so now everything is working we just have to go again and place also our um rifle in the ue4 skeleton so we can just go ahead and find this open this up and go into the skeleton section and then we just have to do the same so preview animation and it's gonna be the idle um rifle hip close this and also going to change the preview mesh so it just matches the image just in case something continues but it's pretty much the same stuff go down into our hand R right click add socket HR sorry r h right hand and then rightful again right click then I have preview asset so it helps us to place it and was SK underscore ar4 and then go ahead and put that like that sorry about that sorry about that inconvenience I did not realize this character was actually Nui for a news for skeleton sorry about that um but hey you learned about thing you did it two times now you're a master of retardant too um all right so kind of like that I think that it will work you're gonna actually save a bit that it's helped me to place it and this will just work good for me okay I'm gonna can I place him more than the trigger Maybe but that will work great for me you can play with your um you know placement but it's gonna be my values so you can copy them paste them I'm gonna put back that to 10 and I can save close this close this and go back to the rifle and now select back the parent socket with the hrh sorry rifle and now that will be now fine as you can see sorry about the convenience but now this is result all right so next let's continue on and we'll continue to implement is going to be the aiming let's go ahead and close this and let's go ahead and aim all right so now let's get our aiming animation in this case let's go back into our shooter animations ue5 and we had our rifle uh also the shoes itself so we have the shoot and the RN side which is gonna be our aiming so let's select the those animations and then right click retie it look again and again from ue5 to E4 and we can also just get them from the anime started back but with this I can just go ahead and directly change their mesh in here into our one that we chose so I just prefer to do that that way and then you can change the folder to be in our shooter animations now with that again you say retarget and now we have them here I can actually go ahead and change the name so instead of idle rifle Ironside it's going to be used um aim aim let's go and then the same with the well actually that was shoot right no that's aim okay and this one is shoot okay so go ahead and select that and then I'm gonna put shoot even though it says fire at the start but it doesn't matter fire shoot it will just clarify things out all right so let's go into the aiming um kind of system so what we're going to do is go and open our ABP shooter which honestly I don't know why did not update the mesh even though I set it to so let me quickly go and change it I just preferred to highlight that doesn't matter it doesn't change but it's okay and let's open our animating graph over here so the thing is that now we can't just do it outside because we have to create different states we will have a state for Locomotion which is the one that we have right now from our idle jug and then another state which will be aiming so just right click and create a new state um machine there you go and this will be our local motion basically what we're going to do is get this two notes and use Ctrl X so I'm gonna copy them we'll cut them now let's open this and here we can create a new state this will be the an idle and Jog and now we can double click and put our animation there now it will be broken for two seconds but what we can do is just connect it back and now you'll see that is fixed now go back here and we can add another state and this will be basically aiming now for this what we have to do is let's create a variable so this will be is aiming let's put a this symbol at the end so we know this is a Boolean and of course set it to a Boolean because it will be true or false so now what we can do is go ahead and grab border of this icon and just drag it towards the addo and jug State and let's do the same but the other way around to our aiming and then what we can do is double click our aiming State and pass on the aim animation in this case it will be here his Dragon plug it there and we can select this aim animation and you say Loop and make sure that you have a loop because of not it will finish and stop now of course we'll have some errors it will compile because the transitions are empty so let's go ahead and choose the one from idle to aim the one that has the arrow upwards let's double click in here and this is passed that aiming is true if you just basically plug like this that will mean that it's true now we have an error remaining because we have to do the other way around let's double click in this case the condition will be if it's not and let's pass this node which is the not Boolean and basically that will mean that it's not true and now with that it will work so if I were to select aiming and enable this you can see that it went to aim and if I disable this it goes back into position so everything going ahead and working cool now what we can do is just save and um basically go into the bank graph because now the thing is that we will need to change this aiming variable depending if we're aiming or not in the game now let's go quickly and first of all set all that in our third person character let's go into event graph and the things that we have to implement the functionality for aiming okay so basically from the input to zooming in the camera and then passing that value into our animation blueprint so let's go quickly into our third person map let's go into the content and let's go into our third person folder because it's going to input and add a new inproduction right click input action it's going to be EA underscore and then this will be basically aimed if I know how to spell it correctly there we go aim and actually we don't have to even open this up that will be with a value Source default but we have to go back and add it into our collection so here we have a list of all the actions let's just add the one that we have just created aim and here is where we passed our basically key that we want so you just press this button and now you can press whatever key you want in your keyboard or Mouse in this case will be the right Mouse button so I'm gonna just press it and you can see the now that will be assigned save and close let's go back in third person character is right click and do EA underscore aim and make sure that they choose the one with the arrow okay it's gonna be the note that we're going to be using so basically we're going to be using the starter sorry started and uh complete it that will mean when it has been it has begun to be pressed and it has been stopped to be pressed so what we have to do here is first of all pass that value into our shooter so let's create also variable here which is going to be exactly the same basically just is aiming AC Boolean and it is set it and here it started it will be true but let's copy and paste this and complete it it will be false so now what we can do is go back in ABB shooter and grab that basically information so I'm going to use this other note which is going to be the if I know how to type yeah the event blueprint initialize every animation this can be like be stocked okay the beginning play of our animation so now I can get the try get Pawn honor node and now just go ahead and cast to our third person character and now with that I can just go ahead and right click and promote this and this will be our character BP for blueprint and now what I can do in the update I just get our character blueprint that we have and just right click and convert this into a validated git just to make sure that this character right now is our third person character and we will not have any errors if we are using other blueprints with this same animation blueprint if it makes sense because if we cast into for example our enemy class right when we do our enemy and we're using the same animation blueprint so it will give us a rare an error so let's go ahead and do that to make it sure and now from that we can just get is aiming uh the Boolean that we just created and then we can just go ahead and assign it from the one that we created earlier so now that will depend on if we are aiming or not so now if we press play you can see that if I hold I can name and if I stop holding it will stop aiming so everything is gone ahead and working as we want now we have a problem and is that of course if um we are aiming and walking the same time the feed doesn't move of course we'll go ahead and fix that shortly but let's go ahead and basically zoom in the camera a bit now uh there's another thing that I want to make by default even when we're standing and scores is have our camera a bit more into the right into the shoulder as it will give us like actual some angle to aim because we cannot see anything right now with our player in front so there are many ways to do so but we can just go into viewport and select the camera boom which is the one that will control basically the camera would Target the length and so on and the thing is that we can add a socket offset and we can go into the Y Vector in its perfect example 50. and we started to move it as you can see into the right now I don't know if it is too less so let's do a hundred and this is just basically explain my value stick out what you want that definitely that's a lot let's do maybe 60 um maybe that's a bit better and that's a bit better but me too much this is just playing with values okay I I you know I don't know what we could do um maybe 50 actually that's a bit better I think that's a bit better we can we can we can deal with that anyway we'll see um all right so with that done and now we have to zoom in the camera and zooming out when we're doing so so we can do that with the arm length so in here if I go and get the when we are start to aim and get the camera boom and then set the length to instead of B which is right now 400 so let's say 120 and then put it back to 400 when we stop aiming and connect the camera boom you're gonna see that it will work right and we also have to pull it a bit up but you can see that it's instant and this is not very good it doesn't feel very good we want a nice transition so what we can do it's actually also close the animation blueprint and what we can actually do is delete this both these two notes let's put this here and let's do a timeline so we can learn from one value into another one with time so just go ahead and add a timeline node and this will be our aim timeline okay and let's just put that over there and then in this case we are just gonna plug that from play and then this one from reverse because we will be able to use just one timeline for both and by just reversing the other side we will get the opposite you know uh feeling I don't I don't know the board didn't come up and go back to the other state so now we can double clicking this and add a float track in this case this will be our um camera arm length because that's the thing that we're gonna be changing and the the length is going to be basically the time that this gonna take and in my case it's going to be 0.3 seconds but I will see what is better for us you may Thinking by three seconds too quick but you see that's actually not now it's right click in any place and just add one point and we're going to set the time to be zero and value to zero because it's gonna be the first point now I want to add another point and the time will be 0.3 because when the animation will finish and then the value into one let's press this to buttons so it's nice and clear and you can see it's just a nice uh ramp of constant speed up so now we can just get this and do a LARP note and this will learn from two points now let's go ahead and hold Ctrl and move this point into the alpha because it's going to be from changing two points which is going to be 400 to 120. arm length is right now into the one that we want and now we want to pass that into our new arm length in the update and you can see that that will basically go ahead and work perfectly which is what we want snap our press play and hold you can see now we have a nice transition you can see that 0.3 seconds is not a lot actually I might need to make it a bit in even faster so we might need to play with that but basically right as you can see it also goes um into the center of the character and we don't want that um so actually a thing that we can go ahead and change is because we also have the opportunity to change the Target right and they'll basically change the target options throughout the the one there um but what we need to do is change the height so we're going to here you can put like 50 or something and that will be higher and now when we zoom in that's a bit better I mean way better maybe 120 is too much so of course you can play without values but maybe 170 will be better you know like I said this is just doing stuff now let me just go ahead and select all this press C to command this and then call this the aim system so we know what it's doing now another thing I'm going to do is Select this node because I really like the color you select the common color and now we can just get the new color and drag it into here and I will just create a preset so now here in the comment I can just go ahead and apply that preset as you can see that's nice and beautiful great so everything working correctly so we have our aiming animation done and we aim and our camera and zoom in and out wait so let's go ahead and control the feet not moving so what we're going to do is basically split the body into literally that's what we're going to do so there are many things doing this but um what we're going to do is just go actually have to throw some everything that I'm doing so this is just joined to one to create a cool third person game of course but basically what we're going to do is going to shoot our animations and open our ABP shooter okay which is right now here and then the one that I'm using I don't know why the character replaces each time but it doesn't matter he won um let's go back into the ending graph um actually sorry in The Locomotion and aiming state so here what we can do is use this node which is the blend bone layers blam purple this will allow us to basically split the body in half for a certain bone and play an animation for one side and another in this case our aim will be in the second one because that's going to be the one on top but the one below will be our locomotion so what we can do in here is basically go here and um create a share but we can literally just pass our shooter bench space again and use passive speed which is what we're going to do so that will not give us an error but split the body in two now there's another thing that we have to do and of course it's like this and specify the bone so just add one here and let's go into the skeleton and now we can choose the one that we want in my case I'm going to say spine one so let me just go ahead and go into details copy the bow name because it has to be extract and pasted basically one side uh the lower part of the body will be playing the normal jog animations and the other one and then the other part of the body which will be the upper one will be playing the aiming so now you can see that when I aim everything seems normal but when I'm aim and walk the animations in the lower part still go ahead and play now you can see that it may move a bit too much the body but for now this will work okay we might change that in the future now let's go ahead and do another change and what I want to do is basically um make sure that a minus if I'm standing still I can go ahead and rotate my body when I'm aiming only right because right now if I want to shoot behind it's kind of like weird because I'm aiming forward I don't like that of course if I'm working that's good um but what we're going to do is go into third person character uh blueprint we can close the other stuff and go into the AIM and before we do the timeline and stuff we're gonna set some things up so the first thing I'm going to do is let the character movement component and we have this option which is um basically what was it um movement it was a lying character to movement editor uh well I just hear Let me see what was the name Orient rotation to movement so basically we have gonna set it I'm gonna be disabling this because right now while we're aiming we don't want our character to orientate where it's moving but where it's looking so we can use the other one which is I mean it was here and use control design rotation so set use controller it's a rotation and this will allow us to basically you can just double click to make this a bit better like that there we go and this will just allow us to control the rotation depending on where we're looking so now if I were to aim as you can see even though I'm not moving the character is aiming or weird looking that's exactly what we want now of course right now if I stop aiming we are like that the whole time so we want to stop that and of course this is a type of movement this is the straight style movement so I want to just play the game like that you can do so but you have to set another type of Animation blueprint with different fields going backwards left and right and it's a bit more of a headache but if you want to go ahead and do so I do have it to turn on that which is the strength movement so I'll be also Link in the description in case I want to go ahead and see that but uh basically I'm going to set it back to normal so let's copy these two notes and just put them here put them in reverse and then it's going to be the other type so go back into orange to movement so click that and uncheck that and now we need to get our character movement and of course remember to set up the pins because not oh it will give us an error because this is from the character movement with that everything should be set to work so I can go ahead and aim walk around stop go back to normal aim again everything is basically working like a charm I'm pretty happy right now now what we have to do right now is of course go ahead and start setting up the shooting and we are actually pretty much advancing pretty fast I'm gonna say so we will need basically right now to basically do that now I think I'm gonna do first it's actually set um that a character will basically look up or down which is very important so let's go ahead and do so all right so let's set up the aim offset so let's go into our folder with all the shooter animations here I'm going to do is right click go into animation and I'm going to go into the aim offset now we all also have the 1D a map set which is the one that we want to use because only One Direction which is up and down so it's selected now again set the mannequins button um actually none and nearly made the same mistake okay we want to use the skeleton from our um discard character so just to make sure I'm gonna search it and then where I said I can go and look at it so it's basically gonna be this one this SK mannequin and it's gonna be from the Casual folder okay so I'm gonna just copy the name and let's do the same but go into animations all right go back here Legacy aim offset go and paste it and you can see we have two one will be from Castle I don't think I'm gonna start it back so I want to choose the one from is from casual all right so AO underscore M shooter basically aim upset shooter let's open this up so now in the horizontal axis we need to change uh some values in this case this will be the pitch because it will be up and down the minimal axis will be 90 degrees and the maximum 90 degrees um when I say snap to grid so it's answered for us later to place it now what we have to do in here is basically um where is it here additive settings we have to go ahead and play this um aim offset as an additive animation so it will play on top of our already existing animations because if not it will just replace everything and we don't want that we only want to get like the rotation of our body so in here we have to find our idle animation in this case you find our iron animations gonna be here with our character it's going to be the Rival hip okay let's go ahead and save that and we can now use continue on so what we want to do now so we just create a folder with aim offsets to go it's gonna be easier for us let's just drag this in here so move here and what we're going to do now is get our idle raffle hip and duplicate it and this will be our um basically aim underscore for war because we're gonna be doing a pose let's go ahead and drag it into the aim offset here I just open the aim for basically we will need three different poses we will need one looking forward one looking down and one looking up so now so later on in the aim officer that we created we can interpolate between them as a wheel with lamp plant spacebar with different posters so to convert this into a post we need to get rid of all the keyframes so let's go into the first point is right click and say remove frame 1 to frame 190. you can see that now it will not move if you want you can try that again just in case remove frame one to two and it will now move now moves a bit don't worry don't worry about that okay don't go crazy um but try to remove all the keyframes so it doesn't move but this if it like vibrates a bit don't worry about that now what to do is add an additive animation again this animation is to play on top of that so it's going to be a mesh space and scaled and now we want to find our idle hip animation is safe let's close and now we need to duplicate this and this will be our aim and let's do the up for example let's open this and you can see that's what I was saying like vibrating don't worry if that happens just go here right click remove frame to one to two but if it continues to vibrate don't worry this is actually because we have added the additive animation so it's playing on top so it's actually some keyframes from the additive animation so don't worry about that um so now let's go with skeleton tree and the things that we have to select for example is find one and rotate it to be looking up It's Tricky but it's what we have to do now you can see that basically the before is a bit rotated especially when the spine is looking we want to change that into the world so basically it will be getting the actual forward from our actor from the feet not the one from our spine very important because now if not it will rotate it incorrectly so let's put this into the kind of globe symbol and now we can do is go like from an angle View and just rotate it up as we want in my case I'm going to do 60 degrees well minus 60 degrees okay like that you can do however you want let's save let's close and ah I forgot one thing I forgot one thing sorry about that let's go back here skeleton 3 is fine one and what was it changed back into the world and then -60 and then we had to basically press this button which will add a key if not it will just override everything it will not save now you can see that it's back there and if we open the bag is aiming up so I forgot to just press the button make sure you press the button let's go get the aim forward and duplicate it again but this time it will be the aim down let's open this again again doesn't matter just try to remove the frames but it's because of the additive animation so don't worry about that let's look into the angle select s pi one and put it into the world rotation so it's forward from his feet not in spine bone and then basically aim it 60 degrees now forward and with that you can just press the key save and close and now we open again is aiming down great so now we're going to open our aim offset and now we can go and get our aim uh down and put it into the left of everything and aim up into the right of everything and aim forward into the middle now you can see that as I hold Ctrl the character will look down up into the middle perfectly you find super smooth what we want now let's go ahead and close that and now open our animation blueprint and let's close this I know why that says read only honestly I don't know what's happening but let's go into an in graph and now we want to do is after the default slot because it will upright everything we want to get our AO shooter from our asset browser you just drag it let's put that into the bass pose and just put that into the output post now an alpha we want to leave that at one so just don't touch it but our pitch is what we want to change if I put this at 90 as you can see it will now be aiming up and the same with minus 90. so we want to change it again like we did with the speed dynamically while we play the game so right click promote variable and this will be our pitch and I want to do is go into a band graph and basically make some code now you can see uh I don't know why you just opened an external graph for some reason uh just double click in your bank graphic that happens you need to I don't know what happened I never seen that before honestly all right so now basically after that and before we actually go and do the aim because this will apply for all characters it doesn't matter if it's the the same actor what we want to do is basically just get the owner so just go ahead and paste that real quick again now let me post like that actually but we can just do a sequence so the first time uh the first output it will do this and the second output will do some things here and what we have to do here is basically get the base in rotation okay so this will basically give us if we're aiming basically the degrees that we're aiming up down to the left or right and stuff just right click it and split it so we can get all the individual and actors and of course we want to touch the pitch so let's get the other stuff and let's do a branch over here so the first thing that we want to do is to basically get our pitch and then make sure well basically check that if it's basically yeah greater or equal than 180. let's put that into our branch if so we want to get our pitch and basically set it in the true to be [Music] um to get our page and then basically decrease it by 360. this will just basically keep it in range from -90 to 90. and you supply it here but if it's false we want to do it's just basically get it from our direct output from the pitch because it will be in range and with that said that will basically work so everything works as normal as you can see as always aiming but now if I look down act character is looking down if I look up our character is looking up and the same with the aim as you can see so there we go everything is going ahead and working as we want the aim offset let's go ahead and set it up so now we can go ahead and move into the actual shooting so let's go ahead and do so alright so let's set up our shooting system so let's just close the animation blueprint and just open a third person cat blueprint now let's do the same with that we did with the aim basically create a new input so let's go into third person input actions right click and input action it's going to be EA underscore um basically use fire when you say instead of shoot which is a bit more correct and again we don't have to really do anything so again it's closer now let's go into the um collection and this is the same to the other one basically add a mapping and select our fire I know why it opens the other one and now in fires you select this key and now we can just press um the left Mouse button so it will be a sign of course you can go ahead and search it here about it for me so it's easier to click this button you know all right so with that done we can just go here and do our EA underscore flyer again the one with the arrow symbol so again this is not a shotgun or a pistol this is a rifle so what we have to do is while we hold our input we have to be shooting in a loop right um but for now we're going to do is just set up set it so it will just basically file once of course when we have the logic of shooting we'll Implement that Loop that is what we are holding instead of just clicking once okay because it's a rifle um but for the sake of just making the logic for now we just make it so it just won't so the there are many methods of basically firing and shooting them and so on in games right we have the method of physical 3D bullets that fly across the scene or line traces which is a line Trace is basically using invisible line like a right cast that will go from one point and another and from my experience of making firearms in in in a real engine for me it is it works better with the line traces it just feels much better and but for things such as arrows and with a bow or grenades of course a physical object with a velocity will work better but for the sake of my experience with line Tracer which is an invisible line that will go from A to B will just work better so let's get from starter and do a line Trace by Channel the starting point of this line will basically be a rifle as you may remember from the beginning of the tutorial I explained that we're going to be using this bone that we can use to spawn our bullets and which is the one that we want and I think that was the one that we want here so basically Beacon muscle flash so let's just go into the details and just copy the name because it has to be exact all right and looking to get the rifle component and you say get socket and we just get the transform of that stack so we'll get a location rotation and scale in this case we can put the the name and then about the transform space um it has to be actor I believe I'm not exactly sure we'll test it in a second now for this right click so we just split it into the location rotation scale and here we want to put our location now for the rotation we want to basically get the forward Vector so we know where it is aiming right now right what is looking forward and now we can just multiply it by a value so just right click and convert this into a float single Precision so this will be the distance that our bullet will travel now of course this is important this will determine a lot of your gameplay functionality right how far will your bullets travel and how far will you be able to hit the enemies now this is up to you but for now I'm gonna be putting around 3 000. it is not a lot for for a firearm but um like you said I'm gonna be playing with the values as we go and of course you can do so now let's get the location and just add that with our um Vector here and with that that will work so the stress channel will be visibility and I just put this for duration so we can preview our line okay so you will see how it works and we'll also see if the RTS actors will want or we need another transform space so if I just aim and shoot as you can see we are not seeing anything and probably uh wait um wait is why it's not shooting wait wait let me use print to make sure the the input is is going okay yeah okay you can see Hello in here so that's good um and I did set this for duration so I want to say I don't know why right now I'm not seeing I understand seeing that maybe it's because I had to set this in world but you let me just check Yeah so basically as you can see right now we're shooting but this is going in a very bad Direction um basically it's going always into the yeah it's gonna basically always into the left of the um of the bullet right of the arm it's going to the left so what we can do is just quickly check out the components transform space let's see that will work for us uh no that will not work for us I said the last one to spend socket uh that will also not work so the one that we want is the component um sorry yeah component or what no what's world right sorry about that it was both yeah it was what um but we want to change what it's looking so let me quickly see in the bone where it's actually aiming all right yeah you can see the the things are changed actually so what we want is to get this Z because the Zed is looking forward because normally in games if I go here you can see that the um well in this case it's actually the Y but normally is the x is what it's looking for right and that's normally how it goes but um in this case it is changed for some reason okay they created they like that and it's with the z-axis so actually that will mean that we need to instead of get the forward Vector get the up Vector because this Z is the up Vector and with that that should go ahead and fix the issue so press play as you can see there we go now is going ahead and shooting forward as you can see now um right now that is good but I don't like that why I don't like what we just did the thing is that right now um even though is shooting correctly it's not really always going into the center of the screen and let me show that with a simple widget so also it'll work for the future so I just create a user interface with your blueprint use a widget that will be underscore let's name this the hot you search a canvas and just pass it here so we're going to do is just create um the aim Target right I don't know how you actually name it just drag an image set the anchors in the center and body position X and Y to zero for the alignment 2.5 and 0.5 and it's for the size to be like 10 maybe uh yeah pretty small and you change the brush on here to be a circle um in this case we have actually a nan chord so that will work for us so uh what we have to do now is basically in the character in The begin play basically create that widget so you can just use this node which is create widget and we're going to find the HUD and just add and to the viewport so add into the screen right with that said you can see that when I press play it's in the center but our line traces are not actually going into that knob as you can see I know it's a bit small maybe yeah let me make it a bit bigger but as you can see it's 220 um the double but as you can see it is now going into that anchor it's totally wrong at least because the the um the rifle is not really aiming into that point so there's a quick thing that we can do and it's basically okay and this it's just what we have to do but basically instead of going from the the destiny from so we'll begin of course from the rifle but finish for when the camera is looking so let's get rid of that app Vector and get our full camera you get the world rotation and then get the forward vector and put that there and with that small change you'll see that this will now be fixed now it will actually go into where the Target is right and why is that well the reason is that before or you can see that our firearm is basically slightly you know down and whatever so it wouldn't had never gone there but now with that fixed it will always be in the direction that the camera is looking so it will really go into the center or pretty much the center so for now this will work for us okay and you can see that something that's not really go into the center but don't worry I will tune it in a bit later but the functionality is done so there we go let's put this here so it's a bit better wouldn't need that anymore um so now let's go ahead and just apply some damage to where we basically hit so make sure that we have hit something so if it's true and then break this and we will just get all the parameters of what we have hit in this case let's get the actor and say apply damage in this case let's just apply for example damage or three um actually five so this is the damage that your firearm will do okay and later on we'll have the enemies that will have health so you get the idea um and we're going to Sprint something but it doesn't really matter right now what we need to do is also Place some effects right and some sounds which are important you know we need some fire effects and some sounds now for now uh let me just quickly do the loop that I was talking about and we'll add the sounds of stuff so basically we have to make it so that when we are holding all right we'll be basically a shooting so there's actually a way to use plugin triggered and you can see the now if I hold it all it is basically shooting a lot of times basically it might be too many so I think that we can do is a do once okay basically it will just do it once but have a small delay so let's say the right after we have uh hit it something we'll basically shoot it we're gonna make a sequence and here we're gonna make a delay of 0.1 seconds and this is going to be the rate that we're gonna be able to shoot so we're gonna be basically with the interpolation of 0.1 you can see then right now it is much uh many more bullets because we're limiting how many we can shoot each second and of course you can play with that values to get what you want and but let's do like point zero three or something right you can play with the rate this will depend of course you have a submachine gun or a rifle whatever right but for me I think that this for now will work I'm really getting more of a sense of if it's actually working when we add our you know our how we say it a fire effects and stuff now let me do one more thing is that if we shoot without aiming we can also shoot backwards or something like that I don't like that this is the same that we can aim uh forward but when we shoot and without aiming if you get basically look uh backwards or basically what we're aiming uh without directly aiming if it makes sense I basically use you probably didn't understand that but but let me just showcase that right so let me just go before the lines race right after that and let's just copy this to movement so it's going to be basically right rotation to movement and use controller start rotation but actually what we can do is just do a nice custom event that we can call with that function it's gonna be like aim um it's gonna be aim forward I always basically call that aim for let me just put that over here put that there put that there there we go so I'll be aiming forward and now let me just put that actually down and I will need another custom event to do the opposite so custom event stop aiming forward there we go and we'll basically copy the same and paste it here but do the opposite so go back to normal so again Orient back to movement but not to the desired rotation so here will basically go and uh get the the aim forward actually we can just do it and it started in four there we go and forward but when we can sell it and stop essay completed we'll need to be stop payment four so when we start holding it we'll start to aim forward and when we stop holding it we'll stop aiming forward and I forgot to basically plug that in there all right there we go and the same for this one so now you'll see the now that will work if I start shooting you can see the now is looking where that now there's a problem with the feet as though they're not moving correctly but that's a whole other world so if you want to turn on that go ahead and check that out but right now we aim everything is fine of course if we walk a name that's good um but you basically get the idea all right so we have a lot of things done so let's go ahead and basically add our effects so it just sounds and some particles so when we hit and also it's a monster flashes so let's go ahead and do so so for our effects we're going to be using another free asset pack because those are more of an advanced effects that we really would need a whole separate tutorial for them and aggress so we're going to be using the infinite Infinity Blade effects are going to be leaving the description again totally free from epic games so just add it into the part so make sure you go ahead and apply it to show all prices with the wheel ones and select uh 5.1 which is the latest one it's okay it will work so now we just basically have to wait a few seconds once again now what that is basically importing let me go back into my real project and this is because I actually forgot to basically add this shooting animation itself because right now it's very boring and it's because I forgot to add that okay sorry about that so let's go into shooter animations and we have the fire rifle shoot which is that which is what we want so what we can do is just right click going to create and do anime montage and any amount that you will just be an animation that we can call at any time from a blueprint in this case it will be here so right before um doing the line Trace okay let's put this here and let's go and call this which is going to be the play Montage it's gonna be the other one the node with more things and we're gonna get the mesh of the player and just play it here and now select our fire shoot montage with that you will see that we can go ahead and press play and it will shoot and now it's basically shooting a lot as you can see I mean it feels good but it shouldn't lie now when we're aiming you can see that it will not be shooting and this is for many reasons the thing is that we have to basically convert it into an additive animation because if not if you're aiming it will just not do so you cannot just ignore it right um another thing that we can do is change the play rate on here to 0.05 so the animation will have more time to play so it's not like spanning so much you know you can play with that things but um but another thing I want to also do in the Montage is basically used in a name notify so I can go ahead and when we shoot port and the name notify so basically can I shoot oh my God can I shoot around here do you know it's gonna hear so we can add a notify here in the track another five uh Montage notify and on here then I can do so in the notify begin so basically it will not shoot instantly once we hit it will wait until the animation actually goes ahead and shoot and that's what we want now right now because the play rate is too high it will really kind of skip a lot of that and so let's try it but yes a bit better you know can play with the the things um all right so another thing I was talking about was playing an additive animation so it's going to asset details go into the anime type and change this into mesh space and then in here we're gonna say uh scaled once again and then get our idle hip so now you can see it's exact same thing but now when we aim it will also play which is basically what we want so everything is now working so now I guess that the pack has installed that we go now it's uh with the button again so now we have it foldable here so here we have a few effects the one that we want is going to be a massive flash so basically you just go into the third person character and right in here before doing the line trace and stuff which actually I'm taking this so far away let me just put this here I'm gonna do and basically spawn uh it's gonna be a tree system emitter because this is the old Cascade effect which is okay at uh attached uh yes attached do we want that yes we want that okay basically because if not if we move it will look very bad okay trust me and let me also move a bit this over here there we go um so what we're going to do is search for muscle and we'll see that we have two in this case I want the backpack one and attach the component well it will be attached to the rifle and now we can put the exact point of our Master Flash so let's copy the one from here and put it here this is the cool thing about using skeleton meshes as you can see now the location well this will be pretty much this exact location and the rotation will be pretty much this exact rotation of the camera so um that will work for us maybe we want to change the thread for the camera to the rifles a bit better because this is more of a effects but we'll see and pulling let's say Auto release and this will just basically keep relative to offset ability with this and we'll play around with those settings there um but that should be correctly done so I mean let's press play maybe it's too big we'll see memories is too small um okay as you can see it is actually not spanning anything right um the scale is to one okay so maybe it is about this so keep what position might be the thing is that I think if we are there we go all right um yeah okay so we have some things here um we can now see how so this is absolutely huge as you can see but we're getting this so we can change the scale to maybe 0.2 that might work a bit better let's see oh yes that's so cool another thing that we can do is already just get the sorry there's no the for duration to be none so we'll have a debug so it's a bit nicer there we go as you can see now we're shooting and it's looking pretty damn cool as you can see great um now let's do a hit effect okay so when we hit something that is not the enemy and in this case I'm just gonna go ahead and just do a spawn it may enter as a location this time okay this will be I I remember that was called Troll and yes it's a literally troll impact and I was draw death impact is this one literally this is actually pretty good it's like some smoke and don't worry we will not have trolls okay this will be the impact point and then we're gonna get the normal and the way from uh well sorry rod from neighborhood from X basically it will just uh pull it uh outside before it is hitting you know like towards outside of the vertices you know what I mean the scale when we had to change it on this Auto release so let's test that let's hit for example this as you can see the now disappearing is a bit big yes but you can see now it is happening as you can see it's really really cool as you can see um so maybe actually I like kind of this size honestly to be like exaggerated so let's do 0.65 all right let's let's do that may is too much maybe I'll yeah that's perfect I like that you can see how it's appearing I really like that you can see it's always like outside the mesh and this is basically great so we already have a lot of things and to actually now finish up with the effect of shooting let's have some sounds and we'll also include some footstep sounds so we'll have like The Full Experience already so we're basically shooting right from the rifle itself like the trigger on the head okay and then also footsteps so let's go ahead and do so all right so I have downloaded some sounds uh they're totally free I will be leaving them in the description in this case you want to get the same uh the same ones with me of course you can go ahead and choose you know once if you had them but I'm gonna be using this one so literally just go ahead and load them and what we're going to select them and drag them first of all I like to keep everything longer so you right click and create new folder and call this audio and now yes we can go ahead and get our um sounds and it's basically just drag them in and the video we have all them it's going to shift s to save everything you can see four step rifle and concrete I don't know you can really heal them because I have the audio in the and the mic higher than the other one but uh you know let's see what we what we can do all right so the first thing that I want to do is create a meta sound and you're probably putting white we're going to be using meta sounds well basically the thing is that right now if we play a rifle sound when we shoot let me shoot it will be a bit repetitive and almost resemble bad quality but if we can have different variations of it it will make it much better you probably wondering well we only have one sound how can I be making variations well the short answer is by using meta sounds and changing the pitch randomly just right click go into audio and create a meta Sound Source MS rifle fire right let's open this up so now in here I do have a tutorial specialized on your first meta zone so you want to see that check out that so we're going to be using the snow which is the play uh mono sound which we can just play basically a sound in this case it will be a rifle so right now I can play that into on finish unfinished and then uh I'll mono into our mono if I press play it is the same stuff but I can use the pitch and call this node which is the random float connect this into next and into next and I'll put a range let's say that the minimum is going to be -3 and the maximum three if I press play now this is mode difference but you can hear some variations and in the long run it will sound much better of course you can change the value the range so maybe put minus five and five and it will you know make it even more with more variations but I recommend not going too far because now that we just sound different and we'll just be weird Okay so be you know have that in mind now we're gonna do a same exact thing with the other sounds so let's do the same for example the footstep um so this will basically be Ms underscore footstep and the cool thing is that we use duplicate it so the only thing that we have to do is just found the first step and that's it now this one is a lower the volume but it is okay and you're gonna hear it you can just do it by yourself and you'll see and then we just go I did I put your three O's here oh my God normal okay uh duplicate this Ms and this is just hit concrete and basically just change that to the hit concrete step it is so much better you can see now the last thing I want to do is Sound a donation to play them in 3D because if not it will play them for example from a cat or when he's shooting it will play through the whole scene but later on when we get into our enemies and they shoot at a distance right we want to be playing in a 3D space if we get lower sorry nearer it will sound higher and closer to us and things like that right so what we can do is just right click go into what is the audio and create a thing called the sound detonation sa and this will basically just be character because basically we will have all our character sounds like that our inner radius will be basically like 120 and our Fallout distance will be around uh 2000 because normally well you know Firearms can here can be hearing from some distance so you can play with the values but for me that will work um so now we need to go into the three of the rifles and go into the source okay so clicking Source gun continuation you split the character one for the fire rifle for this first step going Source animation character and then concrete this the same Source automation there we go so now we can just go ahead and play The Sounds in this case um on here in the begin before playing the line Trace we'll go ahead and play sound at location in this case we'll be the MS underscore fire rifle and the location will be the get actor location the one that we are currently in you can see the now we hit play that is so cool now maybe it's too high so let me just go ahead and put the mode in multiply it to 0.6 4.65 something like that um so it's not too high but you can play with that wow that's so cool and now this is the same with the hit sound basically when we spawn our hit thing uh I mean let me just copy the whole node but pretty much put it here and then basically there we go and this will be Ms underscore hit concrete press play you can see that my memory is um to Let's 2.35 because it was too too loud basically foreign shooter animations and go into our jug okay and now what we can do is put and play a sound in each foot so basically right now it's doing a foot as you can see so here we can go into 95 strike add a notify and play a sound in this case it will be our MS underscore footstep that we created we can now you select a Ctrl C to copy go into the next one one is Rhino put in there click here put the mouse over it and Ctrl B and I'll do the same with the last one here Ctrl B and then the same here control B and now that is great so as you can see it's playing it's a bit too low but we can change the volume but look perfect maybe I can increase it a tiny bit so it's more appreciated in the recording but I pretty much I think it's a perfect volume but do it for the sake of the recording just in case let me just go into sound here so we can go into Source sound and put it like 1.3 just a bit you know I mean that is perfect wow okay that's gonna be cool so and now um we pretty much have the base of our character controller and everything with our shooting sound muscle flashes and like literally this is pretty pretty cool but I'm not gonna lie this is pretty cool um so now the next thing uh basically should be actually beginning with our aim yes and basically had them first of all use one to go wander around in search of enemies right and their targets and once they locate you go ahead or locate one of their enemies and basically you stand still and shoot and if they get in a certain range they'll get closer and should begin okay that is how it should be we're gonna be making a simple AI so actually we are not going to be touching Behavior trees and as for many reasons mainly is because this tutorial which is really like a full-fledged tutorial and it's really only for beginners and I do not recommend exactly uh Behavior trees for those type of beginners okay so that's the reason so we're gonna be using and use normal blueprints for them which is going to be totally fine I'm gonna have a lot of them but of course this is not gonna make crazy things of hiding or anything don't expect that it's gonna be simple AI okay but with their functionality to the point so we're going to be doing now is basically setting up the AI basically the the their blueprint class director um instead of their animations so that they can work and then they can roam around okay so let's get started with that all right so let's set up our AI so in my case I'm going to go ahead and use a create new folder and call this blueprints so using the feature we start adding more blueprints we have everything organized one of the key things of creating a game and a real engine really any engine like Unity or whatever is organizing everything especially with unreal Engineers assets can be very very expensive and heavy so just right click go into blueprint class and let's create a character because it already have our capsule collider our mesh and our character movement component for our AI to move this is going to be BP underscore in this case it will just be I mean let's just say AI because if you want later on to make teams well maybe so then you will be your ally so it's it's gonna be a generic AI all right let's place this here now in mesh we can go ahead and find whatever we want and it is as it is the same skeleton we can put another uh guy all right another model because it's the same skeleton so it will work in the location and it says one minus 89 and here minus 90 so be correctly placed and aligned one of the first thing I have to do is go into the class defaults and uh search for yo I'm gonna be the same on this because this will force the rotation to be very Snappy another one that I want it to be smooth so let's go and now select the character Moon component go down and let's turn on uh orange rotation to movement as the player has it okay all right so now with that done uh the rotation and mono should be good so we need to go into then graph and let's delete everything instead to begin play and create a new custom event which will be basically a search around so basically this will be just searching around the map to find enemies in this case we're going to be using the AI move to node right this one and palm it's going to be itself because that's the one they're going to be moving and it's gonna be moving itself and then the destination we can basically get a a random reachable point and radius so with the origin of this will be the get actor location because it's basically its current location and this is how far away it wants to look in this case it's going to be something as uh 2000 okay saying well that's not a lot for a whole map well the thing is that once it reaches that point if it doesn't seize anything it will go back and look another 2000 radius out of that point so if it's really the whole map it will look through the whole map this is just uh the radius that will just look at one task at a time and the acceptance Rise Again increases at to 120 no actually it's like 300 because it's actually like let's do three hands from now because really Firearms so you don't want to get really close to things now in success right now I'm going to do this small delay of um one second and then it will be in a loop so go ahead and search around now of course this is wow he isn't seeing anyone if he sees someone he will stop doing this and start attacking right but for now we are only going to be doing the movement of this searching now the gameplay we need to initialize this so let's just say search around and with that said this should work let's go ahead and say search around so everything is nice and organized and again let's put our preset that we created earlier so this will be nice right um press C for a comment if you forgot um with that said uh we can now get our Ai and drag it into the scene okay the thing is that right now it will not move because a real engine needs something to be able to move what it is is too well if we go up and quickly add to the bright we can go down into volumes and add a nap mesh Advanced volume so now if I add this into the scene and basically lock and skill and put it as 20 for example it will basically pretty much you know fill in the whole scene let me just put into the center if I have now pressed p as you can see it will basically calculate all the possible paths that the AI can go this is essential for the AI in a rewinding if not the enemy will not be able to move as simple as that so make sure to press P to check that areas are green if not you have uh not correct replace your box or whatever if I now press play you can see that the AI is moving when it reaches a point it will stop for one second and pick another Point everything is working now he's going a bit too fast for my um to my thing so I support 500 which is very less and to match the movement of the player because right now the player moves up uh 500 so that would be good now is that the animations so we can do is just add the one that we did for ABB shooter now we have with the same name um so let's go as you remember because we retired it so let's go and shoot the animations now let's go into the ue51 and basically the old one let's just put underscore ue5 so we can differentiate that from that and now looking let's go and put the one that doesn't have UEFI the number one um okay so it isn't moving actually okay now he's moving I think that I don't have oh it didn't just update okay so now you can see that he moves perfectly fine with his animation so everything is going ahead and working great so we have an AI already walking around that is so cool you know so let's go ahead and also make that uh he has arrived so so that with the with the player yes in the mesh with the mesh selected just go into add an SV automation this will be a rifle and now we can go into Scout mesh asset and just find our SK underscore ar4 of course you can choose the one they want but it's the one that we did for the socket so we can go up here and press socket let's put RH rifle again no Collision make sure that's on because now it will collide with things I wouldn't want that the this is just cosmetic stuff um and with that he will have a weapon already looking really really cool of course right now he cannot shoot anything but honestly I could damage him so let's go ahead and um play with that um so in terms of applying damage we really did from the player side if you remember then when we hit something we apply five of damage into that actor so everything should set be set up so another thing that we have to do is go into the AI event graph and we have this already built-in event in unreal which is the any damage event any damage so basically when an actor receives damage it will call it will become this event with the damage that we have received so everything Unreal Engine is really good for this type of things um so what we can do in here is basically create a new variable which will be the health of our AI in this case let's change it from a Boolean to float because it will be a number and a float instead of an integer because we want some decimals to be more accurate now let's go ahead and get it I'm going to be set in it so we're going to do in here is basically get our incoming uh sorry let's get our health our current health and decrease it with our incoming damage and now that will be our new health so basically we're just subtracting the amount of damage that we're receiving each time right now we're gonna be checking if the current health is less or equal to zero if so it will mean that it is dead and if not it will mean that well basically it has just received damage so let's just put an output of damage to make sure that it's working and right now you can see it is not interested in damage this is probably due to the um Collision setting so right now for our land range we're doing it in the visibility trainer I've gone to Ai and select our mesh we go to Collision you can see that well there we go that's a problem visibility is basically right now ignoring it so we can go into custom and let's put this to be on block now there's another thing I want to do and it's basically we want our characters to die with a rectal it will look really cool it will just kind of fall with Basics so we need to go into the condition neveled instead of saying no physical solution we need to go into query and sorry no aquarium physics our collection Naval according places and for the capsule component we have now to go and put this to be ignore where it said ignore uh only Pawn because I'm not the own physics of the character when a ractos will be affecting so I wouldn't want that um so with that said we can now press play and attack our guide and um and he doesn't print anything great why is that happening um okay so wait so we are basically attacking him okay um oh wait no yes mines minus it will basically this this should be good um let's put another through here but basically die probably there's something wrong with the Collision still um die and then we're going to do this Ragdoll this character so let's get the mesh and you just um set enable set similarly physics there we go and we just turn this through so we had to Rack though but right now for some reason oh there we go die oh I know why I'm stupid because right now the health is set at zero of course we have to set it to let's say 10 years from now okay well 20. um because when he needs some starting health and now he will start already dead right um so shoot and he's already died but he's not actually um simulating the physics which is actually a bit strange right now um but let me go ahead and do something else too we just got the character Moon component and set the mode the movement mode to be not so he will not be able to continue to move right so now it doesn't move and actually I'm not gonna lie it's a bit weird that he doesn't die but I guess that's because the the things on the physic assets are not probably set up or something let's see so models exactly you can see that there's no physics acid if we also failed to buy physics asset um which let's see guys physical asset uh well it has the one of them it has one of the Mana game which is okay let's just check that so let's go into the AI select the mesh and physics no material sorry um yeah I think it wasn't it wasn't actually from here right at physics someone two over yeah it wasn't from here it should be from here so let's open the mesh asset details and there we go it's basically empty so we have to go into the mesh go into physics asset and apply the one off the mannequin in this case is the one from the path of Castle as you can see you can see path game uh to the done Castle this the one that we want so of course if it doesn't have physics asset he cannot die now there we go we can now go ahead and attack him and you can see there's something where it happens basically the camera will sometimes glitch so let's go back into the mesh go down and go into uh the Collision settings and put camera to be ignore I'm gonna do the same with the custom component set this to um to custom and I'm gonna actually set visibility in camera to be true uh sorry to be false and ignore and it will still uh no yeah it was still damage but now the collisions will be a bit more accurate because basically the well it will only hit where the characters hitting now the capsule so the equations will be more accurate yeah basically that um as you can see now we can go ahead and kill our AI That's cool so basically he will be wandering around the scene right stopping basically looking towards us of course right now we don't have our financial idea of um him test but basically now I if I hit him there we go we can go ahead and kill him so that's really really cool so the next step will be setting up his perception system so we can also go ahead and disable all the filter or remove the filter there we go um so let's set up his perception system so he can basically find us and when he finds US attack us right that's what we want to do so let's set that up all right so to this let's go into our AI basically our blueprint and what I'm gonna do is add a new component called the pound sensing this will allow our AI to have some basically parameters to analyze its environment in this case it has site and hearing and so on in this case we are only going to be focusing on site okay for this tutorial here now we have a few things as the radius how far away he can see us and then the angle and so on for now for testing and decrease this to maybe 80 or 75 it's just a bit triggered to see here so we can hide be behind him um and then also we're gonna put this High radius to like 3000 so we can basically test a bit better our AI okay use it for that and make sure that c pawns is enabled then you know so on right um so now we have this option here on C pod so let's go ahead and basically click this right let's also go ahead and you select this and press C health and just to make sure everything is organized both are here so basically when our AI will detect a new object in this case a new pound which could be us or other enemies um it will call this event and it will pass us our new upon that we're seeing in this case we want to check if it's the player so let's just go ahead and cast to our third person character if this succeeds it means that it is our plan so it's seeing our player and we want to do is go ahead and make a new custom event and it's basically Chase uh Target because it can also be other thing that's not our player so we're going to do in here is use do the AI move to copy this to notes right but now it's going to be a bit different because now it will taste that actor so we want to do is basically call the chase Target I'm going to do here is pass as a parameter the pump so it basically just pass it on top of B and actually we can do that it has to be here so at our actor pass it as a parameter here and now that will be as a third actor and get the power not from the third person it has to be from the pump size and very important so now it will be going towards that actor that has seen in this case we're just making sure that is only you know the the third person character the sentence radius 3 300 yes and then on success success sorry I don't even have to know how to tag let's go ahead and basically just print something but basically it should right um so let's go ahead and just press play now we see says now it is chasing this as you can see how to announce you're dead yeah that was hap that's what happens when you chase me um honestly it looks pretty cool um so basically right now he can run around and see us and then he started chasing us next step will be basically attacking us so basically we're gonna actually go and get some code from our existing shooting system from our and player which is a bit of a mess I have to say uh because we have many things but basically it has to play the Montage he has to play the midterm um and it has to play a sound but for now I'm gonna keep it simple and just do focus on the just the animation and be lines race and let's get this get this and let's get this okay we're gonna be dominicus the effects and so on right now let's get the this nose from the from the line Trace it's copy let's go back to our AI and let's go down and paste this in this case get this right put this here well in this case this will be the notify begin remember that because it's when it is actually shooting with the right pressing the trigger let's put this here like that it's like this this like this and this like this and of course right now it is not from our camera so don't worry about that what we can do is just get from our mesh it doesn't really matter um from that that should work so we can do is in a custom event and go this basically fire let's put this over here so basically let's get this put in here and when we do success basically fire so now it will be shooting once it see it says let's go ahead and put the book type for duration so let's see what it does right now um CSS and you can see that he's shooting but uh completely wrong right and this also has to do with what we did about the axis and so on now it will not be before Vector it is actually in this case with a mesh the right Vector because this is really y so gets right vector let's put this here and now he should be shooting correctly as you can see his is his shooting right and he's shooting me and he's actually you know actually targeting me which is cool now of course his very slow he's just like a shotgun almost don't worry about that we'll fix it in a second but um let's just apply some of the effects actually so let's just get the backpack muzzle flash let's get his two notes as can be sound of the rifle this guy's nose let's go here and that should be in the beginning play before the lines race right so let's just get all this no get all this there we go come on why why are you okay now yes let's put this over here space is this let's put this here let's plug right here we have many things on here too many things two main notes basically let's put this here okay now let's get this settings it lets me as some of them more to here let's get this more to here and then here there we go here okay good uh so let's get the this here the location will be here for a muscle Flash and the rotation I believe it will be this one great um so now he should play some sounds and some muscle mass effect so you can see which is working perfectly now you can see the orientation is wrong once again um so honestly I'm gonna pass just the rotation here I think of the uh rifle so let's see that's a bit better also we need to do that if you hit him and he should know you oh my God he's so stupid come here my boy all right the orientation is still better yeah another place it's almost like broken uh for real is it attention to the component and I think I have the same stuff as the as a third person not really keep well position how to release then Master Flash it's really just the rotation but I mean let's plug in the mesh um it should be good okay so though don't worry about that okay oh fix it as we go um but that's working let's do also the um for when it hits something um so basically playing this two things right and well there's three things four things copy this paste that put it there there we go and now here you just plug in the impact point and here normal and with that he should be ready to go so now he can sees us and he basically shoots when he reaches us and this also increase a bit the distance he which he attacks so we can change that intercept and radius to maybe 450. great and now in the fire let's see how many well we can see already how many times shooting but basically we have to increase this a bit right so what we can do is used uh in the fire any success and the thing is right now he is playing with the interval of on scene so what we can do is go into Palm sentencing and go into the sensing interval and putting this to 0.1 so now he will be sentencing more often therefore shooting more often that's quick oh that's great do you lose me oh no so another thing that we have to do is basically always be looking at you because in some cases if it's at this distance he will stop attacking I'm gonna want that right um he's not seeing me so what we can do is basically once he's chasing the target and he's shooting we're gonna be passing also that Thai actor so let's um let's create a new input it's gonna be actor no maybe the same Target actor in this case I believe it's using yes an actor so let's do the same here actor it's gonna be normal actor active reference and basically we're gonna be looking at the actor so we can do is get the controller uh okay controller and then set the rotation the control rotation so basically gonna be basically rotating the AI to be looking towards what is shooting the actor so we can use do use this now which is defined look of rotation front from where we are right now so get actor location to where the the AI is looking so get that third okay well the actor it is so from there now it's time that he should he should be looking always at me okay which is not exactly working because we uh as we can see um and we get a lot of arrows about the this so let's see what is up to the errors so um yes because of the set control rotation oh I'm stupid because we didn't pass the actual rotation so we have to pass the variable I forgot about that all right so now now he's always looking at me when he shoots there we go uh so now I think that we can actually move from the AI and the lion trees the the Box put it back to none so we're gonna see that ugly red lines and what we're going to do is implement the health system in the players so it can actually damage us too so it's literally go ahead and copy the Whole Health block go into the third person character and just paste it and then it's going to health right click create variable compile select the health variable and put this to be like 50. so we'll have more Health on him and we're actually gonna get rid of the prints we don't need them and select this put it like like so now is it the same so our character can rack though and also another thing to do is disable input because well our player will not be able to to move we can actually just leave the play control empty and we just get the one that right now owns um so we can go into the mesh go down and set the this to be custom as always and then set this to be a collision enable query in physics very important and then the capsule component we can now say nor only Pawn as with it so now if it helps me a lot we should die in theory oh yeah okay so we died but it didn't enable the simulate physics because again we have the error of before which is going to the into the mesh open this up going down into the physics asset searching for manicking and then seeing the one from path game sck casual that's the one we want and now it should do that okay I don't know why he didn't look at me really but there you go it's working um great so I'm liking that um it's actually looking pretty good we can close that um another thing to do right real quick is a health bar so I can see my health so let's go into the HUD and I can just get a progress bar used Dragon here and anchor it let's say it's going to be in the bottom left corner let's anchor it there let's put the position zero and zero let's put the alignment to 0.5 and 0.5 and then we can put the size on X to be around 300 or something and then on y basically like 10 or 20 I think 20 will be good then on X let's put it more into here and Y more into here like that and this size X actually has to be way more it's maybe like 600 and then size y like 40 that's a bit better let's just move it regularly like that I think that's a good point there let's change the color to be red and of course you can put the same values as me as you want now right now if I put a percentage in here what is a percent of 0.7 you can see that we can visualize it but of course that percentage has to be the health of the player now have in mind that the percent goes from a value from zero to one not from 0 to 100 so when you're designing your health you have to have that in mind um but we can keep it actually from zero to 100 when we have right now but changed it in the percentage so we're gonna do it's going to percent and bind it create The Binding basically this is what you said the percentage and always oh it always will be changing that so on here we're going to do is basically cast to the third person character and basically just get the player character so basically we'll be getting our Health right now and because right now we cannot pass like that because it goes from zero to one we need to divide this by a Max Health which right now it is by 100. so if you were to have another Max health or for example 500 you will change this value of course you can create another variable and plug it from there if you want now you can see that that will work and as you can see he's he's killing me you can see the health going down great now this is the same with the AI put a simple help button on him so what we're going to do is just duplicate this and change the HUD to be and AI underscore health bar let's open this real quick let's get rid of the image here this let's put it in the center so position X and Y 0 0. and the percentage we're actually going to be removing The Binding because I'm going to be doing it from outside okay so remove that now go back to the AI viewport and just with the parent selected just add a widget so we can add a widget in 3D in this case this will be the health bar widget so now here we can go into the widget class and assign our AI health bar and it's in here so I'm going to just put it up and it's literally just change the size light like this okay so we can put in here now we can change it to maybe 1.1 it's a bit better one one two something like that it's okay just put it here wait so we can see it right on there so we're going into bank graph I'm gonna add in the button the event tick as you may know the band tick is always constantly running in every frame so let me frame we're going to do is first of all uh get the the percentage no the progress bar well we had to make it both so change the name here to um health bar and make sure to set is available so now back in AI you can just get the health bar no me too oh we need to of course get win together with your class I forgot once you get the widget and I'll cast because this could be any uh widget so we're gonna need to cast into our Mai help bar because I mean even though we of course have the class in here from here it doesn't know which one it is so we need to get it from here and cast to it now yes we can get our health bar and we can go and set the percent of this health bar again this will be our health well the as health divided by 100 which will be the next one and just plug that into in percent and now another thing I want to do is get the health bar and set the world rotation right and probably one why that well if I now press play as you can see the held bar is not visible except when it compares the business is not looking at the camera we want to be able to be looking at the camera so let's go again next closest to three things you're going to AI plug that they're going to be using the same node that we did at four to why can I whatever is happening there you go uh to look at our players so find look at rotation from our current actor position get actor location two and we can get the camera manager and then from there we can basically get the location okay so get actual location and with that we can always look at well the elbow always looking at the camera so exactly what we want as you can see it's very low health because I mean he has like only like 10 on health we can increase that of course into health and put him like 50 and but that's up to you of course you can change the health part the max Health too oh my God all right you're a free game man um but basically everything is working right uh wow you're you're strong man and let's uh let's let's check the interval to be like 0.17 because my goodness he can really attack faster there we go you're now dead now of course you can see that he is still attacks when he's dead let's create a variable to control this he's dead this will be a Boolean sorry white no a Boolean and then when he dies and here we'll set it to be true of course there we go and then in the far we're gonna basically make a branch and check that is dead is not Boolean so basically it's not true okay because now he will be able to fire another thing to do is that when the player dies well the AI dies sorry I keep saying player or is the air right now I'm gonna be disabling the the health bar because we are not interested to see it anymore so we can just leave this this will be to be zero it's he dies and you can see now he doesn't shoot anymore he's held apart disappears everything as we want so great everything is basically going ahead and working correctly so uh we have a lot of things going on pretty damn cool um also you can see I'm gonna actually show you if I remove this from the checking out the third person uh player and I make another AI right and then press simulate you will see that this should attack each other they're not a second can you see each other maybe they actually haven't seen each other but anyway you got the idea um later on they should see each other so I think I'm gonna take that away um anyway the thing is right now once they have a Target and then they lose it they will never come back to search around so a thing that we can do okay is basically in the begin play to um inlay and basically make it uh bigger than the interval so 0.25 and then do the search around call it right and that will basically mean that it will constantly be trying to patrol but if it has a Target because the interval is lower it will have priority and go to search now you can see that that things can happen so actually I'm gonna do another safety check and it's that um has seen Target and here it has seen a Target we can put the team in uppercase uh which is going to be here I'm gonna be setting through a good and then here I'm going to be setting that to false okay go and then I'm gonna make sure in here in the branch West Branch and that he has not seen a Target so with that said let's see now comes to me there you go it has a lot but if I manage to well let me get one out because if I'm gonna go crazy in six million and try to distract him you can see that he goes back to uh controlling but of course he oh he saw him again well basically you can see hey he basically goes back to Patron but instantly sees me even though I okay here we go what are you doing is he really listening to me I'm playing around with you man all right well um yeah because I mean I should basically work disabled if not it will be enabled again I mean let's put this point three maybe okay well yeah it seems to be working but this is my game but don't worry about that so the next thing we'll be doing is finally setting up the map it's gonna be really cool so uh let's get started all right so for our environment we're gonna be using this uh free pack from the marketplates once again I will be linked in the description it's basically a really cool stylized Egypt and we can even you know make it look better with uh you know lighting modifications and things in the in the paths and so on and honestly we can get some really good gameplay so basically just go ahead and add it into your epic games Library as always with the other assets too and now we can just go ahead and click add to project let's go ahead and find once again our project once again also take the show no price very important and then we're gonna change the version into 5.1 which is the latest one I can but it's okay and you say um add to project now we will have this Twitter whatever it takes right all right so it has to import it you can see the button has already appeared so I can just close this and go back into real and now we should have a new folder which in this case will be the stylus agent so let's go ahead and open this we're going to go into maps and I'm going to open the demo map um save basically I just remove the AI because I was testing something um so let's go ahead and wait hopefully will open soon and not crash or anything all right so it has opened and basically got a warning it's okay and we have here the map so as you can see looks pretty pretty damn cool um also some shaders is compiled and so on and I mean let's just go ahead and press play for a second I'm excited to see this oh my god um yeah so it's compiling to my shaders wow but we need to play some you know environment sounds but this is really good and like it perfectly matches our character see see how good I am picking this is I'm very good um and yeah I mean this looks awesome so let's retouch a bit of light so we're going to do is hold Ctrl all and L sorry and then we can position a bit the sound sorry the sound the sun differently now the thing is that I want to make it a bit brighter so what we can do is just find the light source so in this case we have the Skylight and also the light source license is what we want now what we're going to do is use Lumen so change it to movable this will change to of course Lumen uh Skylight make sure you have Real Time Capture enabled you can see is updating to use Lumen which is very important for us and then in the light source gonna increase the intensity maybe five something like that maybe looks a bit better um then in the exponential High make sure that we have the volumetric fog on very important too and then atmospheric fog we can leave everything as default now let's go ahead and check out the pause processing as you can see if I disable it a lot of things changes but actually a lot of thing honestly improves like I'm not gonna lie this is darkening the scene too much so we can touch things over here and really is about the exposure compensation as you can see this board really changes so I mean here it like it doesn't have any limits as you can see super bright we put this as a bit more control so we can play around with the settings and maybe put it here in 0.3 0.3 and honestly that looks way better and um maybe too bright we have to play with the values but um overall I think that looks better we can yeah go into minus one maybe minus one here this is a bit better and then change that there is a that leave us 0.2 or one yeah I think one would do the job I think that this is pretty good so basically the main thing that we touched was past processing but it's into one and then minus one minus one I think that really improves the scene wow this look at the difference man this is such much better like this way better in my opinion at least and then we can touch some uh color grading I mean already I think I believe it does but we can go into the um level yeah already has some contrast as you can see which is just look at this look at the difference it just makes it a bit better and then let's have some saturation let's put like 1.2 no that's way too much one point one two yeah one point one two is a bit better it basically just makes it a bit more brighter you know what I mean uh in Shadows we can add a bit more of a contrast maybe not we can lead that at one okay yeah we'll not touch the contrast as the exposure is already doing pretty much this job on that um I mean there are many more things that you can touch like mid tones or even these saturation in these Shadows I think that we can increase This 1.2 around and overall this is already looking pretty pretty cool now make sure yeah there we go so all the light source right now are set to stationary for them to to use Lumen we have to set them to Mobile so let's go ahead and select all of the point lights over here like I said light source we already did and let's select mobile over here you can see it did like change some things basically use is using Lumen right now uh light source make sure it's mobile and density to five though maybe six a bit better yeah like six um nothing here and Skylight make sure that's mobile and Real Time Capture is on effects ball design of course that was already by default that'll be good all right all right uh now another thing that we can do is actually in the light let's go into the light source I mean I don't know maybe it's too much but we can go down and put light shaft occlusion and then Bloom no no uh let's get that out no we don't want that okay too much anyway this is just basically playing around with some of the things right but for the stuff I think that's pretty good all right so now let's go ahead and um move on into actually placing our wow look how cool this looks our enemies around the map and so on let's go now before starting to place our enemies and so on in the in the scene uh let me quickly showcase something so let's go in third person uh Maps let's go back in here we just got testing map if I were now to get this guy let's put it back right and get another one all right duplicate or not Ai and rotated which is gonna be a dish that I mentioned before that we had earlier and for example I um contrast to basically no simulate out as um you can see that they want be attacking each other the thing is that if we open one of the BP AIS and we go into the pound sensing we have this checked on which is by default which is only since players we have to disable this if not they won't be sentencing other actors that are not controlled by a player so let's disable that and now you can see and then we'll see each other and start attacking now another issue that you saw is that well let's go ahead and preview our line trades when they attack and is that it is well right now it's working but before basically sometimes it is a bit too thin let's see if I can duplicate that but right now they're attacking pretty good they want to embarrass me uh okay for example this right oh yeah because sometimes they see this spectator part and you're probably wondering what is The Spectator part basically sometimes they're literally seeing the players start it is so weird anyway that was nothing there we go okay so sometimes they they won't be able to shoot correctly because they're like stupid or something right there are many ways that we can uh control this first thing I need to do and instead of doing a line Trace by Channel I'm gonna be doing a sphere Trace by Channel because I will just make the bullet thicker and therefore hitting more so let's go ahead and just make it Spirit Choice by Channel is go ahead and hold the start and put it here and the end hold and put it here then the return value plug that one there and then the out out hit put it there so now this is uh empty delete that and plug in it into the branch let's give a radius of around 20. and as uh viewer for duration so now you can see that they hit more often because the the amount of um this big is a sphere okay and they have more space for Collision now it was too much I think maybe 12 is a bit better as you can see now they hit more each other and basically the chances of them being stuck like it happened are way way less so we can experiment with that but I think that that will basically do the job for now so that's pretty cool um so now working is go back into our map and start placing them before I quickly just want to make um make this of the themes okay I know I mixing things up now I said I'm gonna place them in the map then this fix but I just realized now that we don't even have the team system so let me quickly just make a simple team system okay so what we're going to do is basically have Team a and Team B normally you could do this with a bullion but I'm gonna take things to the next level and imagine I want to have different names for each one so we're going to do is create an enumerator so let's go into the right click and go into well I mean let's do this in blueprints right click go into did they move blueprint I know here and do enumeration this will allow us to create a list of things right and this will be teams in this case we can add two of them and this will be team a and Team B and while I'm doing this as an enumerator we only will have two well imagine in the future you want to have three teams in in this case or do uh all the uh I don't know other stuff right this will allow you to just add as many as you want and put the name that you want so it's more versatile and more professional I must say so if we now go back into our AI we can just create a variable named team and this can be of type of what we have just created e teams so now if I were to compile I can also click the I this is very important so we'll be public so later on when we select one from the scene we can change the team as you can see I can now I have a drop down to change the theme and it's just way cooler than you said Boolean come on guys um so we can do that also in the blueprint so basically what we are going to do is um have our game mode uh decide whether one I AI is from one team or another okay I'm gonna do the same with our player let's open our third person character but our player we're gonna make a fix so it's always in team a so it's just easier for us to manage of course you can change the team and do a system to change that but in my case I can just put the the player to be always in team a okay um and again we can just put the I to access it from outside um now let's go back into the AI and um basically yeah our gamer now has to access the team but first of all let's control uh bad about the so I just basically just printed something for my testing but now it's like it was before basically I have to make sure that this Pawn okay um is from the other team so what we can do is to not cast and access this because right now I can just do get a team right it doesn't exist but if I were to cast to my third person character and do now get team now I can but of course this might be any actor at all it could be the enemy the player and we're not gonna be doing 20 casts so we can do is do an interface so just go back into our blueprints folder right click go into blueprint and create a blueprint interface it's gonna be a BPI an odd type API and then team um interaction okay team interaction I guess and we can use name this get team and this will basically output 18. um in this case this is called this theme and then e underscore teams basically it will just give us back our team um so now in here back in the AI we can before doing Chase Target we can now do a Dos Implement interface and put a branch here to check that a contains that interface okay because image doesn't contain that interface well it cannot do anything right so if it has the interface we're gonna do a um ghost cat team right get team and it was this will give us our thing so we're going to do is make sure that this is not equal to our current team as of course this is right now um an index in the team okay so what we can do is just say get boss right no that's not one two end into your byte and then do like that and basically that will mean that is not the same we can also do like this if you want actually not that's the same sorry about that uh basically if so it will be able to attack if they're from different teams so um and if not it will not do anything so now in our AI what we can do is go into class settings and in inherited interfaces we can add or Implement interface we can add our BPI team interaction now you can see that we have a new drop down with our new get team functions double click on this and now in here we can just get our team and output it here and I guess so so now both of these guys are team a so they should not attack them as you can see they're just wandering around whatever I don't know why they're doing that s but whatever now if I put one of them to be Team B they now attack each other so you can see that it is working okay let's put it back to teammates for testing so our everything basically Works um so the only thing that we have to do now is in the player um put our interface so go into class settings BPI team interaction uh interfaces get team just put our team here and that's it so that should be the same with that player now we need to know the game mode is said that it will randomly assign into one of these guys so what we can do is use [Music] um uh go into the third person Blueprints and we'll see the game mode Let's Open this up and let's pull open in in the viewport let's go ahead and add a begin play and now we're going to do is basically get all actors of class I'm gonna go ahead and get all the AIS that are right now in the scene I'm gonna get the uh yes basically for each Loop and basically we are okay I actually want to do is do a get um All actors with text so we can use different blueprints in the future so let's say use character and basically I'm going to go into the AI go into class defaults search for tag and in act or tag very important is in the actor level but character and this has to be exactly written like that okay let me even copy and I'm gonna also add it in the third person okay I'm going to do the same so it will also pick up that let's put our character so actually yeah there you go now we're going to do is a um so this is basically an array right and I believe that yeah we can get the length so we can see how many are there so we're gonna do is get this and divide this by two so basically we'll split both of them and we're going to do is now A4 Loop and go through basically um the amount of this is going to be also the last index so Ctrl there and put a one here so now it will go ahead and pick half of the actors with that tag so basically we'll be getting all the players in the game including the AIS and then basically just putting half of them on one team and half of them on another team okay so in this case it's basically going ahead and run uh basically as many times as the half of how many ones we had in the game so now what we can do is just get this and get a copy copy with that Index right now and we can do a cast well what we can do is actually use our interface again to do the same but instead of getting the team set the team so we can add a new one a new function set team in this case it will be an input with the team so as you can see and and this stuff we can do a lot of times uh themes right out of things uh so now we can just do a um set team in this case because as default all the teams all the actors are set to team a we can put them at Team B so the rest will be already team a with that um it actually should work so if I were to press play that didn't work um of course because we didn't implement it so now we need to go into the AI and do the set team open this up and this will be sort of a functional custom event because it doesn't return anything and then we're just gonna basically use set this theme to beat this new one okay here we just set it and the same with the third person character double click in set team and then use set the theme with the new one now there we go now there are other teams and they will pick and if I were to duplicate this one here that's right and this one here now they're both on both so everything is working great so now yes finally guys we can go back into our map which will do so and we can start spawning our enemies so how am I gonna go into this design I'm basically I'm just gonna spawn a team of players here which the place will include you and the AIS and then also then the team B on there okay that's gonna gonna do so let me just go ahead it's already the playing cement for the player so then I can just go into here and start placing all of the AIS here let's do I mean let's do yeah that's gonna be good now let's go here and now we can put them on here like that so that was that should be five right uh so let's now press play why are you shooting oh yeah so probably you saw my players spawn I don't know why but they do see my player spawn okay don't know why so I'm gonna just put a tag which is player spawn and I'm just gonna make sure that when we see the the enemy okay uh we do another another Branch before or after that it basically gonna get the tag the should be should be the get actor attack okay components by attack no no get tags no that's not what we want well I can just cast to the player oh because this is a pound that's why okay then just forget what I said okay it literally is forget what I said um I'm just gonna go ahead and have a reference to this and destroyed um immediately well actually I think if I'm hitting again no that will not work um okay yes so let me destroy this once the game starts let me just go into the level blueprint and I select this and just right click and create a reference and then just destroy this is weird but it's worth this okay I don't know why he uh shoots but basically we need also a basically the nav mesh balance so let's add a very important to our scene let's put it in a zero zero zero and let's put it kind of in the middle of our scene here put it up and lock it and put like 20 or something 30 50 yeah we need to go to 50. if I press B you can see all the paths made really cool um now if I uh do press play all right so they're shooting each other so uh I anticipated this problem so basically okay so are you gonna see the proximity is working oh wait there are we shooting across the whole map or I don't know hey it's shooting them okay so I um I anticipated this problem like oh look at that okay so we have to promise right now first problem is that because it's random it might be getting one of this which are in this side and you know the game on this assignment them in in that place um because they're setting out another team and the other problem is that they keep shooting once one guy is dead they don't know that guy is dead the first thing I'm gonna do is check the the guy is dead so what we can do is go into the AI and let's use basically get this and the way cast to AI bpai in in the cast field we're going to continue in here but in the here we're going to just do a branch okay and do get is that I'm basically in the false so it's not that it will continue so now uh it should stop in theory and if so we're going to do is do the search around okay uh so that should fix that issue once yeah once they kill you they continue attacking that's cool now there is it's me my character back the links Regal um and what I'm going to do right now is actually disable thing of the game modes and just basically it's going to be team a and then go into this and then set them to be Team B entley okay uh Team B so now they should be Team B yes or Team B so that should now fix um so now we are all here and I know what's happening so uh the thing of doing this is that they're constantly being we set a research around so this will only need to happen if right now they have seen a Target so they have there have been wondering what they try so now that should be a fix there we go then now they're just moving and patrolling so now uh yeah it's gonna be hard that they see each other but the other ones will start to walk too so you can see I know there's an enemy oh no this is my guy so what are some indicators in a second too but oh okay so I think the nav mesh didn't reach that actually let me see yeah there we go the nav mesh didn't reach the other guys so let's move it to just make it bigger let's put it inside that should now reach them um so about the game mode basically I'm gonna make a random spawn point that would work but if you're gonna make uh basically teams by that section I recommend doing it just manually honestly um so now both teams will begin to Patrol should I don't know the other ones are still there yeah they're walking in a very close area so maybe I need to increase their work distance basically they're starting to come and one actually saw me okay so cool we're trying to get something now let's make their indicator real quick so let me just get the health bar duplicated and change this to be AI uh theme all right let's open this so we're gonna basically have we can have a text um just drag a text here the anchor in the middle zero zero and 0.5 and 0.5 and this for example will be team a or Team B whatever and this will be centered great so now back in the AI we can duplicate this health bar widget and put the team widget and now change the class to be the team so now we can increase this and put this point two something maybe 0.25 that's a bit better so now uh basically we have its theme and of course we have to go into the event graph sorry event graph yes yes and then in the ventix when I also get our team widget and pass it in here so they will both be looking at the character and another thing you need to do of course is set the theme so we're going to do is in the begin play before doing this Loop stuff in here and we're gonna be getting our team and then we need to get the widget class and then we need to cast to the team widget and down here we can get the text which is um I'm going to put a name so team text let's put it then very important it has to be set to is a variable so we can use it here so now if I get the theme text I can now set text it's going to be this one and now we can continue with this but then in here we're gonna get this and I believe I don't know but one thing is kind of get no I cannot get anything it'll use all right basically if it's look by default estimate so if it's equal to one that will mean that it's Team B um and if so we'll change it if not no so actually going to do is just make a sequence here and this will just go into the delay thing okay that will just go into the delay thing as we had there we go and the other thing okay well just check basically make the branch here if we are team me if we are Team B okay we'll change the attacks to say Team B but if it's teammate because we already have here teammate we don't have to change it you know so we can just put here Team B and that should work team a there we go so I'll go um and now we go there I should have given me myself more more um how do you say health I know they say Team B as you can see I need help guys so now you can see oh look at that oh there's shooting between each other that's we need to leave wait are you invisible oh look here we go and of course we had we need in the player state to check the amount of um of enemies uh alive in each side so let's go ahead and do so all right so um let's go into the world settings over here and let's edit the game mode which is already picked when we press play the number one but we have to edit so it will be third person game mode and then I'm gonna go into what it says uh the players the game State sorry so I'm gonna go into game State let's press this button so we'll take us there um actually Yes actually we have to create a new one so let's go into blueprints right click blueprint class let's go here and search for game state and you will see that we have game State base uh yes basically is selected and then GS for game State and then um Team death match whatever right I mean what it is right now think that match so now let's open this up and we're gonna go into the basically first of all let's replace it with the current one and you can see if I now press play everything will still be Howard it is except for the third person character which um oh it got the other one so basically oh all right so there are two third person Gamers we need the first one sorry about that um because one was from a packet seems and let's get this one to be the game State there we go so now is how it is before but let's open this and let's go into then graph and basically what to do is have two variables one for the number off um Team a live and this will be an integer and then duplicate this one this will be number of team be a life okay right now it is one two three four five and five so basically will be five in each type so I'm going to spot five here and five here so basically every time a player like us or an enemy AI dies will go and send a event into the game state to update this so on here let's delete the gameplay and let's add a custom event this will be um take one no sorry degrees decrease team your number um okay so degrees team number basically you're gonna have a branch here with a Boolean in this case this will be if it's uh Team a or Team B so in this case if it's team a we'll get team a and it's basically minus minus there was this node we just decrement by One automatically it's pretty handy and if not it will be Team B so I'll use Team B and then get this and minus minus and put this here right um and with that said uh that should be great we should have control of how many team members are alive each time and I'm going to do is on the branch and check if this number is uh less or equal than zero if so we can print for now that print B has sorry print not Team B has one and the opposite okay so again another branch is this uh less than equivalent zero if so in this case it's the other way around team a has one um of course we'll do it properly not as a Sprint but there we go so actually we could test this out but of course we have to call it so in team in the BB AI right every time that we die in some health here we have to do is get the game state and then cast to the class in this case is the GS Team Deathmatch let's go ahead and plug there and then uh basically call the uh where's the where's the uh yeah the quiz team number was yeah and then of course this will depend what team we are so let's get this and then ask this so we need to make a branch here actually we cannot we can pass this here so if it's zero is teammate so plug that there great um and then of course this will need to be the same with the player so copy now go into the third person cat's blueprint and in the death let's just put that there and of course right now if the pair dies really we should respawn or whatever but it's okay for now just press play you can see that our enemies go there they're fighting each other so which of course should have the number appear on screen which we will but let's try to fill them all there we go one dead another one bit okay we need to disable the line trains I always forget and also we had to disable the team when they die okay I think there's only one left where's my team they're not helping me um team team what team are you Team B I don't know teammate I can actually kill my own teammates where is the other guy let's do cheating cheating oh wait is that guy probably like I know are you are you are you team me teammate what are you yeah oh please no no all right teammate has won do you see that it was there teammate has won all right it's working let's quickly just make the UI to Showcase this we'll basically just use the HUD and uh we'll just go ahead and please two texts here so this will be the first text and this will be team a um teammate and then the amount of people you have uh so team a text and then duplicate this team B text and this will be the same but with team B and we have to make both is variable so now every time the game instead we will just update this um so we need false we're just gonna go ahead and cast to the third person character there we go other two person two third-person characters not wow there are two third person characters one is not oh it's it's always the BP no we used to be oh we have to be careful with that guys we have to be careful it has to be the one which says BP wow that I didn't see that big up with that so get player uh character okay actually we're going to do this quickly I think it wasn't installed as object or not uh let's see third person this my one this is the other one so this is the Imposter let's put not underscore third person character so we know that that is not the third person character right back in our game State uh we have that and basically we were going to what we're going to do I literally just forgot and we're going to do uh oh yeah update that so we need um to get the HUD which of course we don't have to save so we had to go up here and basically after we created right click promote it this will be hot widget and now they're plugged up they're plugged there's now basically you saved in a variable so in here we can now get the HUD as a variable and then also get the team and in this case it will be team hey and you know what I got to do is create a custom event which will be just update widget and we'll just call it an update both at the same time so it's basically you're saving us a bit more time so let me just put it right over here all right and then you set text and as a way of doing so that we can merge team a with our value so we can use use this uh no it was format text so here we can put team a two points and then the squarely black bracket and then value then again a screw brackets so now you can see that what is inside that we can have it as a value and we can just put team a live and the same with the the other one so we can get Team B text and then we can just copy this basically paste it here plug that there and then this will be Team B and of course make sure that you change it to the team B value okay very important and with that we can just call it in the false to update widget in both cases and with that you can see that they're here team 18b um and oh okay oh there are five and of course we need to do this at the beginning play too because we need to set the initial values because not at the beginning we will not be seeing the values so now you can see we have right that didn't work um oh it gives an error is it because of the player character maybe we have to do the delay probably is that no yeah basically we had to wait a bit because the blueprint didn't create so the game state will always spawn firstly all right so now if I were to begin to kill the other teams now you can see Team B wait that did I oh okay so we have to make one thing that I just realized and is that we only can that once so make sure that after the print actually even before the print make a do want because if not [Music] um and the same with the third person because now we can keep killing our own selves and we don't want that so we want a do once right over here we're gonna use the is the variable to check but you simply to use the way doing once if we just make sure that that's done so now if it were to uh test that out I mean if I were to kill my own team names right it's a very bad you can see Team a now decreases by one only if I start to attack him more it doesn't decrease so that's basically going ahead and saved um now let's go ahead and see if we can find other enemies maybe I need to put them more out because they're like in their own cave there all right a thing that I have noticed okay guys um with the shooting is that for the enemies is okay but for me a lot of the times the the bullets will not really go where there's oh okay and the first thing you want to do is with the same change of the um Spirits raised by channel so let's copy that from the AI let's go to third person and basically we will say here you space this and replaces a whole control hold Ctrl hold Ctrl and then hold Ctrl and hold Ctrl and now it should be a bit better okay it should uh cache the enemy into that better so let's see if that's a bit better and for now what we can do is just spawn directly the the trace from the camera always and not from the gun wow that's that's way better as you can see let's see let's play a bit more yeah it's better that I like that okay so let's go into the AI get the forward duration to none and third person to none so there we go we can close all that great so uh let's do the um final thing of the widget of who won so quickly just going through here this will pretty much finishing the uh course okay don't worry about that the tutorial course which is literally on one video this is crazy I'm going crazy doing this but it's what it is you know I want to help you guys out totally Friend YouTube is crazy um and this will be winner uh well team winner uh Team winner yeah but that's it uh let's open this we can go to Canvas and just drag it here and we are just literally for now he's gonna get a text and just put a bit bigger so the font can make it like that maybe 80 Center this put this in the center X and Y and then 0.5 and 0.5 and with that is here so we can use change it uh to be team something one and we'll change it depending on who actually won so this should be winner text and it should be a variable okay and this basically this widget should create when that happens uh so let's go again into the game State and let's open this up again important DeLay So it in the gameplay basically here instead of now printing from the true we can just say create widget in this case it will be our um team winner and then what to do is get the team winner text and then go and set text in this case is this one here for the first output it is for team a so will be that team B1 because team a died then very important remember to add it into the viewport if not it will not be in the screen that's basically it's copy paste this plug it in through here and change it to be team A1 with that it should be good so I'm gonna kill all my team members it might sound bad but I I want to try this out so there's only two left come here it's so weird I'm killing my own team members um this is my team member yeah it's only one left where are you I'm crazy what is this where's the other guy guys I am stupid I am the left one on team a I am okay that was humiliating uh let me just die there you go team B1 everything works um now an extra thing to do is to set game pause to be true because it's nice to pause the game wait I said we already have a lot of things on our game I'm not gonna lie this is so cool like for real best friend to kill the other team members I'm gonna die why have the health so low like I always forget all right there's one left and of course you can change the team uh you can change the oh they're killing them team me team A1 oh okay but the pause doesn't look very good actually yeah no we'll get rid of that pass of course we can change the velocity at which we walk we got you know more animations and so on so you can do so many stuff that you want all right so we're gonna do the last uh final touches for this massive tutorial that pretty much is like a full Master Class of course however you want to call it but basically going to be adding some kind of obstacles in between the paths so it's a bit nicer so you can kind of get covered and stuff nothing crazy already the level is so good but basically some boxes around here then what we're going to do is basically change the team uh color so basically team a will be um blue and Team B red so it can distinguish because um you know sometimes it's a bit hard to read um with the light and so on and finally we're going to be adding some more sounds in this case basically a desert Ambience and then some kind of combat music for you know the match or whatever um so let's get started so let's begin by just adding some of the boxes over here so we can cover basically some cover so let's go into the stylized Egypt folder I'm gonna go into the meshes and I'm gonna go into props I'm basically going to be using one of these boxes so we can start dragging them as you can see the size is already pretty damn good and I'm gonna lie and then also we can add this one uh and then you just rotate it put it around here right and basically like that and honestly I don't know why that uh lower screen glows I'm not gonna lie I have no idea why that happens I believe it might be um because something of the 5.2 because literally you only have this one 5.2 but whatever so you can see basically just adding some bugs like that nothing crazy um to use guess uncover and so on we can do the same here for example we can just put some like this around here there we go and one here I guess we're data like that then we can go around here and uh put for example around here too this reggae for like this then this one here rotated and then this one here potato so basically the guy gets a cover here and then also maybe in this kind of corner you can sneak peek really it's really annoying the glowing in the screen it's kind of like I don't know why but whatever right um like that so okay maybe you can add some in the interior okay for example right server here in the back okay so they can kind of cover what you can cover of course so if you go we can just drag it and put it over here like that and I think that's pretty good nothing from the other world this is basically just adding some more kind of covers and go and go ahead and shoot and so on you know what I mean it has a bit level you can add more okay um but let's go and change now the team color so we're going to do is do it when we assign the teams right in this case what we're going to do is just open the AI all right so go ahead and call E to open this up and as you can see uh in the beginning play we get the team widget and if so we do it like that so first of all let's just open the uh they will be AI Team all right and select it let's make in the appearance the color by opacity by default to be blue okay so by default it will be blue let's make it a bit bigger so maybe 27 and then that will allow us to go into this drag brush so I struck brush now um where's what is it outline here and then add some outline so for example we're gonna add three of outline okay we can change the color to be like a darker blue okay and now we just make it a bit better so there we go we have Team a over here uh you can see that's way nicer I can identify my teammates way easier and then let's do it by of course for um the team B so to change now the um Team B color just open the BP Ai and let's go here into their begin play when we set a text let's now get the text and we can go and set the color and opacity in here let's put this here let's do a make slate color now we can put the color in this case we'll be kind of uh reddish okay so you can play with those settings as you want let's see that I will apply so I'm going to do is just put real quick and current camera location so I can go into their point and just press play to see if they will change there we go you can see the color changes but they still have the blue outline which doesn't look really nice honestly so we can do is now get the text and do a um set font okay in here what we can do is now do the same of uh make font info the font family will be Roberto and the both typeface sorry will be bold before on time we're gonna leave it empty now in outline settings let's go ahead and make some settings in this case the font size was four I believe so it was um for the outline so it was three and then we can expand this and just put the color in this case it's a darker red honestly I will see if that looks good and then the size was uh 27 yeah 27 almost so now that should we solve the issue so let's press play and there we go now they have the outline and their appropriate color so that is great so now we can go ahead and continue on with our sounds let me close this and let's do so all right so I have my uh basically my Sounds here I'll leave them in the description as always so we'll have a desert Ambience and a battle music loop as I mentioned before so let me just go ahead and grab them interact them into the audio folder we go so now we need to open both okay in this case first of all the desert Ambience Loop and we have to make sure that looping is set to true save it and now let's do the same with the battle music Loop go ahead and put it as a looping all right so good now what we can do is for example open the game mode and play from the game mode uh or from the lab you decide actually you know what let's do it from the level because maybe you want to have different levels with different themes and maybe a desert sound playing in a you know in a forest wouldn't be a great idea so what we can do is just click this button here and open the level blueprint you can see we already used this to destroy the player style for some reason the enemy's attack the players start so you good idea what we're going to do now is just play sound 2D in this case let's do first of all the desert Ambience Loop now right now if I press play you can already hear it it's not super noticeable but it is good maybe in recording is even less noticeable because I have it lower than my mic but it actually sounds pretty good now let's go I am copy and paste this and now the battle music Loop now maybe this is too high at the start so let me put this to 0.5 so it's half the volume let's see that's even too much Sprint 0.2 Maybe let's see that's a bigger too much again 0.1 I'm literally just that's perfect I mean very it's a bit better to have it yeah but um the desert and means point Sorry 1.2 and this like point one eight you know maybe increase a bit yesterday both that's a bit better you can play with the um you know sounds as you like okay um so I'll go ahead and leave them like this now the last thing we'll do we're gonna do real quick is just uh go ahead and get rid of the print messages so let me use enter in the AI so you select the AI Ctrl e to open the blueprint we can now go into his health and just get rid of the diaphrase and also of the damaged print that we just make it way cleaner and I think I'm gonna have any more print messages here now it will be in the third person I believe we have also in health maybe let's quickly check that out all right actually now we're gonna have any more prints that should be good but I think we have in the game state if I'm not mistaken let's check real quick game State sorry to open this up and no we actually got rid of all the prints actually so there we go great so that should be now clean as now yes the last last thing that I actually forgotten is to disable the team uh text when the enemy dies so in the BB AI is enemy when we also disable the what is the health bar uh let's also get the team widget I just anchor it on here and that should be it so that's the whole tutorial if you found it helpful I really appreciate you collect the video and subscribe to my channel I have lots of Unreal Engine 5 tutorials and videos so check them out join my Discord server with a community of more than 2 000 game developers and follow me on all my socials as I'm posting this video tomorrow I'm doing a giveaway so make sure to participate and now yes with what I said bye bye foreign [Music]
Info
Channel: Gorka Games
Views: 264,489
Rating: undefined out of 5
Keywords: games, videojuegos, unreal engine, unreal engine 5, ue5, third person shooter game, tutorial, unreal engine third person shooter game, tp shooter game unreal engine 5, ue5 third person shooter, ue5 beginner tutorial, ue5 how to make a third person shooter, unreal engine 5 simple beginner tutorial, unreal engine 5 easy shooter game, unreal engine 5 beginner game, unreal engine 5 how to make a shooter game on unreal engine 5, unreal engine 4, ue4, beginner 3rd person shooter game in ue5
Id: whHWEObyIbQ
Channel Id: undefined
Length: 180min 23sec (10823 seconds)
Published: Sat May 27 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.