k at it, I'm gonna look at it in this view to make sure that I haven't forgotten to press S and that nothing crosses over. Yeah, so far so good, that looks wicked. Okay, so now what we need to do is just make sure that one and 25 are identical. So I'm gonna select the hips, that foot controller and that foot controller. So I've just copied them all or selected them all at once. Then I'm going to copy frame one, move to 25 and paste. And then we'll let that play through and see what's happening. So there will be a little bit of lag on 25 because that is one and 25, the same frame is playing twice. And I want that for now, but if at any point you want to preview it without that, the frames that we'll let's say export, we just take off that frame. So I'll just play 24 frames and it removes that little bit of lag. So let's just have a look in this view here. That's not bad. So as you'll no doubt notice, it is a little bit mechanical, but he's a robot and that works. So, so far so good, we've got the legs done. The next thing we're gonna do is just a little bit more work on the hips to make sure that the walk looks a little more natural. We're still gonna allow it to be mostly mechanical, but we'll add some rotation in the hips just to make things feel a little bit nicer. So I'll select the hips and we're gonna go to frame one. And what I'm really interested in for this one is the rotate. So you can see currently we have keys on the rotate, but nothing's happening. So I'm just visualizing this in my graph editor so that I can see what's happening. So the only thing that we should have changed at the moment is this translate Y. And whilst I'm in translate Y, we can see that there is this particular curve here doesn't make a lot of sense. So I'm gonna select it, and then I'm gonna select, I'm gonna shift select that, my tangents and just rotate that around.  Okay, so that sorts that one out. Now what I'm interested in I believe is rotate X. What we're gonna want to do is rotate the hips forward a little bit. So I'm just gonna do this and you can see that up here it shows that it's the rotate X that's moving. So that's the axis that I'm gonna be concentrating on. And we want to lean into whichever foot is making contact. So what we're gonna do then is on frame one, I'm just gonna want to rotate it towards the left foot. So if I just rotate, and I only want to do this slightly because I do want this to be subtle, I'm gonna rotate so you can see that to put that foot forward, it's going minus. So I'm gonna do I think on that one minus two. And then what I'll do is reverse that on frame 13. So I need to just press S on frame one first to make sure that that sticks. And then we're gonna go to 13 and we're gonna just put two on rotate X to reverse that and press S. And then we know that on 25, let's just bring 25 back, we need to have this identical to frame one so that's gonna be minus two and we'll press S. Okay, so you can see that our curve is there, but there are now a lot of curves that aren't really helping with this. They're just getting in the way. So I'm gonna select these three key frames here and just hit delete on my keyboard and same for these here. And you'll see that that now creates a bit more of a smooth curve, which is what we wanted. So now as we play the walk cycle, I'll do it in this view. You can see, mostly because it's illustrated in the arms, that he is swaying left and right a little bit, which helps to just add a little bit more magic to this cycle. What I also want to do is give him a little bit of side to side wiggle when he's got a foot planted and he's putting all his weight on it. And we're gonna do that on frame seven. This is where he's got plenty of weight on in this case, his left foot. And this one, I think is gonna be this axis here. And we can see that it's showing us lots of changes, but the only one we're really interested in is rotate Y for this particular one. Because that's the one that's moving the most. So on frame seven, what we need to do is make sure that that hip raises the one with the weight on it, like that. So what I'm gonna do is I only want this to be subtle again, so I'm rotate Y, which is the one that I know I want. Let's just put this straight again. I'm gonna set this to two and that'll just rotate it in slightly and we'll press S on there. And then we're gonna go to frame 19 and we're gonna put minus two on this one. And we'll press S again. And then you can see that these keyframes now need to be here. If we delete them, it will delete them off of the rotate Y as well. But you can see that's now going up and down and back up and that's creating a nice little loop as well. So let's play that and see how it looks. Have a look at it in this view. Just take that extra frame off. Yeah, that's not bad. That's looping fairly well. There's a little bit of a sharp change here. I think that's gonna be okay. The next thing we're gonna do then is we're going to kind of move up our model and we're going to sort of counter what's happening in the hips on the chest because as one leg move forward, so let's say the left leg moves forward, the right shoulder tends to move forward. But you can see that as this leg is forward here, it's the same shoulders forward. So we kind of need to counter that a little bit. Before I do that though, I'm just gonna go back to my human IK control and I'm gonna change to this, which is selection. So I'm no longer now moving on the kind of whole joint chain. It's just a particular part of it. And that's because one of the things of this rig is that even though it's really great to set up, there are some quirks to animating with it. And for this particular part, we need to just move here to make things work as expected. So let's just get ready for this. So we're gonna make sure that we're on frame one and we're not gonna animate on one of the controls this time. We're gonna animate on this actual joint. So it's called RobControlSpine is the name of it. And you can see that it selects kind of everything above the hips. And what I'm gonna do is just see which axis I'm rotating on. So it's the x-axis, which is good. And I'm just gonna need to bring this forward a little bit to counteract what's happening below. So I'm probably gonna rotate it forward by about five, I think it looks good. Yeah. So then I'm just gonna press S on that. Go to frame 13 and I'm gonna invert that. So it's gonna be minus five. You see that that has now inverted, so press S. And then on frame 25, let's bring 25 back. I'll go back to five and press S. And then we'll just see what that's looking like.  See what that's looking like in this view. Yeah. And that's a lot better because it's just counteracting what the legs are doing. And it makes everything look like there's more weight going on in this walk cycle. So that's pretty good. Now it's time to make him look less like he's walking on a tightrope. So I'll take his arms from being in the T position and get them swinging as they should. So let's just move back to frame one for this. And for this one, I'm gonna be working on this arm that's closest to us first, which is the right arm. And I'm not gonna be using this controller because we've changed the method. If we try and rotate it, it won't work on the controller anyway. So we are gonna be working on that joint there. And it's called Rob control right arm. And you can see this one will let us rotate it. Before we do that though, it's gonna be easier to just get the hands kind of in the position that we want them in before we start swinging them around. And for that, we do actually want to go back to body part control in the human eye case. Let's just put that on. And then what I'm gonna do is try and make a fist. So if I get this end controller here, and if we just rotate this round a couple of times, you'll see that it bends in the two finger sections. I'm gonna get them bent nicely around. That's kind of nice. And then we've got to do the same with the thumb, but first of all, we just kind of need to bring it down, which is that axis there. And then we can bend it in a little bit. It doesn't matter if they overlap a little bit. That's fine. If we move for a fist on that side, let's repeat that over here. Okay, so we've got our fists in place. That'll just make it look kind of nice. And then we're going to go back to human eye case. We'll just go back to selection. And then we can start to do what we need to do. So as I said, I'm gonna be working on the character's right arm. Okay, so we're gonna rotate this down. So what we need to do first of all, I just want to make sure that I can see my channel box here. And I'm gonna rotate this. I don't want this to go too far, something like that. And then we're gonna need to rotate this forward. It's the left leg forward, so it will mean that the right arm needs to go forward. Something like this. But what we also need to do is kind of just curl it in a little bit as well. So that's the decent starting point. And what we'll do then is just on that controller, we're gonna press S.  So what we'll do is we'll move the arm back. And then, so if we move it about like that, we're also gonna need to move it in a little bit. And we're gonna need to do that. And you're gonna see a problem that I'm gonna have with this. So you can see that's kind of where it needs to be. That makes sense. And we'll press S. And then what we'll do is we'll just take frame one, we'll copy that, and we'll paste. So that's gonna give us our loop. So if we just start by looking at this view here, let's play it, that's not too bad. But if we look in this view, the arm really kicks out as he's swinging it. And this is another one of those quirks of this rig. The way that the arm setup is not quite ideal for the arm swing. And so it can take a lot of trial and error to get this to behave itself. So I'm gonna show you what I've done. And you can just use similar values to how I put it together. So it took a little bit of trial and error, but I'm just gonna put in the values that I know that I like for this. So rotate X, I'm gonna put in minus 30. So I've moved to frame one for this. So we'll do minus 30 there. For Y, we're gonna put in 70. And for Z, we're gonna go minus 55. And we'll set that. And then we're gonna copy it to frame 25. Like so. Frame 13, what I want on this one is 75. See, that doesn't change much. 70, this won't change much either. And 85. It's changed very little from where I had it, that this will make a difference. And then if we play this again, you'll see that the swing out is still there. So what we're gonna need are some frames to sort of correct this. I call them correction frames. We're gonna need one on seven and one on 19. So I'll go to frame seven first. And then the values that I like for this correction are 35 on rotate X, 70 on rotate Y, and 20 on rotate Z. Like that. You see, that's just brought that in a little bit and then we'll press S. And then we'll move to frame 19 and put in the values that I like for this one, which are going to be 30 on the X axis. On the Y axis, we're gonna have 75. That just brings it in a little bit. And the Z axis is going to be 20. And then we'll set that. And at this stage, if we play it, you'll see that it does kick out a little bit, but it's more that the arm goes behind that looks quite good. And once we put the bend in the elbow of the arm, it's also gonna look pretty good. So what we'll do now is we'll actually set the animation up on the elbow to sort of finish this off and make it look quite nice. So we'll stop that play and go to frame one. And I'm just gonna select the elbow joint there. On frame one, I'm gonna set the Z rotation, which is this one. And I want that to be so that it looks kind of like that. Yeah, that looks good. You can see I've just created a bit of a bend in the arm there. So we'll set that on frame one and we'll also set that on 25 because they need to be identical. On frame 13, which is when the arm's back, we're gonna set the Z rotation to almost back to zero really. So let's just do that. I don't wanna go all the way back though. That's pretty nice like that. So it's around about three and a half. So if we have a look at that again, so I'll have a look at it in this view here, you can see that that arm bending forward adds a lot to this arm swing. If we have a look at it in this view, it also now helps the arm not to look like it's swinging out so much and makes it look quite natural, which is what I'm looking for. There is one more change that I want to make to this arm swing though, just to add a little bit more fluidity to it. So with the elbow joint selected, we're gonna put an offset on it. So let's just get all the rotate values and we'll select them and we're gonna do curves pre-infinity cycle, curves post-infinity cycle. You can see that that now keeps that animation going forever. I'll select them all and then holding shift and my middle mouse button, I'm just gonna move them along five frames. So there's one, two, three, four, five. And you can see that has now moved along. So if we now check that out in this view here, yeah, it just makes the arm look a little bit more casual. Let's just take off the extra frame to remove the bit of lag in there. Yeah, so that's not bad at all. That's the right arm complete. And what we do for the left arm is we basically just repeat that that we're reversing the frames. Because we know what the values are that we want, we'll just type these in and make it nice and quick. So let's go to frame one, select the shoulder. So the values that we know we want for this are 75, 70 and 85 and we'll set that. And we'll also set it on frame 25, beautiful. Then we'll move to frame 13 and make our change. And that needs to be minus 30, 70 and minus 55. And that kind of brings that forward. So we'll then set that on 13. So we're happy with that. Then we need to get the elbow. Oh, no, no, I've forgotten a step. We need to go back, we need to go back and we need to put the corrections in. So on frame seven, we need to have the correction of 30, 75 and 20 and we'll set that. And then we'll go to 19 and add our other correction, which in this case is 35, 70 and 20 and we'll set that. And that just stops things from going too wild. Now we can move on to our elbow and in this case, we're gonna have on frame one, our Z rotate was about 3.5 on the other arm, wasn't it? So we'll set that and just put a slight bend in the elbow and then we'll set it on frame one and frame 25. And then let's just check what value we had on the other arm on frame, well, it was frame six now, wasn't it? So it was basically 48. So that's what we'll set this one to. So on frame 13, we're gonna set it to 48. Awesome, we're gonna press S on the keyboard to set that and we're gonna get an offset going on as well. So let's just press A to view all our curves, make sure that they're all showing up, select them all. Then it's gonna be curves, pre-infinity cycle curves, post-infinity cycle. Yep, that's working. And then we're gonna offset these by five frames. One, two, three, four, five, brilliant. And then we're gonna take off that extra frame so we can preview and let's press play. So that's not bad at all. How's it looking in this view? Pretty walky. I like that. The last step that we're gonna do then is to just add a little bit of weight to the head and then we can call this walk cycle complete. And I'm gonna do that on this joint here which you will see can control this angle on the head. So we're gonna go here. So on frame one then, what we're gonna do is just rotate this up slightly and it does need to be just slightly, something like that. So I've gone minus 0.335 on that and we're gonna set that on one and 13 and 25. Set. And then on frame seven, this is when we've kind of finished putting the weight down, we're gonna move the head down a little bit. And this we're putting our offset in by default here but we're gonna move this forward. Again, not too much. So I've gone about 2.3, so set. And then on frame 19 we'll do the same. I'm just gonna type this in 2.3 and set. And then what we'll do is just see how that looks in this view here. Let's just take off that extra frame. Yeah, and that just adds a little bit of a bob to the head makes it look nice. So let's just have one last preview of this before we wrap up. So I'm just gonna turn off these views here. Take a look at it in the front view. Nice. So keep in mind that there is a lot more that we could do to this. We could have had a lot more sway to the hips. We could have if we wanted to sort of counter-animated the head to make it hold a bit more straight when he's walking but I quite like that it sways. I think it looks charming. Some people don't like that and you might choose to take that out. You can continue to work on this as much as you want but for my purposes and for what I want to do I'm gonna consider this done. So let's just stop that preview of them. And we're gonna go to file, save scene as and I'm gonna call this one walk cycle. So let's just change the name. So 13 walk cycle. And when it becomes time to export this from Maya and import it into Unreal Engine we'll be coming back into this file just to make sure that we export all of the frames that we need. So we're not 100% done with this yet but we are done with it for now. What that means is that in the next step we are going to be attacking the run cycle. So I look forward to seeing you for that. Well done for getting the walk cycle complete. We are now going to put a run cycle together. So this is gonna be the last of our complicated cycles that we need to do for this character. So let's do what we've done so far and we're going to just open our clean rig again. So let's go to open scene and what did I call it clean rig? There we go. And now because of the way this is set up I just need to set my cameras up again so I'll do that quickly. So that's the camera set up and now this one's going to be about a 22 frame cycle. So what we'll do for that is we'll put in up until frame 23 so that we've got room to loop this and we'll take the final frame off when we're done and we'll get straight into it. So we're going to go to frame one which is where we are and let's just go to the channel box so we can see what values we have and we'll select the hips and the first thing that we'll do as we normally do is just take the hips down a little bit. Yeah, that was pretty good. And we also want to rotate him forward a little bit so that he looks like he's got some forward momentum and we'll just rotate him forward and what looks good about that and that will then necessitate just selecting the head controller and bringing that back so that he's still looking forward. He shouldn't be looking at the ground he should be looking ahead to where he's running. So that looks quite awkward so far so now let's get the legs sorted. So we'll get the left leg first and we want this one to be the one that goes forward. So let's just bring it forward a little bit and a little bit and think about where we want this to be. So we're going to want it to be slightly higher than this. This is called the straight leg pose and actually both feet are above the ground. So I'm going to go for something like that and that should mean that I can bring it further out and we also want to just rotate this around. That looks pretty nice. And then we're going to get the right leg and this one needs to go back. So let's bring this one up a little bit. We're going to take this one up quite high to get started I think, bring it back as well and let's just work out what the rotation is going to be as well. Yes, something like that I think so we want this to be quite bent around. We're going to get like the floppy effect on the foot so that looks pretty good. And then we'll move that back further, something like that. We're just going to bring that up a little bit higher. Yeah, that's quite good. So that kind of creates our first position on the leg. So you can see that this leg here is kind of going out and forward. Just double check the position of that to see if I'm happy with it. I'm just going to bring it slightly further forward just to get the extended leg. Yeah. Okay, and that's going to do it for frame one on the leg. So we need to set the hips and both feet controllers and then we'll just press S on the keyboard to put that first frame in place. Now we're going to move along and the kind of center at the end of this first step is going to be frame 12, but we're going to just mess with the spacing a little bit so that we get a sense of hanging in the air and the feet moving quickly and hopefully this will become clear as we put it together. But what that means is we're just going to move two frames forward for this next pose and that's going to be to frame three and this is going to be our down pose. And because it's the down pose, the hips are going to move down a little bit. Only ever so slightly, something like that, I think. And I'm just going to set that key on there now and then we'll get the left leg and this is going to now be flat on the ground. So we're going to take the rotate off of the Z axis. Make sure that's going to be flat and then we need to work out where we want this to be. I'm also just going to turn off cameras here so it's clear that this is the ground, this line here. That's what we're aiming for. So let's just bring this down to about there. Just going to bring this back a little bit more. I like that, yeah. And just make sure that I'm happy with the position of this on the ground. Yeah, that's pretty nice. And then we're just going to do some work on the right leg as well. So we'll get that selected. Now let's just move this into place. So I'm going to actually make this a little bit higher. And position kind of like that. We're just bringing this forward. The down pose is also kind of a cross between the down pose and a passing pose in a walk cycle. So you can see that this leg's starting to come forward as well. And we're just going to move the rotation on this foot a little bit so that it's not quite as harsh now. Yeah, that was good. Okay, so that position feels pretty nice. Let's set the keys on both feet controllers and on the hips as well. And now, so we've done frame one, frame three. We're now going to do frame five and this is going to keep the movements quite snappy. And then we're going to start spacing them out a little bit going after this. But for frame five, this is what we call the push pose. And we also need the hips to be moved up a little for this one. So let's make sure the hips are selected and we're going to move this up. Yeah, that was good. And on this one, the left leg moves back quite a lot. I think you can see that's now struggling to contact the ground. So we're going to have to rotate the foot around as well to make this happen. So let's just get that set up. Let's see. That looks pretty good. And that means that we can then move this up. Yeah, that looks nice. And now we can move this back. Yeah, to about there, I think. So I'm happy with that, but the left leg being back means that the right leg now needs to come forward. So let's bring this forward to about there. And I also want to move it down. That's far too high. That was good. And then obviously we need to rotate this around as well because that doesn't look right. So let's just bring that to about there. We still want a little bit of drag on this. We're not going to make it perfectly straight. Something like that looks pretty good. So I'm happy with that as a position. So that's the push pose done. So let's make sure that we set keys on everything. So the hips and both feet. And we'll press S on that. And now we're going to move, instead of going to frame seven, we need to now start to slow this down. This is where we're going to begin to like hang in the air. So we're going to move to frame eight. And on frame eight, we're going to put our up pose. So now the hips need to go up to their highest point. So let's select those. And we're going to go a fair bit higher about that, I think. And if you want to make sure that yours looks like mine, you can always copy the properties I'm using here in the channel box. So that's my hips in place. We're then going to get the left foot. I like to do the left foot first. And this is going to go back a little bit and maybe up a bit too. Let's move it up first. Yeah, that's quite nice. And then let's move it back a bit. Yep. And we're going to have to rotate this as well, just to make it make sense. Yeah, that's cool. So that's now behind the character. So let's get the right leg. And this is obviously going to need to come forward a little bit now. So let's move it forward first, if it'll let me. No, I need to move it up a bit as well. Yeah, that's better. Let's just keep moving this out. Yeah, that was pretty nice. And this now does need to be rotated again. So let's get that to where we want it to be. Yeah, that's pretty nice. So you can see is now leaping quite high up in the air. And that's just come from the push post. It's pushed himself up into the air. And now it's kind of swapping his stride over. This is all looking pretty good. So let's get the hips and both feet controllers and we'll set a key there. And that basically does it for the positions that we need. What we need to do now is frame 12 needs to basically be identical to frame one, but we need to swap the leg positions. So let's start setting that up then. So we'll go to frame one first of all and we'll select our hips. These are just going to be identical. So we're going to copy that, move to frame 12 and paste. Lovely. And then we need to copy the feet but swap them over. So just so I can kind of organize this in my mind, I always go for the back foot first and then I copy it. And then I'll select the other foot, go to the frame that I want to be on and then paste. And you can see that that has worked apart from the fact that as with the walk cycle, the foot has swapped over. So we need to just invert this x-axis, take away the minus, press enter and then we'll press S just to make sure that the key frame is set and the foot will stay there. And then we need to do the same for the foot. So we'll go to frame one, we're going to copy. Now we're going to select this foot, go to frame 12, paste. And then invert the x-axis and set the key frame. Okay, so you can see that these first two frames are quite close together. And then it got a little bit slower and then slower again. And that makes it kind of hang in the air. And now we're going to repeat the same kind of timing and spacing. So that's frame 12 done, I'm happy with that. So the next one is going to be two frames on frame 14. And we'll be copying from frame three to get that. So let's go to three and get the hips. We'll copy that. Then we're going to go to frame 14 and we're going to paste. So the hips are fine. And then back to frame three and now we need to start swapping the legs over. So let's get that leg there and copy. Select the other leg, move to 14 and paste. And invert the x-axis and set. Back to frame three, then we're going to copy. Select the other foot, go to 14, paste and paste. And then let's make the change to the x-axis and set. Okay, so that's coming together. Now we need to do another two frames on. So we'll be on frame 16 and we'll be copying from frame five to make that happen. So let's go to frame five first. Select whichever foot is at the back and we'll copy it. Select the front foot, go to frame 16 and paste. And then do our little invertee trick and set. Back to frame five, copy. Select the other foot, go to 16 and paste. Make our little change here and set. So far so good. We can see that now we've got one more frame to do which is frame eight and that's gonna be three frames on. So we're going up to 19 now. So let's go to frame eight. I'm gonna select the back foot first and copy. Go to 19, paste and paste. And then invert the translate x and set. Go back to frame eight, copy, get the other foot, go to 19 and paste and invert. I've done something wrong there. So let's just go back and see if we can work this out. So back to frame eight. So we'll try and copy this front foot I think. Then we'll select the other foot, go to 19 and paste. Okay, let's invert this and set. And I don't think I remember to set the key frame here. So let's just invert this one again and set. Okay, that does look a little bit tired. Yeah, and I forgot to do the hips on this one as well. So let's go back and get the hips. Copy and put this on 19, paste and paste. And I also forgot to do it on 16 as well. I'm getting forgetful. Been doing this for too long. Copy and go to 16. Is that right? I think it's right and paste. Yeah. Okay, so let's see if this has come in together. Let's have a little look in this view. Yeah, nothing's broken yet. Okay, so the final bit of work that we need to do is just to get everything to loop on frame 23. So I can just select all three controllers that we've animated on so far, go to frame one and copy, then go to 23 and paste. And now to see whether or not this looks okay, I'm gonna take the last frame off. So I'm just showing frames one to 22. We'll hit play. And that's not bad. So you can see that he's going up and down. The feet are going much faster when they contact the ground and then he kind of gets the effect of hanging in the air, which looks pretty cool. So that's the first part of our run done. And that's the legs sorted, the lower body portion. As with all our animations, we're trying to do this as quick as possible. This is very much just to block out and we're allowing it to look quite robotic. What we should have done really there is have some sway in the hips and all kind of stuff going on. But this is enough just to get us to do what we need to do and it'll look fine when we're done. So our next step is to get a little bit of a sway going on with the shoulders to support the swinging of the arms. And the controller that we want for that one is there's one just here on the spine. It's very small, but you can see it's just there. It's called chest origin effector on this one. And if I've just put my rotate tool on, you should be able to say that this is perfect for sort of rotating the chest and everything above it. You just don't do that. And what we're gonna do is just rotate this and try and put some holds in as well. And hopefully they come clear what I mean by that. So we've got on this one, the left leg forward. So we're gonna be bringing the right shoulder forward because we kind of do it in opposites. So on frame one, we're gonna rotate by about that much. So I'm close to eight on there, you can see. And then I'll just press S there. And then we're gonna put the next one on frame nine and we're gonna rotate the other way. So because I went for about eight on X there, we're gonna go for about minus eight here just to try and keep things fairly symmetrical. That'll do. And then what we're gonna do is copy this and paste it onto frame 12. And that's because we want his shoulder to stay in the same place for about those three frames. And that's kind of aligning it up with the hang in the air that we did on the legs as well. So it's kind of holding that. And now what we'll do is just copy frame one and we're gonna put that on frame 19.  And we're also gonna put it on frame 23. Paste. And now if we just play this again, you can see that we've got our run going on and we've also got a bit of a sway in the shoulders as well which is gonna support the swinging arms. So far so good, I think. We can stop that. Back to frame one. So the next thing we're gonna do is work on the shoulders and the elbows. But before we do that, because it's kind of easier when they're still up by the side, we're just gonna turn the hands into little fists. So let's just select this end controller here with the rotate tool on. You might just have to rotate this around a couple of times just to get that to make a bit of a fist. And then we'll get the old thumb controller. Rotate this around. Probably rotate that around a little bit as well. And then bring it in. So they can clip through a little bit because it's gonna be moving. The player won't be able to tell. And then we're gonna do the same over here. And I could probably just copy and paste the values from the other hand, but I don't wanna do that. So there's that part done. Get the thumb controller, not that one, not yet. We'll do that one. Bring that around a bit and then bend the thumb in like that. So that's gonna be our two fists created. At this stage, I suppose if you wanted to, you could turn this, put the arms back and turn it into a bit of a Naruto run. I'm not gonna do that. I'm gonna have the swinging arms. But it's an option if that's what you choose to go for. Okay, so we'll work on the shoulder closest to us first because it's easy to see in this view. And we'll get the right shoulder controlling. See, I've accidentally selected two there. So I'll just be a bit more careful with my selection. I only want one. And then we need to kind of get this one as well positioned as we can because everything's gonna be built off of what we do on this first frame. So what we'll do first is just rotate this arm down. So bring it down to about there. And then just so that I can help myself to line this up. And I'm gonna put this back in a minute, but I'm gonna put the arm into kind of the position it will be in. And that's gonna help me to line up the shoulder joint to put this where I think it should be. Okay, so I think that kind of position there works for me. So you can see that the arm kind of is mostly straight down. It kicks out a little bit. But getting this position right is really important. So you can see the values that I've ended up with there. And that's pretty much where I want that to be. Then what I'm gonna do is just for now, because I'm gonna come back to this later anyway. I'm just gonna straighten the arm out again just by zeroing out those properties there. That's good. And then because I'm happy with the position, or I think I'm happy with the position of the shoulder on frame one, I'm just gonna press S to set a key on that value. So now similar to what we did on the chest controller, we're gonna use the same frames really. So we're gonna now move to frame nine. And on this frame, we need to rotate the arm back really. So we're just gonna take it back like that. It's okay in this case for the arm to just kick out a little bit. I'm gonna use different values to help us to get to that. So I think the position I want is about that. So you can see I've just kind of tilted the wrist out a little bit. The arm does kick out. And it swung quite a long way back. So in that position, I'm just gonna press S on my keyboard. And then to get that hold, I'm also going to set that on frame 12, like so. And then for frames 20 and 23, just like we did with the chest, we're gonna get frame one and copy that onto frame 20. So we'll paste it there. And we'll paste it onto 23 as well. And then we'll just have a little look at how that's coming together. So quite robotic at the moment. And I think once we get a bit of swing in the elbow, that's gonna come together. Let's just see how it looks here. Yeah, that's not a bad start. So now we need to move on to the elbow. So for this one, we're gonna select the elbow joint just there. I'm gonna go back to frame one and then we need to get this rotation dialed in. Now the elbow is basically a hinge joint. So we only really need to rotate it on this one axis here. That one should be fine. So it's rotate Z for me. So I rotate it on frame one, round about to, about there looks good. And then we're gonna have to set that key. And then we're gonna go to frame nine and let's rotate this again, but we probably don't need it as far this time. Yeah, that was pretty good. Let's go to frame 12. So I don't want this in exactly the same place. I don't think, but probably close. Yeah, that was cool. We'll set that. Now we need to go to frame 20. And let's rotate this quite a bit forward. Yeah, that's quite nice. And then of course, frame 23 needs to be copied from one so that they're identical. Paste. Okay, let's see how this is now looking. Yeah, that's pretty good. That will work, I think. So we've now got the top part of our little robot guy going on his right arm. So far, so good. What we need to do now is get the values for the other arm and we're just gonna copy those from here. So frame one, we're actually gonna copy from frame 12. So of this shoulder, we'll go to frame 12 and we'll copy that value. And then we'll select our other shoulder controller, go to frame one and paste. You can see that now puts it back. And what's cool about this is it also copies the elbow position for us, meaning that we don't have to put it in this time. So that's frame one. Now let's go back to the right shoulder. So we've just done that one, haven't we? So the next one's gonna be frame 20. So we'll copy that, and then go back to our shoulder and 20 is gonna be pasted on to frame nine in this case. So let's paste that on there. You can see that that has gone forward. And then what we'll do is go back to the other shoulder again. And this time, so we've just done 20. So now we'll do 23. Copy that. Get the shoulder. Oh, I missed. Go to frame 12 and then we need to paste. Working out so far, so good. So now I think we're gonna be copying from frame nine on the right shoulder. So we'll copy that. Go to this arm here. And then we're gonna go to frame 20. And hopefully we're gonna paste this. That looks good. And then back to the right arm, hopefully for one final time, go to frame 12 and copy. Then get our other shoulder. Move to 23 and paste. Hey, okay. So now let's just take off that extra looping frame and we'll hit play and see what we got. Okay, so we can see we've got arms swinging backwards and forwards. They're doing their thing. We've got the legs going. No legs are crossing over. Let's check it in this view here. You know what? That's not bad. So again, there's lots that we could do to just smooth this out. We could put a little more overlap in the arms. We could also add some overlapping animation to the wrists as well. But for now, I think that's gonna do the job. We'll move on to the head, I think. So let's have a go at sorting this head animation out then. So I'm gonna need to select the head controller and I'm gonna go into wireframe view here so that I can see when it's not straight. And I'm also gonna change this view here to a front orthographic view because if I just press four here as well, you can see that that's basically not straight. I think I'm gonna turn the grid on just to give me an idea of when things are straight as well. So we know that on frame one, things aren't gonna be lined up and we can see that.  And I'm also going to bring it straight in this view as well. And that looks pretty good. So we'll set that. And now we're gonna keep the same spacing as with the chest because that's where things are gonna change. So it's frame nine where this is most extreme so we'll try and put this back. So I'm just gonna now rotate that around to get that straight. And we're gonna need to rotate the head to get this back straight as well. Nice. And then if we just keep that the same frame 12, that should work out nicely. You can see that that now loses that as we go further on. So we'll copy the values that we've got on frame one and we'll move to frame 20 and we'll paste those in. And that should straighten it out and we'll paste those in again at 23. And then we'll check for any abnormalities. And as it's playing, that looks fairly clean. So let's just press six in that view. Yeah, not bad. And we'll just go back to our perspective view and see what we think to that. That's okay, let's take off the extra frame. Not bad, not bad.  So we can see here it's basically looking up but here it's not. So let's just try and correct that. Doesn't matter if there's a little bit of variation in this so long as there's not too much. Let's see how that looks. Yeah, that's okay. So I think that's gonna do it for most of this animation. What we need to do is just select all the controllers that we put animation on and do pre and post infinity just in case we decide to make any changes to it. So that's gonna be that controller, that controller, that controller. We also did the chest.  So for all these curves, and I'm just gonna select in here, absolutely everything. We're gonna do curves, pre infinity cycle and curves, post infinity cycle. I'm just gonna select the elbows separately. Let's just deselect everything first. So elbow and other elbow. And then we'll set everything that makes part of this. I'm gonna do curves, pre infinity cycle, curves, post infinity cycle. Just check that that hasn't broken anything. Yeah, I think that looks okay. That's gonna do the job for us. Let's just give this one final look. So we'll just turn off the controllers here, press play, take a look at this from behind, which is where the play is mostly gonna see it, I would imagine. Yeah, I think that works. So again, we could make this a little bit smoother, but for what we're trying to achieve to just get this character put together pretty quickly, I think that looks wicked. So what we need to do now is save our work. So file save scene as, and I've been numbering these. So this is gonna be 14, run cycle, and then we'll hit save. And that means that we're now almost done with the animation section of this course. All we need to do now is create a jump and we'll be ready to start setting this little chap up in a real engine. So I'll see you in the next step, where we'll make him jump. Okay, so as promised then, we're gonna finish the animation section of the exercise we're doing here. And you'll be probably relieved to hear that this is just a one frame animation. We're just gonna keep the jump really, really simple. Let's open our clean rig and get this set up. Our jump pose is gonna be heavily inspired by Mega Man. So we're gonna open our clean rig. Here it is. And we don't need to worry too much about the view on this one. We just need to build our pose. So let's just give him some fists again. Mega Man has fists when he jumps. There we go. So we've got a couple of fists. Now Mega Man when he falls tends to be rotated back slightly. And we're gonna do that for the top half of the body like that.   And then the arms tend to go up in the air. So let's bring the arms up. And the kind of the palms look like they're facing forward. So we'll do that. So that looks pretty good for that arm. And then we'll do this one here. Let's just on this one. Let's rotate this from the elbow. See how that looks. And then, oh, hello. That's not right. That's better. I think we'll bring one of the arms forward. I don't want this to be too symmetrical. And then we'll get his leg controller. I am actually, I've got some reference images of the Mega Man jump open while I'm doing this in case you're wondering. You might find it useful to do something similar. So let's just rotate that like that. And we'll just kind of rotate the leg out a little bit. Oh, that's the knee. Do this as well. And then the other foot. We do want a bit of a bend on it. Have I got the right controller there? I haven't. It's this one I wanted. Like that. And we're just gonna rotate around so that it looks like the foot's trying to find the ground. I think I'm gonna bring both feet back a little bit. And I think that will pretty much do it for that pose. It'll get across the idea that he's jumping. And that's really it for this one. So we are just going to select everything. We'll set a key on frame one to make sure that they stay there. And that's it. So let's save this one. File, save scene as, and this one's gonna be, where were we up to? 14. Although they've gone a bit weird. I'll put that one back in a bit. I didn't name it properly. I didn't leave the MB in. So this one's gonna be 15 jump and save. And that's really it for the jump animation. We could make this more complicated. We could have him so that he kind of wobbles in the air and we could add a land animation. But if I kept adding things to this, we'd never get the exercise finished. So that will do it. In the next step then, we will be looking at how you go about exporting all of these animations properly. And then we can get into Unreal Engine and begin importing and putting our character together. So I'll see you in the next part for some exciting exporting action. With the animation complete then, we can now move on to exporting everything we've done so far to make it ready to be imported into Unreal Engine 4. The first thing we need to do is export the character itself without any animations on it. So I'm gonna open a scene for that. And you just need to get one that is your completed character without any animation. So for me, it's this version 11 that I've got. So I'll open that. And if I move through the time slider, you can say no animation on there whatsoever. Now, this really should just be a case of exporting it, but there is one thing that I want to correct and I need to do it on this version. I don't need to add any others, just this one. And I'll try and show you what it is, there you go. As the light catches his face, you can see that the screen's not flat. It's got this kind of crease here that's not particularly nice to look at. So we're just gonna fix that before we export. So, let's just open the channel box. We're gonna take the geometry out of reference and put this into face mode, like so. Then I'm just gonna select the four faces in the middle. Just take that glare off. And then I'm just gonna press shift and full stop and that will just select kind of all the screen like that. And then I'm just gonna do mesh display and harden edge. There we go. So now if I go back into object mode and move that around, you can see that that now looks flat. It's just nicer to look at. Okay, then let's export this guy. So file, export, all is what we need. And I'm gonna create a new folder for all these files that I'm gonna create. So I'm gonna come out of my scenes folder for now. And I'm just gonna come up to this kind of top level here. Third person character tutorial is what I'm calling it. I'll create a new folder there. And I'm just gonna call this exported. And then we'll call this one Rob mesh because this is the kind of mesh that we want. And then just make sure that you've got the following settings on this one. So smoothing groups, yeah, smooth mesh, yeah. There's nothing else that we need there. And for this one, we don't need animation turned on. So we can just click on export. You will get this warning, but we can ignore it. There's nothing there that we need to do with it. So we'll close that. Okay, that's the first one exported. Now we need to do one of the animations. So we're just gonna open the scene and we'll do them in the order that we animated them. So we'll start with the idle. So there we go. We'll open this up. I will save this because I made a change to the face. And here we have the idle. So let's just have a quick look at that. Cool. I just wanna see, remind myself where this starts and ends. Okay, so it's not a big deal, but you can see I've got a frame set on 51, which matches one. So it means we're only gonna export as far as frame 50. So that's just, not like that. Frame 50, there we go. That's the cycle that I want to export. So we're gonna do file, export all again. You can see that it has remembered where I want to put it, which is very helpful. We're gonna call this one rob underscore idle.  But we do need to export the animation. So we'll tick the box there. And then it's this bit here that we really need to worry about. So we do want to bake the animation. We're gonna set the start and end frames. So one and 50 is what we decided on. And we are gonna resample everything. And that will do it. We can now click on export for this one. Lovely. And we repeat this for the next two. So file, open scene. And now we're gonna do the walk cycle. Again, I just want to double check where this starts and finishes to make sure that I'm not duplicating any frames. So let's just turn a controller on to see. Yep, so there's a frame on 25, which means one to 24 is probably fine. So we're gonna do file, export all. This one's gonna be rob underscore walk. Everything has been remembered from the last time we set this up. So bake animations on, we just need to set the end frame. So frame one to frame 24. And then export. Lovely. So we'll close that. And then we're gonna do the run cycle next. So open scene, let's open the run. Yeah, that's working fine. So what we need to do now is just double check where I've got the frames looping. Yeah, it went up to 23. So one to 22 is what I want. File, export all. Rob underscore run. Frames one to 22. And then export. Okay, so now we're gonna do the jump. This is gonna be slightly different. Let's get it opened up first. So there's the jump. So we have set one key frame on this, but I just tested this to see what would work. It won't let us do this if we export just one frame. We need to do two. Otherwise it doesn't see it as an animation take, which is what we need. So let's set that up. So file, export all. This is gonna be Rob. All right, this is actually a fall, so we'll call it fall. And we can just use it as the jump. So Rob fall, and we're gonna do frames one to two. And that'll at least give us an animation take. And then we export. And that's it. That's everything that we need. What I'm gonna do is just make one more change to the way that I have got all my file set up so that when I'm in Unreal Engine, I only need to be looking in one folder. So here's the folder that I've got set up. Here's all the animations that I've just exported. What I want to do is just go into my robot character. I'm gonna go into source images and just take this head texture. So I'm just gonna do a copy of this. And we're just gonna drop this in exported because we're gonna need that texture as well. So that now puts everything we need for this step in the same folder. And that will do it for this video. In the next one, we're going to create a new Unreal Engine 4 project and set about getting things imported. So I'll see you there for that. Now that we have got everything exported from Maya, we're now done with Maya and it's time to get into Unreal Engine. So you can see that I have already taken the liberty of opening Unreal Engine so you don't have to wait for me to do that. And we're at the select or create new project screen. For this, we're gonna create a new project. So we're gonna go down here to new project categories and we're gonna do games. And then we'll click on next. And as we're setting up a third person character, we are gonna use the third person template because we don't wanna set up absolutely everything from scratch, such as the controls. We just wanna be setting up the character. So third person is perfect for this. And then we're gonna leave absolutely everything else the same. What I'm gonna do though is just save this to a location that I can share with you lot quite easily. So I've chosen the third person character tutorial folder which is the one that I'm making available to you if you follow the link in the video description and it's called Rob. So you'll have access to any blueprints and things that I create as well should you want to download them. Okay, let's create a project. Okay, that's the project set up then. If I hit play, you can see there's already a character in there. It's the default UE4 mannequin. I don't think he's got a name. I think someone should give him a name. But there you go. That's the one that we're gonna be replacing. We don't actually want that one. So let's set about importing our own character so that we're ready to set him up in the upcoming step. So I'm just gonna move up to the content folder. So right up to the top level for this and we're gonna create a new folder. So let's right click. We're gonna go to new folder. I'm gonna call this one character underscore Rob. Nice and easy. And then we're gonna create another new folder within that. So my character of folder will make a new folder. And this one's gonna be called Rob underscore mesh. Beautiful. And then within that folder, so we're gonna go into the Rob mesh folder. As well as the mesh in here, we're gonna need the textures and materials. So we're gonna create one new folder here. I'm gonna call this materials. We're actually also gonna store a texture in here, but as there's only one, I don't see the need to separate that. It's two different folders. So let's go into the materials folder then. And the first thing we'll do is just import that texture. So let's go to add or import. We'll click the button there and we're gonna import to this folder. So let's click on that there. And now we need to find where we saved that too. So you can see that I have already been put almost in the right folder. I'm looking for this exported folder and there's the head texture. So we'll open that up and that's now imported and it just needs to be saved. So I'll just click on save all and you'll see this asterisk disappear when I save it. There we go, that's now in the project. Now we're gonna go back to the mesh folder and we need to import our character. So let's right click and import. We're gonna find Rob mesh, click on open. And now it's really important that we get these settings right. So we need to tell Unreal Engine that this is a skeletal mesh. So we'll click on that. We'll leave the import content type as it is. The only other thing that I really want us to change is if we go all the way down, I don't want to create a new material. So do not create and I do not want to import textures. We're gonna do that manually so we've got more control over it. And then at this stage, we should just be able to click on import. Okay, we'll get this warning but it's not a problem. So we'll just close that and we can see our Rob mesh. Let's just open it up. There he is. So you can see he's got no materials on him yet but he's come through all his body parts are in the correct place. So that is gonna work. So we can just close that for now. And what we need to do now that he's in there is to get his materials made and applied so that he looks as he should. So let's go into our materials folder. I'm gonna right click, create a new material. And we're gonna call this one M for material underscore and we'll call this white plastic. If I can spell, cool. And we'll set this one up first. So double click on this to open it. It's a really, really easy material to make this. So I'm just going to right click and do a constant three vector, I think. And this basically just gives us a color. So we're gonna plug that into base color and then click on this value here to make that white. And when this catches up, you'll see we've now got a white material. What we also want to do is just create a constant which is this one here. And this can have a value between zero and one which is gonna control how rough our plastic is. You can see that there it is very, very glossy. Let's put it on the cube. You see that's quite reflective. I don't want it to be quite that glossy. So we're gonna give it a roughness value of something like 0.2. Yeah, that ought to do it. And that's that first material made. So we'll save that one. We also want a black rubber. So we're gonna create another new material. M underscore black rubber. And then we're gonna double click on this. Just move that over there. And then we're gonna do a constant three vector. Drop that into base color. And we're actually just gonna come slightly off of black for this only slightly. And then we're going to add another constant to control the roughness. So we'll plug that in. And this one wants to be quite rough. We're gonna go 0.8, which would be 80% rough. And rubber doesn't really reflect. So there you can see that's now working out quite nicely. So we'll save that one too. I can close that. And the final one that we need to create is the one for the head. So we're gonna go for new material. M underscore, we'll call it screen. Open this up. And for this one, we're gonna need a texture. So I'm gonna right click and search for texture sample. There it is. And here we are looking for this head texture image. And we're gonna plug that into RGB. And let's just put this on a plane so that we can see how it looks. There we go. Pretty nice so far. We're gonna need a constant for the roughness.  So let's go for 0.2, I think. Yeah, it's got like a matte coating. Let's go 0.15, slightly smoother than that. Okay. And one thing that I want to do, this is completely optional, but I like the look of it. I wanna make the eyes glow a little bit. And for that, we need to use the emissive color. And we're gonna multiply it. So I'm just gonna right click and add a multiply node. And the result of the multiplier is gonna go into emissive color. And then we're gonna take the color of the texture and put that into A. And you can see that already that's having an effect. And then I'm gonna add a constant to B. And any number, so at the moment, it's multiplying this by zero and it's having no impact. If we now multiply this by, let's say, three, you'll see that that kind of brings the eyes to life and makes it look like there's a lit screen there. And you can experiment with whatever number you want there and you can always change it later. But that is the basic material. So we'll save that and we can close it. Okay, so you can see now that we have three materials. If you've been paying attention, you will notice that the metallic material that we also need, we have not created. And the reason for that is because there's already a chrome material in Unreal Engine. So we're just gonna use that instead of making a new one. So now what we need to do is assign the materials to our character. So let's go back to Rob Mesh and we'll open this. And over in the top left corner here, you can see we've got four material slots because of the way that we textured him earlier. And so now we need to just make sure that we put the right materials in the right place. So what I like to do is click on isolate and that will show us what each material is. So this one here is clearly the white plastic. So we'll do this drop down and just start typing white and there's white plastic. And then we're gonna do this one here which appears to be the chrome. So if we type chrome, there it is. And then the next one, if we isolate it, this is the black rubber. So we'll add that.  Cool. And now when it all comes together we have our character set up and properly textured in Unreal Engine. So far so good. But next we need to make sure that we've got the animations imported as well. And in order to do that we're gonna go to the character Rob folder. So we've got the Rob mesh. We're gonna create a new folder. I'm gonna call this one Rob underscore Anims which is short for animations. So we'll go into here. And this is where these animations now need to be imported. So what we're gonna do is right click and we're gonna go to import to this folder. And because we've already been importing from this folder here it's taken me to the right place. And we'll start with the idle Rob underscore idle and click on open. And again we need to make sure that we get this right. So it is a skeletal mesh but this time we don't need the mesh because we've already got one. So we can turn that off. But what we need to do is tell it which skeleton to attach the animation to. So this little drop down now there's the original UE4 mannequin and there's our Rob mesh. So we're gonna tell it to go onto that one. For the animation length we're gonna change that from exported time to animated time. The reason for doing that, the exported time should work but I noticed it was importing duplicated frames. So we're changing it to animated time and that seems to sort that out. And then all we need to do is click on import. And then you can see that that is imported the animation and if we double click on it we should see that that is up and running. Which it is. So now we've got our character, materials and one of the animes set up. So we'll just save that so that it's in there. And now we need to import the rest. So we'll go to right click import and this time we're gonna do the walk. So we don't want the mesh. We do want to attach it to the Rob and nothing else needs. Oh yeah animated time it's remembered from last time. So let's click on import. We'll double check that that's working as expected. Yep we've got a walk going on that. So we'll save that. Next we're gonna import the run. So import choose the run open. So don't import the mesh. Do put it onto our friend Rob and make sure that it is on animated time and click on import. Give it a quick check. Looks good to me and click on save. And then one final one we're gonna import. Get the fall. So we do not need to import the mesh. We do want to put it on the Rob mesh animated time and import. And then we double check. Yep that is doing the job. So we'll save that as well. Okay that's gonna do it for this step. We have now imported everything that we need. We've got the character, materials and all the animations ready to start putting this guy together moving forward. In the next step according to my notes we are going to be putting together a blend space which is gonna allow us to have the character blend from his idle state to go to walking and then up to running depending on how hard the player pushes the analog stick when they're playing the game. So I'll see you in the next step for that. Now that everything is imported it's time to set up this blend space to blend between the animations that we've got apart from the fall which we don't need. Okay so here's what we need to do. We're gonna right click in our Anims folder. We're gonna go up to animation and we're gonna choose blend space 1D. And we need to choose which skeleton we're gonna attach this to which is gonna be our Rob mesh skeleton. And we're gonna call it Rob underscore BS. BS of course being for blend space. There we go. So let's open this up and this is what it looks like. And down here is where we can blend our animations together. So you can see at the moment we've got these kind of four increments and they represent sort of how hard the player is pressing on the analog stick. So if they're pressing it about halfway 50% this is what animation to show. So at 0% we need it to show the idle. So what we'll do, you can see all the animations are listed here, we'll take the idle and we're gonna drag that over here. You can see that now it's doing our idle. By the time they get to 25% we want him to be walking. So we'll get the walk animation and we'll drag that over here. And now if I just hold shift and move my mouse side to side you can see especially here so here is where there's nothing on this value. And then as we go up to 25 it blends into the walk. Brilliant. And so at 75% we're gonna have the run. So I'm just gonna drag that to here. And then you can see that if we go down to the walk here so I'm just holding shift again. There's the walk and as we move up to the run there you go. You can see that it blends into the run. Perfect. Okay one thing that we're gonna need to change is what the horizontal axis. So this is just a graph. We need to change what the horizontal axis is called so we can access this later. So I'm just gonna name this speed and press enter. And I actually want the walk to start a little sooner. So what I'm gonna do is change the number of grid divisions to five. And that means that this now starts at a speed of 20 instead of 25. It also means that this now happens at 80. So it just adds a few more points. You can add as many as you want. We are probably gonna come back into this a little later because the maximum axis value is set to 100 and I don't think that's gonna be enough. But we're gonna leave it where it is for now and that's the blend space complete. So now if you just hold shift you can start from your idle, move up to a walk and then go all the way up to a run. Lovely. Okay make sure you save that. We can close the blend space for now. And in the next step we're gonna set up an animation blueprint. In this step we're gonna set up the animation blueprint. So what we've done so far is we've told Unreal Engine how to blend between our different animations. But we've not really told it when to blend them and we've not told it which animations to play on while. We're like for instance it doesn't know when to show the falling animation. And the animation blueprint is how we give it all of those instructions. So in our robanims folder we're gonna right click, go to animation and find animation blueprint. The parent class we're gonna choose anim instance and it needs to happen to our robmesh skeleton. So we'll click on okay. I'm gonna call this one rob underscore anim BP. So rob animation blueprint. Lovely. So we need to open this up and everything in this window deals with which animation is shown and when. So this bit here, the result is whatever the final pose that we want to show is gonna be. So we have to plug something into this and we're gonna create something called a state machine. So I'm gonna right click here and start typing state machine and then we can see add new state machine pops up. So we'll create that. I then want to just rename this. So I'm gonna call this locomotion which just deals with how the character moves and the result of this is gonna be what plugs into here. So even though we've done nothing yet, that is gonna be the result. So we'll just plug that in now and then we're gonna double click on this to open it up. Okay, so here's our entry point and what we're gonna do is just drag out of this. We're gonna add a state and we're gonna call this idle walk run. Oops, that's very annoying. So let's just make sure that we don't have random capitalized letters. Idle walk run, there we go. And then we're gonna open this up and what we need to happen in here is the blend space needs to play. So we're gonna get this. We're gonna plug that into the result and we need something to drive this. So we're gonna have to reference this somewhere so that this speed changes depending on what the character does. And the way that we're gonna do this is just right click on speed and we're gonna promote this to variable. There we go.  So if we now compile, the character should start to idle. That's because this speed variable is currently set to zero. There you go. You can see that that's set to zero. And because there's nothing else to drive it, that means that the output pose just becomes idle which is good so far so good. If you want to see this in action though you can just go over to speed here, drag to the right and as we move this up, that's very upsetting for it. There you go. It doesn't like to do that in real time apparently but there you go. We can now see that that's the walk. If we up that again, it'll go to the run. So we'll just set that back to zero for now and we'll compile. Okay, so that tells us how to have him idle, walk or run but it doesn't really tell us whether or not he should jump. So in order to do that, we're gonna need to set a couple of things up. So let's just go back to locomotion. There we go. And we're gonna need a condition of whether or not the character is in the air to do this. So now that we've got this set up, what we need to do now is create some logic to drive all of this. So we're gonna go to the event graph up here and you can see that it gives us these two notes to get us started which is exactly what we want actually and these are gonna work together. So the first thing we want to do is see is this valid. So make sure that this is actually the character we're using. So we're gonna, first thing we'll do is that. What we also need to do is get the velocity of the character. So from this point on, because this is our character, we're gonna get velocity which is basically just the speed that our character is moving at. From the return value of this, we're gonna get the vector length. So vector length. And we're gonna use that to set the speed. So let's get our speed variable and we're gonna set it with what that is. And so that now, the actual speed that our character is moving across the level is gonna become our speed variable to drive the blend space. So that right there should do it. So I'm just gonna comment this up so I know what's what. So I'm just gonna select these three notes here and press C and we're gonna do set speed. Nice. And then just with these two here, let's just make a bit of space for them. Comment C if porn owner is valid. Just so that we know what everything's doing. Let's just compile that and make sure it's all working. We're not getting any errors, which I have to say to you is a very, very good sign. Okay, so at the moment, this would now work perfectly to get the character running around. Although we do need to set up the character blueprint, but if that was all done, he would run around. But what he wouldn't do yet is jump. And we're going to need to set that up as well. We need a variable to work out is the character actually in the air? And we're gonna do that in this logic as well now just to get this set up. So out of here, so out of get porn owner, we need to find something else. We're gonna get a movement component. So get movement component. Lovely. And the movement component that we want is falling like that. So this return value then, we're going to promote to a variable like that. And we're gonna call that variable is in a question mark. Okay, so that is gonna be whether or not our character is currently in the air. And we're going to set that using this. So actually what we're gonna do now is before we do the speed, we're just gonna cut in with this. So we're gonna take our execution from here to set that and then to set that. So what we're doing now is every time the animation blueprint is updated, it's going to check whether or not the character is in the air and it's also gonna set the speed. So let's comment this is character falling. Okay, and that is pretty much all the logic that we're gonna need for this now. So what we also need to do is just set up the jump. So let's go back to our locomotion and out of the idle walk run, if we drag out of here, we can add another state. I didn't rename it properly, let's rename it. And I'm gonna call this jump. I'm calling it jump, but it's really falling. I want to keep it easy. And what we'll do is just open this jump and we need to make sure that whenever this is happening that it plays the fall animation. So let's just have that in there. And that's it, that's all we need to do for that. So let's just compile that. There you go, that's all set up. And because I've compiled it, you see, it's giving me a one that this will never happen because I've got nothing set up to make it happen. So we're gonna go back here now and we're gonna make it happen. This little arrow here is what we call a transition condition. So we need to set something on this to tell it whether or not to transition from here to the jump. So here we're gonna say, when is it allowed to go from idle walk run to jump? We'll double click on this and it's gonna be whenever is in air is set to true. So if we compile that, takes away the warning. So that's good. Every time our character is in the air you're allowed to go to the jump animation. And then what we need to do is get this to go back. So we'll go like that. So this is now, you see we've got arrows pointing out. So to go from here to here, we set a condition and then from jump back to idle walk run we need another one. So it's gonna be is in air and we'll get that. And then we're gonna need a not Boolean like that. So whenever is in air is not true, there we go. That is now going to transition back to the idle walk run. So now what we're gonna do is compile that. And that's it then. We have now set up the animation blueprint. We have all the conditions to play the animations so that now when we're in game Unreal is gonna know which animations we want to play and when, which is all very good stuff, I think. So moving forward, what we'll be doing next is setting up the actual character blueprint. This is the thing that we can put into the game. So I'll see you in the next step for that. In this step, what we're gonna do is now set up our character blueprint. So we're just gonna save and close the animation blueprint that I served as purpose. Let's go back up to our main character folder and we're gonna create a new folder here for our main blueprints. So we're just gonna create a new folder. I'm gonna call it rob underscore bp. This is where our blueprints are gonna go. So we'll go into this folder here. In this folder, we're going to right click. We're gonna create a new blueprint class. And the obvious one for this one is gonna be a character because that's what we're creating. So we'll click on that. And I'm gonna call this one rob underscore bp. This is our main character blueprint. And we'll open that up. By default, you get a capsule which kind of represents your character in 3D space. This is how they'll collide and things. You've got an arrow which just kind of points which way is front on. And you've also got mesh, which is not showing anything yet because we haven't chosen one. And there's also a character movement component which has lots of defaults for how the character moves and behaves. Which we'll change some of those later but we'll leave them at default values for now. So if we go to the mesh component here, there's a space for skeletal mesh and here we can choose our rob mesh. And then he goes in and then we obviously need to make a few changes because he's too high up and he's also not facing the right way. So let's just bring him down and we need to get his feet pretty close. So let's, in fact, let's rotate him first. So I'll just put my rotate tool on by pressing A. Gonna rotate him 90 degrees so that he's facing front.  And then you can see here that his feet aren't really lining up with the bottom of the capsule. So what we'll do is just turn the snaps down on the move to one. We'll zoom in real close and we're just gonna line this up with the bottom of the capsule. That should mean that it connects with the floor properly. Okay, now what we're gonna do is just zoom out. The capsule's about the right size and shape. So we'll leave that as it is for now. And we'll go back into a perspective view. Now we need to tell this blueprint which animations to use. So it's already expecting to use an animation blueprint which is good because we created one. We just need to tell it which animation blueprint we want it to use. So if we go to Anim Class and there's the Rob-Anim blueprint we created, we'll click on that and straight away because there's currently no value in the speed it will default to idling, which makes sense, doesn't it? Okay, now what we need to do is set up a way for the player to see the character to have sort of inhabit 3D space. And to do that, we need to put a camera in there. And this is kind of a two-part process. So first of all, we need to create what's known as a spring arm. And this is kind of how the camera will attach to the player. So this will be how far back it is. It will be whether or not Eclipse do walls, et cetera. I'm just gonna put it up in terms of height, if it lets me, to about the neck, something like that. So that puts the spring arm in place. Then what we need to do with the spring arm selected, we're gonna add another component and that's gonna be a camera. There we go. And that puts that in place. If we want to move it, it's better to select the spring arm and move it all up together.  And whilst we've got the spring arm selected, we just need to turn on use pawn control rotation, which means that it gives the character control over the rotation of the camera. So essentially using your right analog stick or your mouse is gonna allow you to control what the camera's looking at. What we also need to do is just open the class defaults, which is just located up here. And we're just gonna turn off use controller rotation, your, and that's just gonna allow us to keep control of that camera as well. And one other final thing we want to do, just to make sure that the camera behaves as we expect is go to the character movement component here. And then we're just gonna scroll down. We're looking for the rotation settings section, character movement rotation settings. And we want to turn on orient rotation to movement, which means that when the character starts moving around, the camera will sort of default going back to straight behind them, which kind of helps to keep the player oriented at all times. Okay, so that sets most of the up. We'll just compile that for now. Make sure we're not getting any errors, which we're not. What we need now is in our event graph, we need the logic that's gonna allow us to control the character. Now I could spend the next 20 minutes getting you to do this one step at a time, but we're gonna do a little cheat here. One of the reasons that we use the third person blueprint is that if we go into this, here's the default character, the mannequin. And we're gonna go into their event graph and just take all the logic from here. It's already got the gamepad input set up, the movement input, mouse input jump. It's all there, which just means that we don't have to set this up from scratch. So we'll select it all and we'll do control C for copy. We'll then go to our blueprint. We're gonna delete these nodes here because we don't need them. And then we'll paste with control and V. There we go. So then that gives us all the logic we need, but if we try and compile this, you'll see that we get some errors. And the reason is, is that we need two variables. There's one called base turn rate and one called base lookup rate. And these are both float variables. So if we go into variables and add, so by default this thinks it's gonna be a Boolean. I disagree. It's gonna be a float. And we need to get the name. So it's gonna be the first one is base turn rate, base turn rate. So just type it out. Don't put any spaces in, but do make sure you capitalize the first letters. Press enter and that would be the first one. Then we'll add one more variable. By default, this one's going to be a float because we just used it. And this is gonna be base lookup rate. So base lookup rate. And then we'll compile. The errors go away because these variables are now there. We do need some default values for these variables. So I'm gonna go for about 90 on each. You can always come back and change these later once you've experimented. These just deal with how quick of the character will change direction. So if you move from running forward to running left, how quickly will the character blueprint rotate to the character? Okay, so let's compile that again. And believe it or not, that's it done. That is our entire character blueprint set up. And in fact, that's the entire character set up. In the next step, what we'll need to set up is the game mode blueprint, which basically just tells Unreal Engine which character we want it to use. So now what we're gonna do is switch out from using the default mannequin and switch to using our default Rob character. So I'll see you in the next step for that. Now it's time to create the final piece of the puzzle really, which is going to be a game mode, which is gonna tell Unreal Engine what character we want to use to replace this mannequin character, basically. So let's get that set up. So I just need to, I've got an asterisk up here. So I need to save this. And I can just close these for now. And we'll close the Unreal 4 third person character. I'm done with that as well. Okay, so I need to go back to my character Rob folder and into the blueprint folder. We're gonna create a new blueprint in here. So right click blueprint class. This one's gonna be a game mode base. And I'm gonna call it rob underscore game mode blueprint so that we know what that is. And then what we're gonna do is open it. I want to be in the class defaults, which I am. And I want to set the default porn class to my Rob BP. And that's all we need to change in there actually. So we'll just compile and save that and we can close it. Then what we want to do is go to the world settings. So the world settings should be over here. But if you've not got them open, you should be able to get it from here. World settings are just there. And in this section, there's a game mode here. And we want to tell this to use our game mode that we've just created. So we're gonna go to game mode override and it's gonna be Rob game mode blueprint. There we go. So that sets that up. That will only do it on this level though. So if I wanted kind of do it for the whole game, if we just go to edit and project settings and go to the maps and mode section, we can just change the default game mode from third person game mode, which is the default one to our Rob game mode blueprint. That's all good. So now we can close that again. And now what we're gonna do, let's just position ourself kind of here. We're gonna put in our character and you'll see is below the floor until we let go and then he pops into place. That's good. And now if we test, this is still not gonna work. So if I test, it's still going to default to Unreal Manicam, which is no good to us right now. So what I'm gonna do is select my character here. And if we just go into his details and scroll all the way down to the bottom, we're looking for the porn section. There it is. And we need to set auto-possess player to player zero. Let's just try testing this again now. So we'll click on play. And now you can see that we have a character. He runs around. He's got his fall animation, jump works, everything is in place. So what we can do is just delete this default Manicam now because he's just getting in the way. Get out of my way, default Manicam. And that's basically everything that we need to have done. I'm just gonna show you one more thing before we move on. So I'm just getting my Xbox controller. Plug it into my PC. Hopefully it's gonna work. And now with that plugged in, I'm just gonna lightly touch the analog stick. So I'm only touching this a little bit and it goes to the run animation really quickly. You can see that the character is actually not moving very far across the screen. And so the run kind of feels unnecessary. And so we're gonna need to make a change to that. So that brings us to the end of this video and then introduction to the next video, which is gonna be fine tuning and polishing what we've got. So I will see you in the next video where we'll make our final changes to this character. We're almost done then. What we need to do now is just a little bit of final tidying up and polishing to make sure this all works. So as we said, the run isn't really starting at the right time and there's a reason for this. So if we go to Rob BP and we go to our character movement section, what we're looking for is the max walk speed. This is how fast you can go. And it's currently set to 600, which means that at max speed, we're moving at 600. Now that's fine. If we now go to our animation blueprint, specifically the blend space is what we're looking for. This axis only goes up to 100, which means that when the speed reaches 100, which is only one sixth of full speed, it's already breaking into a run. So what we need to do is change this maximum axis value to 600, like so. And we'll just save that. And we're just gonna duck right over here. Whenever you change, so if you want the character to move faster, so let's say we wanna change that to 1200, then that's fine. But what you'll need to do is also go in and change this axis value as well. So now if we just make sure that everything is saved, here it is, and we play. Now, if we move, let me just click in this window, move some of these analog sticks, you can see that as he's getting faster, it's taking him longer to break into the full run. And that just matches up a lot better. So if you wanna test this, just make sure that you've got an analog stick. It just means that there's less sliding of the feet along the floor. So that's that, pretty good. I wanna make one more change in the blend space. So, in fact, I'll just show you why I'm making the change first. If we just go back into here. So as he walks very, very slowly, because of the way that we've put the blend space together, it kinda looks like he's got a limp because the idle's got his foot quite far back, even when he starts to break into what he sees. It still looks like he's hurt himself. So we're gonna try and alleviate some of that. I'm not gonna try and get rid of it completely, but I'll get rid of a lot of it. And it's actually, if we go into these blend samples, the walk is currently snapping to the grid. If we turn that off, we can tell it exactly where we want that to happen. So it's currently happening at a speed of 120. And we can bring that down. So let's say that when we get to a speed of 10, and you'll see that that is now much closer together, it should have broken into a full walk by them. So let's save that, and we'll just give that a little test. So there will probably still be a hint of a limp, but it should get out of that pretty quickly. There you go. So now I'm walking about the same speed and the limp's already gone. So it won't go away completely. If you really just feather the analog stick, it can still be found, but it won't stick around for as long. And you can even play with those values even more to change that further if you so desire. Okay, that's one fix done anyway. What we're also going to do is add a double jump just because I can and I like a double jump. So let's go into our blueprint and we change this in class defaults. There are lots of things that you can change. I'm just going to change the max jump count from one to two, pretty straightforward. Let's give that a little test. So jump, want, jump, jump, there is now a double jump, yeah. Now if we weren't doing this as a super fast or as fast as I can make it course, I'd have done a slightly different animation to indicate that the second jump's happening. The other thing that I don't particularly like about the defaults is the jumps are too floaty for me. I like them to feel snappier. And also it's just not high enough. I can't even get up there. Oh, I can. I can only just get up there, but I can't get up here. So let's make some more changes to this jump. So we're going to go to the character movement component and we're going to make some changes. So I want him to come down faster. In order to do that, I'm going to raise the gravity scale from one to six. Now if we just made that change, like his jump would be even worse. So what we also need to do is go to, where's jump? So in the character movement jumping falling section, we're going to change the jump Z velocity to 2000. So to offset the fact that gravity's now stronger, the jump's also going to be stronger and it will just make everything feel snappier as a result. So let's just compile that and we'll give that a cheeky little test. So let's try this now. So jump, yep, so it goes up and down much quicker. Jump, jump. So I prefer this. You can obviously tweak this to whatever your preference is, but I like that it feels like something's happening immediately and you can get down quicker. I find it easier to line up. One other thing that I will change though about the jump is because this is meant to be a platforming character. You also want to be able to control them in the air and that's this air control thing here. So if I just change that to 0.9, compile that again and test one more time. Now, once I'm in the air, I can kind of change my mind a little bit. Like that, which can be much better because it means that now if I'm about to miss a platform, I've got a way of correcting it in midair. So that's the jump pretty much done with. There's one more thing that I want to look at. So if we just run into the wall, he buries his face quite far into it. And that's because the capsule's a little bit too thin for the character. So I'll make one final change. If we go to the capsule, it should be this here. I'll just go into the viewport. So select the capsule and this has a radius. So the radius is set by default to 34. I find that if I set it to 50 for this character, it'll stop him from going as far into the wall. So let's now compile and play. And now if we just run him head first into the wall, that feels much better. Now, it can just about get his face in the wall, but it's not as offensively bad. So there we go. That just feels better. You can see his feet look like they're just about contacting the floor. I think I need to just raise that capsule a little bit. So, or rather drop the character a little bit. Just do a couple, compile, play. Let's see if we can get him up on a platform to see if that's working. Yeah, that's now contacting the floor pretty well. So, I, I'm gonna stop there. I'm gonna call that an overwhelming success. So what you've done with me over the duration of this course is literally everything that is required to set up a character for use in Unreal Engine 4.  That I think can only be considered a success. So, well done for finishing the course. And that's it, you've made it to the end. Hopefully you found this tutorial helpful and learned a lot along the way. If you did, then I'd really appreciate your help in making sure that the YouTube algorithm doesn't bury all of my hard work by hitting the like button on this video, as well as any other videos in this series you've watched and more importantly, leaving me a comment. Tell me what you liked or what you thought could have been better or just say thanks or even hi. I'm still quite a small YouTuber and I try to read and respond to as many comments as possible. If you think others would find this tutorial useful, then please share it with them. Every view helps me get a little closer to being able to make courses like this full time. If you've made it to the end, hopefully you'll also think that I've done enough to earn your subscription to the channel. If you really want to support the channel and my work here, I do have a Patreon page which you'll find linked below and there's also some merch available too. If you've used what you've learned here to make your own character for a game, then please share it with me. I love seeing my student success. If you're wondering what to learn next, I have some other game art and game development tutorials which I have linked in the video description. So check them out to continue building your skills and knowledge on your journey to becoming a game developer or artist. Anyway, I think I've kept you for long enough. Thank you so much for watching. Now go and make some games. I'm able to continue making these videos thanks to the ongoing support of my amazing Patreon community. If you'd also like to support Game Dev Academy via Patreon, then check out the link in the description below. Thank you.


Mesenchymal stroma cells, master of science, are multi-potent stem cells found in nearly all tissues that possess self-renewal and differentiation capacities, migratory abilities, and can secrete protective factors and act as a primary matrix for tissue regeneration. Master of science derived from various adult and neonatal tissues have distinct cell biological properties, surface marker expression, proliferative capacities, in vitro and in vivo differentiation capacities within a variety of lineages, immune modulatory properties, and are influenced by extracellular and intracellular conditions. This article was authored by Bomes Stephanie, Casper Cornelia, Has Ralph, and others.


RIT 16 to 11 winners against Officer Knight. Christian Taylor, head coach Jake Kuhn after this one. Yeah, thoughts at how this one went tonight? I'm not sure I expected the outcome per se, but I expected exactly what you saw, an up and down battle, a lot of playmaking, some sloppy play because of the aggression on both sides, fast pace. I guess it was as advertised. Really happy that we came out on the top of that one. I'm certainly going to give our guys a lot of credit for that. I thought they played really gritty, played some really tough plays, a lot of tough ground balls. And we cleared the ball pretty well today, which was very important against those guys and handling the pressure. So I'm just super thrilled and proud of our guys for winning that one. Two guys I want to focus on.  Agreed. Yeah, he agreed. He's been playing well and consistent for us all season, but he kind of stepped it up a notch this weekend. And like I was saying earlier, he's kind of developed some confidence. And we needed it. And we need him to keep playing that way and keep playing consistent for us. So good to see. Other guy, Clifford Gaston. I mean, how does he continue to just find the back of the net? He's got a knack for it. We have a really nice attack unit down there that's complement each other pretty well. And Luke had a nice game, too. I thought he made a couple of mistakes, but I think it was three and two on the day. Having those guys down there, knowing that they're great finishers makes our offense dangerous. A lot of the midfielders do the work, and they get the glory to finish it off, but happy they can. What does it mean to now be a part of another Mustang classic this year? We enjoy coming here. This is an incredible atmosphere. A lot of great teams down here. Paul's been very accommodating to us, and the whole tournament has been well run. We appreciate everything, and we'll continue coming back as long as we'll have us. Congrats on the win. Thank you very much, Coach. Yeah, thank you very much. That's Coach Kuhn. I'm Christian Taylor, and go Mustangsports.com.