Animation Blueprint Setup & Walkthrough Part 2 | Live Training | Unreal Engine Livestream

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hi and welcome to the Unreal Engine news and community spotlight so first off we're kicking off our spring ue4 Jam next Thursday that'll be May 10th and it's gonna run for five days through May 15th we're really excited we'll be announcing the theme at the end of next week's live stream this is also the first time we're hosting it on HIO so there's some additional rules around that as far as file size and just making sure you get your game uploaded to that site so be sure to take a look over those ahead of the jam but we also have a number of really fantastic sponsors Falcon Northwest is on board they have a really smoky laptop that will be raffling away to our finalists Intel's giving away SSD obtain SSDs to our finalists we also have Houdini assemble lots of great content that you all are eligible to win so jump on that we'd love to see what you all can make Fusion has released a Mars 2030 editor in collaboration with NASA so they're releasing a number of models and other assets audio they have an astronaut available and a waypoint system and over 40 square kilometers of terrain data that you can check out so that's all available to download in the epic games launcher so go get it this June we'll be hosting our first unreal academy that'll be taking place June 6th and 7th we're going to be going over a number of features around unreal studio will be keynotes lectures and it'll be a lot of details about data Smith will give you a glimpse at a road map so make sure to go get registered for that and come visit us in Raleigh North Carolina Nick Prue is from Dade Elek has written up a nice piece on dynamic third-person cameras so they've they've written this piece it's six ingredients for a dynamic third-person camera and they're the creators of Deponia and Pillars of the Earth so if you're interested in seeing how they've set up this system it's allowing you to change a number of properties on your camera dynamically made game or mid-level it's a really wonderful piece so go check it out there's a lot of wonderful details in there take a look we've also have a fantastic showcase on the Darwin project so that's the Battle Royale game set in a really icy arena and that's the scavengers team and I definitely recommend there's just a lot of great content there and you can see how they're working on stuff unless but not least we have our Nvidia edge program we're always excited for all the amazing content you share with us so huge grats too much wrong visual Lane and Kieran who worked on the LB work-in-progress working title submit your projects we've loved seeing all this amazing content and we get to send you 1080i graphics cards for your hard work so check out Unreal Engine comm / NVIDIA edge for details on how to enter and maybe we can send you a graphics card pretty soon so on to our weekly karma earners these folks are answering tons of questions for their community on answer hub so we just want to say thank you so much to GaN custom aged shadow river every none thompson in 1/3 Joseph Yuki oka no angle mana T sue Misaki nebula games Inc and Vahid ah thank you thank you thank you you guys pack my socks so our first community spotlight this week is a it's a fan art piece for the Last of Us it's the apartment on Melbourne so they've just done a really or Sam's done a really fantastic job of setting up this scene and the lighting he has a bit of a breakdown on his art station and you can see all of his assets that he's created from scratch for this piece so really great work Sam our second community spotlight as individuals it's their first time playing around in sequencer and they wanted to take a stab at a cinematic video in ue4 so they've titled it no mercy so they're just getting familiar with sequencer and they've done this really wonderful cinematic put together with assets from Infinity Blade and Paragon and just it looks red and our third and final spotlight is a game called The Adventures of Gorham so it's being created by Ronnie who's an animator and he wanted to try making his own game so it's a sort of ghosts and goblins needs rogue legacy very early in development and he's learning as it goes but this is a it's looking it's off to a great start and if you all want to go in and post on the forums give him some feedback and tips and tricks for how he can keep working on it please do so alright thank you for joining us for our news and community spotlight hey everybody welcome to the Unreal Engine livestream I'm your host Amanda Bunn and with me I have J Haase lead animator and Tim's like other everybody how's it going oh I feel like it's been a while since we've seen you all we've missed chatting with you at least and yeah you're gonna follow up a little on what we worked on a few weeks ago and round 2 should be a very animated stream for days so if you have it'll be available soon for you all to watch and get up to speed to where we are currently and then yeah feel free to take it away J great yeah I will say if you haven't watched our first one please we will have it posted again right yes yeah we're in the middle of working on that yep it'll be back and please watch that first and yeah so for round 2 I basically just kind of want to jump off where we left off last time let me go ahead and play what we currently have so when we left off we had shin be running around okay so we had her running around but right now if she runs right or backwards she runs towards the camera and typically we call this a forward facing motion set today I just want to convert her over to a strafe motion set and this is really good for shooters where we always want the character to be facing where they're looking so let's just jump right in here so the first thing I want to do to set this up is modify her blueprint her character blueprint and there's one big setting in here that will allow this so open up her blueprint click on the character movement and we are going to look up orient so right now the setting by default is orient rotation to movement so basically this is going to always orient the character towards the direction they're moving let's turn that off and let's see what happens now all right so now but now if I run to the right or to the left you'll see that she is still facing forward and that's what we want we currently don't have the animations plugged in to support it and one other problem we're now going to encounter is if I spin the mouse around she's still gonna stick it's all sorts of messed up so there's one more setting we're going to do here so let's open up her character blueprint again and this time we're going to click on the shinbe player character up at the top and what you're going to look for now is they use controller rotation y'all we want to use this so let's turn it on let's hit compile play and things will behave a little more like you'd expect so now she if you hit forward and move the mouse you'll run into the direction however if I'd now hit left or right she is still playing an incorrect animation that's harder I'm slowly inside the side yeah all right so we're we're getting there so the next thing we're going to want to change is some logic on the animation blueprint let's load this up so right now we're querying a couple things from the pond you know we're getting her speed we're getting her yaw her role in pitch but we're not getting direction there's no way to feed direction so she knows so that the animations know what direction to play so let's go ahead and add that logic so let's go to the event graph and we'll go ahead and pull off the try get pawn owner so if i zoom out it's this guy right here yeah let's pull off this and the first thing we want to get is get base aim rotation and that is just your base rotation of your the pond the next thing we want to go ahead and get is the vector or we're going to want to go ahead and get the velocity and then we are going to want to get the X vector off this so you type in let's see it gets or no we're gonna do rotation from X vector rotations from X vector right here and basically we want to get the Delta between these two and this is going to give us our direction so I'm going to drag off this top guy just type in Delta Delta rotator and let's go ahead and feed rotation from X vector into B this is going to give us a rotation value and let's go and we're going to break this rotator into different axes so go to break rotator and that is going to give us our roll pitch and yaw now this yaw is what we want this is ultimately going to be our direction so you can drag off this you can click promote to variable and let's go ahead and name this variable direction and we need to feed Yuda feed this into that so it'll run okay so now we're getting direction and I want to show you guys this is a really good debugging tool if you ever want to see if one of your your variables are working is a good way to see this is you can drag off the output here and you can type print string and this is super helpful so you know for those just jumping into this it lets you see what kind of data is coming out of this so I'm going to type print string and by default this it's going to go into the duration but you want it to go into the end string and that will convert that to a string and let's go and turn off duration we don't want that on okay so now we're gonna play this is she's still going to be broken but I want to show you guys what the direction is it's printing on the screen so as you can see when I run different directions I'm actually getting these different values so if I run to the right I'm getting negative 90 if I run to the left and getting 90 if I go backwards I'm getting 180 so that's that's the kind of information I want to feed into my blendspace alright so let's get back to the and blueprint now I noticed when I went to the left it was giving me a positive 180 and when I was going to the right is giving a negative I want the opposite of that so real fast let's I'm gonna delete the print string I don't need it anymore why would you want the opposite of that in this case because I want my right just to be a positive 180 okay just from a just because we set up a blintz space your min and Max typically your min it's gonna be a negative value and your max okay so he's the minimum on the left and it allows you to put a run right on the right side I got so I'm gonna go ahead and put a multiplier here multiply float by floats and we just to flip the values I'm gonna say negative one my math teacher is gonna love me they said you'd never use math yeah math it's not complicated math but we use it from time to time okay all right so now our direction values are pretty much what we want to be so we have this concept of direction now I'm going to go to my animgraph and we're finally going to see something happen with this so let's go into our ground locomotion and let's go into the run state right now the Run State is playing a blend space but it's not a directional blend space it's playing essentially just a run and a lean blend space for mylene's we're gonna go ahead and nuke this so let's just get rid of this actually I'm just gonna go and leave it here okay um for those of you at home experimenting with this I meant to say this up front it's it's okay to duplicate an atom blueprint if you have something really working well and now you want experiments new stuff typically I just duplicate it so I have my backup and I have a new one just experiment on I would recommend doing that with this if you're following along um so but for now I'm just gonna leave this unhooked in case I want to hook it back but let's go ahead and add a directional blend space in here so in the shinbe folder you'll see a folder of blend spaces and we actually have one set up for directional runs and this is called the jog combat run and it's only a one dimension speed let me get my let me get my view back up drug it off scream and now I can't find out on Oh are you did you close it oh okay all right sorry guys okay so we have a basically directional it's a one dimension directional blendspace so right here in the center if the value is at zero she's running forward as I go to 180 negative 180 or positive 180 she's running backwards if I go to 90 you know she's going to be running to her right and to her left this is basically all her run directions blending together let's meet so let's go ahead and this is fun working on one monitor usually we have to somewhat of a puzzle all right so let's drag this combat run into here maximize this so you guys can see all right so we have the jog combat blend space let's go ahead and feed it into our pose but right now we have nothing in forming the angle here so let's go ahead and plug in that direction variable that we created compile and then let's see if this works okay so she's running yeah here we go now she's running to her left and you you guys will see for a second she's kind of running forward that's because our jog transitions do not have a blend space in them right now but we do have a running backwards we have a run forward right and left uh so lucky enough we already had a combat jog blend space created you guys all have this if you downloaded the shinbe thing but we need to create new blend spaces for the jog start and the jog stop so let's go ahead and do that right now so to do this to create a new blend space all you have to do is right-click anywhere in the panel and go to animation and let's make a blintz P blend space 1 D what is a blend space 1 D 1 D is you only have one axis so one very one it's yeah one basically one variable controlling it you could also have a two dimensional blend space so you could actually have like say direction and speed okay on one blend space in these cases we're just gonna have a one-dimensional blend space so if you're running faster and it's a different animation when you're star running fast exactly yeah you could have you could set up a for directions but with speed or maybe for directions and a slope or you could have like say it's damage you want damage in your game you want them to start limping you could have other axes be it's basically that's the benefit of having a two dimensional alright so I'm going to create a new blend space we want to click the correct skeleton so that's going to be shin B skeleton and let's call this will call this jog start again dog start let's put the asset in all right so we have one axes let's go ahead and call this axis direction now the minimum axis is going to be negative 180 the positive is going to be 180 and that gives you your whole 360 degree direction and we'll go ahead and leave number of grids at 4 and over here let's go ahead and fill up this this blendspace so right here in the search assets let's go ahead and just type in start so as you see we have a jog backward start jog forward start jog left start so right at the zero let's go ahead and drag and drop jog forward start on the left 90 at the 90 mark we're gonna do jog left start jog backward we're actually going to put on two places we're gonna put at negative 180 and let's go ahead and put jog backwards at positive 180 now we could do a jog right start at the positive 90 value let's go ahead and save this one space all right and now let's go to her and in blueprint and let's plug this new animal in space in and real fast you know once I show you guys this I'm gonna go back to the balloon spaces and show you guys a couple of things of how to keep them in sync all right so we created that jog start and let's plug that in my other window over the you icon you can show it what's that like - in the toolbar at the bottom you have a rather like I can see your other window nope it might be below the screen shift and yeah I'm gonna close that okay alright alright so we have our jog start blendspace let's go ahead and open up the blueprint again there we go got it back let's try this all right there we go this is fine okay people are learning how to operate with one monitor as well yeah more than this animation yes just put a camera on my face and watch me be confused here alright so here we have jog start blendspace I'm gonna drag and drop it over to basically if you guys didn't see it on the animgraph I'm in the locomotion and I'm actually in the jog start State and I'm going to replace just the jog places the jog Ford start with the jog start blendspace because that's going to incorporate yeah cuz now that's going to use the directional inputs and so let's go ahead and get direction here and if you guys noticed last time we went over this a lot of these animations were created for some proprietary Paragon code that we have that we did we have not shipped out to you guys yet we will get this later this year so some of these animation assets were authored for that so some of our start and stop animations have a whole lot more animation because we're using that data the system's I'm showing you now don't need as much animation so what we want to do is cut off a little bit of this jog start just so things feel like responsive so last time we did this I set the start position of the run at 0.32 we could do this with the blendspace as well I'm going to turn off loop and let's just change the start position and let's try something like 0.2 do you just iterate through that until you find something that is right yeah that's a good question yes we definitely iterate if I were to do this properly what I would do is rather than globally cut off point to non-focal in space oh it load each animation individually and trim frames off that but this is a way to do it without this is a way yeah and I want to reiterate that I'm kind of going through some of these concepts more than how to fine tune something precise because we'd be here all day but there are lots of different ways to solve for these things and so yeah you can go in and you really want to custom make your animations for the systems you're using so really what you would want is to create these like starts I feel responsive in the animation and that way the you're not doing some hacks on the blend space I'm doing a little bit of a hack on the blend space here just because I'm calling a mod asset a unique approach yeah so let's try it let's try this out so now we have our jog starts plugged in and so now she is actually kicking off if you see her running to the to the left you can see her kind of lean into the run if you see her start running backwards she kind of leans into it first she slides a little bit in the in the when she starts running backwards mm-hmm is that something within the blend space that you can kind of fix the timing on that that is and in fact let's let's try something real fast with this so any of you doing this at home I highly recommend making duplicates of any animations you're going to tweak so you have the originals error because we are going to release some more animation nodes so I would please PLEASE duplicate these animations but right now let's do the start backwards so here we have the jog backward and if I scrub through it you'll see that she kind of has a pretty slow slow intro before she starts running backwards and that's why we're seeing the foot sliding for our blend space it would be nice if we kind of had her starting around here because it feel responsive we'd get rid of the foot sliding right what you can do is custom tweak these animations like I was talking about so I'm going to slide to a frame where I feel like this would be a nice spot to enter the animation and I'm gonna go and you start hitting backwards you feel like that would be right I would prefer to kind of blend to this frame when I'm going backwards and this is all tweakable stuff this is why I suggest duplicating an animation that way you can always go back and start over again what I want to do here is if you right-click on the frame you scrub - you could actually delete some of the animation so I want to go ahead and remove frames let's not cut off that much let's go to frame six and let's go ahead and remove frame zero to frame six and basically just trimmed off some of the animation so now if I go back and play if I go back and play it'll be less sliding when she goes backwards okay yeah yeah so it feels like a more natural mm-hmm kind of step backwards like so there's so many different ways to to solve for this that's definitely the way I'd recommend is just cut it from the animation you get your animations perfect if you if your animations aren't perfect sometimes you're going to be tweaking a lot of stuff in the grass to make it work and that's just kind of a more expensive way ultimately alright so we have the the backwards balloon space and let's go ahead and add the stop now the stop gets interesting and I'll show you guys why let's go ahead and set up the stop animation just like we did with the start now let's create our blend space real fast so let's go you move this off-screen let's go to the blend space folder let's create a new let's create a new stop blend space so go to new animation go to blend space one D we're gonna click the shinbe skeleton again and this time we will call it jog stop let's go ahead and open this up and just like with the start we want to go ahead and do a minimum axis of 180 positive 180 call this direction and let's go ahead at these are stops right so we'll go ahead and drag the jog forward stop middle jog left will be negative 90 jog right will be positive 90 jog backwards will be both positive 180 and negative 180 and this is an animation I highly recommend trimming I would recommend making duplicates of and trimming so let's go ahead and save this let's go back to the Anam blueprint stop so here we have the jog stop just one direction animation playing so let's go ahead and put in the blintze pace in okay and so what do you think's gonna happen here do you have a prediction of what we'll see happen here Tim no I think she's gonna back flips back flips yep that's my guess you know no one's predicted that yeah that's cool all right so if she does back flips energy yeah okay so ever jog starts playing but look look what happens when she stops huh it's just it's actually playing it looks like it's running into a wall she's playing a jogger right right it's just kind of random the reason for this is because the minute you stop that direction has now hit zero so I'm at that direction is not updating because since I stopped I'm wrong and I'm not actually heading in any given direction right so but it's that that number I'm feeding in is is not the number I want what I actually want is a direction value the minute I take my finger off run I need to somehow like save that number and feed that into a blend space I'm sorry okay so real fast let's go ahead and get this this blendspace set out we don't want it to loop let's go ahead and leave this for now so we're gonna basically need a new new variable so here's something pretty cool with our state machines is you know as I'm running and I stop running I want something to happen so right here on the side we actually have some custom events we can make a custom a blueprint node so on the Left when I left the state so the minute I'm not no longer running I'm going to leave this state to go to jog stop what I want to do is I want to kick off an event to happen in between run and job stop yeah okay and it's to think of is just when I'm not running it's just the minute I leave that run State so like back to your idle State or something yeah so basically what I want to put here is let's just say we'll call it run stop that's the run stop event okay and let's compile now if I go to my event graph this events going to show up on my event list stuff I do event now what do we call that jog run stop room stopper jog so run stop that's why naming conventions are good to follow because I've called this jog and run and you get really confused but yes alright so now we have the Anam notify run stop so the minute that fires off in my state I can actually trigger something to happen so what I want to happen is I want to go ahead and get that direction the direction variable I'm current I'm always setting at any given time let's go ahead and get that and I want to go ahead and create a new variable so let's go ahead promote to variable and we'll call this direction on stop let's call it that so what that's going to do is the minute that fires off when I leave the state it's going to tick over here and it'll say hey set this value what value should it be Oh your current draw your current direction right as we left left the state theoretically this should work let's go to let's go back and graph and so instead of direction let's go ahead and plug in the direction on stop mm-hmm and this is this direction is always updating every every frame and so the minute I lay off that direction is gonna go to zero or something right cuz you're no longer have but this is staying this is a lock steady this is like the minute I stop that value has been set and it's not gonna change anymore we're just stuck in that there it's gonna be stuck at that number so if it stops at a negative 90 it'll stay at a negative 90 and now you're feeding that into you as I stop because as you stop you're not controlling your ear run Direction right so let's let's try it out so there we go she's playing her no no shoes so so there's another bug eye that we just saw here that's coming right now yes so here we go so she is playing let's see is her looks like that's a run right stop that looks like it's a run right now do you ever have a point where you're you're debugging and showing what animations are playing yeah actually that's a good point let's do that right now because I'm obviously seeing some some bugs happening here so if you want to see what animations are playing you have a command here that is show debug animation so as you play if you look to the right of the screen it's telling me what animations are playing so right now if you like she's playing her jog right stop but if I go left yeah she played her like she played her jog right stop chocolate no she played her jog left stop when running right they were running it's because you it was plugged into the run as opposed to the stop yes probably so I will yeah we'll go back and see um thanks for everybody's help too by the way awesome teamwork guys or maybe I should just stream you at my desk all day and you guys help me while I'm on this debug I want to show another way just to really say sometimes the text goes by way too fast so if you do something like slo-mo point three you can play slow and it just leaves it on your screen for much longer you could also use shadowplay we use shadowplay a lot to just record what happened and then frame by frame oh that's really cool happening so yeah let's go back and see see what I did wrong can you speed it up slow mo can you go to like yeah and absolutely let's see what looks insane some I love it oh you go all the way to 11 so yeah that's that is a witch state all right let's go back to man what did we do jog combat I was I in there wrong yep you guys are awesome alright so here we go I plugged it into the wrong one so let's go ahead and nip this guy and I want to point out like when you see its devs go through this stuff and show you these tutorials online and it looks like we just breeze through it and it's it's so easy we we've traveled and aired this thing a few times it's the actual normal way to do a lot of this stuff is to plug something in it breaks you try it again so if you find you're doing that that's standard fare don't don't worry about it it's the new thing so here we go jog stop linspace I had the wrong thing plugged in so you need that stopper I need their direction on stop plugged in and that should work sad to say guys I noticed a something I missed on shinbe before we went out to the public but I we actually have no logic right now I want to cover this real fast we have no logic between jog start and jog stops so if you're in the middle of your jog start animation and you stop there's no logic to get you to the jog stop and interrupt a jog start so I want let's go ahead and make a real quick roll real fast kind of going off on a side tangent but it is definitely gonna affect the end result of everything else I'm doing so right now let's go ahead and say it's gonna be the same rule where if I'm not accelerating let's go ahead and enter transition so I'll say get it's accelerating we'll say not and so for those of you who like if you're kind of going back and forth with your runs right and left and you see that she gets stuck in this foot jog that's why that's been happening next time we have bait these characters that'll be fixed okay so now we have a startling go and make this full screen okay so she did a start and when she stopped she's playing the run forward stop it's a very long animation like I said we made it for our Paragon specific code so we'll trim these up a little bit but here she is she's running right to a stop it looks broken because yeah she should be stopping over a larger period of time that's a stop left that would June animation yeah oh it works and free motion I would trim the animation we have speed warping and that was that's not out yet that will find the place on our animation to play based on distance of where you stopped and that will continue her momentum today anyway keep it actually keeps your feet totally locked on the ground there's no foot sliding at all this system is not the best at solving foot sliding it's basically define your speed and then do your animations there's no feet sliding so our new systems that we're gonna release later this year will solve that far easier but for now let's go ahead and modify our jog stops and I'll say this like I know I'm saying this a lot but please duplicate these before you create create new ones I'm not doing it here we have batches B I've backups but you know I'd hate for you guys to have be lost without the original okay so here's her stop backwards as you can see she has several steps before she actually stops so let's find a good point for this kind of system let's find a good point that we would like before she stops or doesn't feel too abrupt yeah you don't want to feel too abrupt you also want it to be a good blend so usually what I look for our moments where her feet are together so you kind of can't tell if either leg is extended out in front or not cuz you never know when she's going to jump into it so here she's running backwards I'm not gonna spend too long on this but let's say let's pick let's pick about right here is that assuming that the camera is behind the character then yeah oh I always make your decisions based on what your primary gameplay camera is always it's pointless to look at it from a front three-quarter view right if you never see her in that it's absolutely so let's say I'm gonna pick let's pick about right here frame 30 and I'm going to do that I'm going to trim off so we're gonna say remove frame 0 to 30 and let's go ahead and do this with the Ford stop I'm for anyone who's really knowledgeable about you know blendspace and animation systems I'm sure you're sitting there going this is these for animations don't make the best blendspace either because she might be stopping on different feet I'm trimming them at kind of different times so I think another way you might want to do this is get basically say if a value is like between these two numbers go ahead and play this full animation where not you're not really necessarily doing a blend like in a balloon space so here let's go ahead and cut it at this one seems I'm just going to cut it here about frame eye-team left this one's tough she's kind of in a stairs like a big step before she stops so let's just cut about here cut on frame 9 you guys feel free to try something else you guys could probably find something even better by spending more time with it and then here's her stop right stop right she actually does a lot of small shuffles which is it's tough as an animator to kind of work this kind of stuff in if you're not using our Paragon specific nodes that we have for now let's go ahead and let's cut it about right here cut on frame right okay so cutting these animations are all automatically updating the blend space I don't have to go back and edit the blend space at all those changes have now just propagates through obligated to that that's awesome which is good and now we can play this again and this will see if the stops feel a little better so that feels better to me yeah her top forward feels great let's just stop backward fills its little it kind of jolts a little bit it's not bad her stop right she definitely does a foot slide I would probably trim a few more frames off that and in her stop left it's just that's a rough animation let's is it hurting you and say oh boy so this one's tough let's let's just try to trim a little bit more off the run laughs little off the top off the top let's see let's say we can do we'll do one more round of trimming and here's one more cool thing is you don't have like if you notice I still have the game running I still have it running in PI I can go ahead and trim off a little more so let's try let's try trimming here again so I'm deleting another 13 frames that's gonna propagate again as well over here so let's see if that yeah that feels better it's not perfect but it's definitely much better than what it was what do you think Tim use a non animator it looks a little the legs are a little too far apart I think yeah I'm not stopping but I think it's yeah it's gonna fall over yeah she kind of kicks that a back leg out a little bit and in this case what I would do is actually take this animation back into Maya and to end just tweak where her leg is yeah I feel like at the animation and now would largely yeah see a real condom yeah and actually do we have people kind of responding right now if I were to ask a question could I get it okay so how many of you guys out there are using Maya first is say Max or blender like would it be useful to see our maya pipeline how to get this stuff in people say cuz i would love to show that as well because there's some really nice ways to modify animations on the fly from animation from maya alright so how are we on time guys we're good we got a couple of Mayas some blenders okay a lot of blenders some other blenders some Macs alright I will do a I think I'll do one later probably with Maya but you can use blender as well it's the same kind of concepts but basically my our Unreal Engine has a listener so if you have data in FBX file it'll automatically import it upload it and so you can continue playing the game you could be in PI modify an animation and Maya or blender even while she's running it will update the run so you don't have to pop back and forth we're really trying to cut out a lot of that that those button clicks that eat up your day okay so let's say we looks like we've got her blend space is covered oh I did mention I want to go and show you some things in a blend space that help them work better its best especially your runs so let's go ahead and go to open up a jog animation here's our jog Ford and I probably believe I covered this on the first episode but I want to go over it again as it relates to blend spaces but here on the notify lines we actually have sync markers and so if I wanted to let's go ahead delete these and I'll recreate them to show you how they're done but what we want to do is create a marker right when her foot plants and that way if you're blending a run forward with a run right it knows where in the cycle it can blend the character this will let you have maybe a run forward with like four or five cycles in it and maybe your run right only has two cycles and this will keep them all in sync does that give you another chance of error though because we're telling it you're saying hey this is where this is actually happening it there's always room for error when you're putting in data yeah but without it your your sinks are going to get very mushy blends with your feet so we have a pretty good rule that we tend to follow for placing these that keep it pretty locked so what we say is right where my pointer is that's essentially zero zero zero this is her let's go back to perspectives I could tell what leg that is okay so in the very beginning of the animation that is going to touch your left leg so we're gonna go to orthographic view and the role we set for placing sink markers is when the foot bone passes at zero plane or actually or it could be her root bone plane but it should be at zero zero zero when it passes that that's where we want to put the sink marker so we know that's her left foot it's right over that middle so I'm going to right-click I'm gonna say add sink marker and the rule with these is as long as they're named the same it'll always sync with other markers with that with that name so we happen to call these left and right plants so we'll call this left plant and let's do the same for the right foot so about here it's passing that zero plane so let's go ahead and create another sync marker and then again this is a multi cycle run cycle so now left is here at this point we've created this I can just copy and paste so I can copy all my left this kind of speeds up the process you just dug to get the timing right but yeah you stuffed it up to the frame but you don't have to like click and type in to any new developers out there you'll find the best way to buy yourself back a lot of time is just get rid of all those mini clicks and typing get rid of all those as many as you can I have talked to developers who didn't know about this a copy paste thing for sync markers they literally typed in hundreds of them well without knowing so if I helped anyone else out there I hope I did um alright so that's what we have for sync markers and you'll notice all our other actually looks like oh these are our stops let's go back to you so any other jogs yeah all the jogs you theoretically could put sync markers in for your stops if you have lots of foot plants move it's a very long stop yeah so as you see here we have we have our other sync markers already plugged in and that's how you can get your animations to sync up for blown space back in the old days some of the older animators who've been doing games for a while you know you always had to start a run cycle with like your right foot fully extended you know your project always made whatever rule it was your right foot has to be extended on frame 0 and you can only have three cycles with sync markers you can get rid of that you could have phases way out of whack between different animations and this will get them all back in sync it's a pretty powerful way to sync things up again so I think I covered let me look at my notes real fast guys I believe I covered everything on the blend spaces and getting this drape system so let's go ahead and work on this is a very simple turn in place system there's two different versions I'm doing this super cheap because it would be nice and if you guys just want to learn some basic concepts get in a pretty simple turn in place and then as time goes on we could do maybe do another one where you turn after you've aimed you know 90 degrees first but for this one it's simple it's pretty simple like if you're turning right you're gonna play a turning place so with this let's go ahead and find out we do have turn animations already in these libraries and we're gonna use the turn rights the 90s and the turn left 90s like I was saying earlier it's good to duplicate these in this case I'm going to duplicate it because we're definitely gonna chop this one up so we'll call this turn left I'm gonna call it loop and let's do the same with turn right turn right loop I'm gonna fix my spelling error here okay and these turn animations were made for again some some future nodes we're gonna release and so what they actually have a turn in place and they have a really long settle that's really nice we want these to loop so I need to trim out this this settle because essentially what I'm going to do is build up logic that if you're aiming to the left or right we're simply just going to play a loop and place animation over and over why do you want that long settle at the reason you went along settle just for animation and reason is you've you know in game we've turned yourself mm-hmm pretty quickly and you naturally expect the body to overshoot and settle and get back in into an idle and especially our heavier characters and games in the past usually cut the minute they turned they cut and it makes that animation feel very like light and disjointed little gamey so yeah we added a lot of that just to hide you know where players can't tell where the turn animation stopped you know it just feels all very fluid but in this case I'm going old school we're gonna do like an old school turn system here so let's go ahead and open up turn left loop and I'm gonna find a spot here where I fill the animation loops pretty good so she basically finishes her her turn finishes her turn about frame 30 seems to me and if you guys are looking at this animation say it doesn't look like she this doesn't look like she's turning what it is is we've countered the turn and so when we exported the animation she's aiming forward because we know the capsule in the game is going to turn her 90 degrees now I was thinking because the cloth under arm stops moving yeah yeah so let's go to frame 30 we're just gonna cut here remove this time we're trimming the end so I'm going to trim off 31 to 60 and if I play this you'll see that it's not the most perfect perfect blend in fact actually want to take out a few more frames of this so let's do 27 to 31 let's play it again alright and this is feeling more like something that loops the last frame and the first frame have a difference here what you can do to smooth this out a little bit is go to a set and add looping interpolation and for some reason or slickered okay so it's going to add a extra frame at the end of the animation to to basically help it blend so now if I go first and last frame okay you don't see much of a difference oh yeah there's a bit of shattering difference but yeah you're not gonna notice that so basically it makes something that's almost loopable it makes it more loopable and let's go and do the same thing with turn right loop let's go ahead and trim off in theory would it be the same number of frames that you'd cut it doesn't actually it doesn't have to be with the system I'm doing but generally no I mean it depends on what system you're using we have done turning play systems where we are getting a turn rate speed that's dependent on the frame numbers in your animation so in that case yes in my case all that I want is something that loops and I'll keep playing that loop until we're not turning cuz I think it was 27 to 60 frames the last time yeah I mean if you can get it pretty right close feels right better yeah okay and again let's go ahead and add a looping interpolation if it does it again alright and then yeah if I compare last frame to first frame it's it's pretty pretty darn close alright so now I have our my looping turns let's go ahead and save save these two assets I just created all right so now we need to add logic for turning and let's look at my notes here guys alright so let's go to the animation blueprint we're gonna create a new basically a new state off the idle state because if I'm turning in place I'm only gonna be turning in place if I'm idling I'm not gonna turn in place from a run or stop or anything else let's go ahead and drag off and create a new state so let's say add state and let's call this turn in place and then let's go ahead and make a rule set to get back to it and let's go ahead and do our logic to get in the turn place before I plug in animations let's go ahead and think of the logic so if I'm turning I need to be standing still right so we want our speed speed needs to be zero so speed let's say equals zero and let's we also need a and bool because basically we need to be standing still and we need to be turning so the where we're getting our turn value is from the aw so let's go ahead and get what the yaw is and so Y all needs to be greater than zero right as if you're if you're turning but also y'all could be negative right it could be negative 20 degrees or positive 20 degrees it's basically left or right what's that depending on your turn yep exactly your y'all can be negative or positive or negative so let's see let's go and try it let's go and try this is going to be K so I'm going to try it something will probably break and we'll go back and modify it so let's just go ahead and for now say yaw is greater than zero and usually when I'm figuring out this logic I actually don't care about what animation is going to play I just want to see that something does play so for now let's just go ahead and plug in I found it it didn't hide that time no let's go ahead and plug in one of our new looping animations I'll just do turn right okay all right so right now we have Idol and I the rule I created was is a speed equals zero and is my oo greater than zero if so let's go ahead and turn in place and we're playing turn and place loop I'm gonna have it set to loop and right now I have a state that we can't get out of it which is fine I'm just testing the logic real fast all I'm gonna do let's try this see what happens okay so we have sin B do you predict back flips not this time I feel like she's she's moved beyond that okay all right so okay I got into the state is she standing still she's looping I have no rules to get out of the state so she's professionally taken the turning in place right now but if you know I'm turning my camera we're getting some semblance of a turn in place animation those dance continues stop so I mean our logic I guess it's holding up right because you're in that turn state now I'm gonna turn state's need to go back in went right yeah so now let's get get back out of idle so there's lots of things that can kick you out of a turn state there is let's say you start running you do you know you don't need to be turning anymore so we'll say get speed and we'll just say your speeds greater than zero instead of doing in and bull because we're not we're not waiting for three things because once it's or right so we'll do an or because any of these things will kick her out of that yeah any of these things can kick you out and let's also do y'all will say if y'all equals zero you're no longer you're no longer turning when they're doing so let's go ahead and get yah and let's [Music] what I found is sometimes even when you let go of your mouse your jaw will still give you like a point zero zero zero one thing you may push to Elmo there might be something so for for this I found it's best to say greater than and give it something that's not zero so say like point zero one that just kind of it gets rid of any like micro feedback you might get from your mouse or learn kind of stuff yeah so let's try it let's try this logic now so if your speed is greater than zero or y'all is greater than point zero one oh that's a greater it I say less than I think it's a greater than that so let's see all right so probably what happened here yeah I can't get out of it because I meant to say less than point one because essentially we want it to be there we go sorry math teacher the animators do use math telling ya we only have to count to 360 which is cool that's fine yeah maybe sometimes 720 I don't know they've mentioned a couple times about a not equal there there is a not not nearly there probably is a good reason to use it I've not used it because I like having that some exact number and there no there's not nearly enough reason there's not nearly enough reasons I I would like if you guys have a good use case that I would love to hear it as I've not use it alright so if you notice I something something's broken here because she if I go left okay she's going in there go right it's not so the logic isn't quite perfect I have messed something up this is normal this is part of it so basically that yah I have less than zero right remember what I said about if she's going to the left she is she's in a negative range I actually want her to still turn if her yah is is less than point one so what I need is an absolute basically what absolute float will do is just take whether it's negative or positive it'll still spit out that that number so let's see if that helps things a little bit okay all right so our left is working her right isn't and I think it's for the exact same reason I have I didn't put an absolute value on my entry point but here we have essentially a working turn left I have now made a working turn left I've not made a working turn right so that's good let's go back and try again add the absolute premium yeah so let's get going add absolutely even though it's zero but it's absolute greater than zero so you know like point one is greater than zero negative point one isn't but absolute will make all things that are not zero so there's there's left or sorry that's I'm still playing a turn turn right and if you notice she's just playing it over and over something is is not letting you kick kick out of it this is a good case of where you do want to print your print strength of what yah is because it could be a mini number of things my logic could be broken or maybe this amount you know for whatever reason y'all is kicking up a number let's go just take a look and see what ya do that one screen yeah let's go to a print screen fast and you guys there if you guys have a really messy spaghetti graph and you want to find where variable set you can right-click on it on your list you'd find your references and it'll give you a list of your references and right here there's a set yah so this shows me where it's set if I double click it it'll take me to it on the graph and here I can go ahead and do my print screen and again we're going to move this to the in string and let's move the arrow through here the executable looks good all right so if you noticed here would you do the slow mode here as well you can do it actually that's a real fast did I yeah I have duration clicked actually I just want it to stay there for a while oh all right so it's zero that's fine zero all right so see how it's like sitting there at point zero zero zero zero zero eight right we shut off the mouse so personally I don't know what's what's causing that this is why I was setting in these these rules because you're never getting to the absolute zero at this point yeah I'm never getting to zero that might be the cause of this so let's let's go through this again so let's say Y all so going in let's be zero how you had the like point zero one um Val you guys are awesome seriously so I think I'm the one on the bottom there yeah that'd be that'd be this one right and I want it to be less but less than well was it you'd want it because this is the leaving state it wasn't leaving this state right first maybe am I getting close they saying they're just they're saying you want to stop entering or equal to Oh nearly caught let's try it let's try it let's try it and really got him some good things let's try it okay so speeds fine we know that yeah they were saying it's the entering state that's causing entering okay and so we want it to be because I think if she's stuck at point zero and our point zero zero whatever she'll keep entering well the God continuing to move anyway yeah yeah yeah she is who's entering it you're right you're right actually it's a greater than yeah so it's just yeah I'll get there eventually these neurons like make a connection and I I get it nearly there nearly I still didn't use a nearly node you know avoided that well you did gracefully yeah alright there we go so yeah she's getting in and out yet yes chatting Jeannie awesome awesome but right now she is is only playing one turn in place animation she's playing turn right so let's figure out how to play just a turn light like I said there's more than one ways to skin a cat I did it one way I'll show you the way I did it real fast them and get rid of that print screen I always recommend deleting those as soon as you possibly can because sometimes you get used to them being there and you check it in and someone yells at you for spamming in their game so let's see what I want to do here let's do everyone's who's chad congratulating shad no hey Chad he's talking to us he had a question okay so let's go to the annum draft here is my awesome animator way to solve for which turn right or turn left to go with like I said more in one ways to do this um so let's go ahead I'm gonna go ahead and get y'all again we're using loss y'all for a lot of things and let's do blend poses by bull scroll up here okay so blend poses Bible if yah is greater than zero or nearly or nearly all right if y'all is greater than zero that means you're going to be definitely that we don't want an absolute value here because anything greater than zero is going to be going right correct so that's our active true value our true value is right so let's go ahead and feed turn right into true and if y'all is not greater than zero we are going to play turn left somebody's saying that you deleted the print string but didn't reconnect the execution path oh thank you my god seriously a live stream me just at my desk yeah let's go back to the event graph I don't know what they were talking about clearly it's reconnected connected like I would've got there eventually you guys just cut off ten minutes of the stream let's see and let's go ahead and let's play test everything all right so here we go she's playing turn right and it looks to me like splain turn left like so these are cut up turn animations aren't why what you would offer for this system let's show debug animation and that says turn right loop and this is turn left loop so I actually have my I have my role my logic switched which is fine I'll gladly take this that's the easy problem to fix because that is just a matter of switching two things although I will have to think more deeply about why yeah anyway you guys know I know you guys know I'll get there eventually understands Chad thanks Chad okay so and there we go left left turn right turn she's turning and she strafing like I said these terms are actually altered for a different kind of system with our with our distance curves but this will help me segue into I want to show how to retarget animations do we have time we have we have are we good on time okay I'll go over this pretty quickly it might take puff it 10 15 minute okay so shinbe doesn't have any other turn animations for me to use if I want to use them however cereth did have some that I saw that I liked so let's go let's open up Sara throw fast we're gonna add her to my thing oh here we go she's right there characters heroes and let's to let's look at her turn animations the way I generally do a turn animation like we just did with shinbe is there's this turn in place style of animation where it's it gives you more of a subtle subtle turn this one's super subtle but she also has another one that's a little bit bigger of a turn in place to me that's a little bit too big but just for the the sake of this this conversation let's just say I want this one just give her a super light light turn and maybe I could play this the playwright a little bit faster you know as she turns so we have this right now it's I can't play this animation on shinbe so I just want to show you guys how you can retarget animations to different character packages let's go let's see let's go here right she might not have her rig setup in place I'll go over that so she has her turn in place and let's just say I want to go ahead and retarget go back up to the retarget annum assets this is what we used last time I did a stream but we did it to retarget a blueprint this is for a specific animation so right now I want to retarget her but shinbe is not on this list of characters to be targeted I could get her on the list by simply clicking allow remapping sorry only show compatible skeletons and she'll pop up I actually want to show you guys how to make it compatible skeleton so let's go to shinbe and let's go to her mesh file her skeleton file I mean and you should see a retarget manager panel if it's not down here you can turn it on up here at the window and there's a retarget manager so we have a concept in here and it's called a rig and it's not like a rig you would have in Maya or blender or max it's not like a control animation rig it's basically a list of bones and what those bones should map to on another character so in this case we have some setup already we've shipped out a Paragon proto retarget or a sorry Orion proto tree target so let's click on that when I go and save her skeleton and this window is cutting out a bit of what you should be able to see let me see if I can somehow let me see if I could reef resize this window it looks like it's not let me resize this so we should but right here if you guys could see it on your computers you can scroll through and basically you can see what we're mapping bones to so in this case a root bone will map to a root bone pelvis to pelvis for our models they all have the exact same bone names so this is super easy but if you're retargeting your own stuff from say you know a different skeleton source this is where you do want to map the bone names to their respective respective bone and then in this case most of our characters have what we call an a pose and this is basically this can be here a retarget post up right here if I click view pose that's going to be hurry target pose in this case that's the exact same pose as her what we call like a bind pose so I can modify this post let's say one of our characters is in a T pose and not in a pose I can go to modify pose I could say use current pose and so let's say right now like I said if I hit view pose as long as this says hide pose on it we're looking at her be target pose so let's try to get her her arms and a T pose you know sometimes you see characters come in like this and that would be hurt her target pose if I go to retarget manager I can modify pose and say use current pose now if I hide pose we're gonna see her bound her bind pose that's just how she is in the editor but if we want to look at her retarget pose that is now saved right here and if all our characters across the board have this exact same pose their animations are gonna retarget with each other much better because it's looking for that exact it's yeah it's basically going to maintain it what it does it looks at two different skeletons and it assumes they're in the exact same pose and then that way it'll transfer like they're the rotations and stuff so basic basically in a relative position interposing but in this case we actually between cereth and her they're both at that what we call it a a pose so imma go ahead and just hit reset and now her pose is back to what it was which is what we want in this case okay so we do have her her rig let's go ahead and save the skeleton now let's go back to cereth and try this this retarget again play zero and let's go to retarget okay now you'll see that I have a compatible skeleton over here because it's built in my toes no it's not because they're both in a pose it's because she cereth is looking for another character that has a rig assigned to it as long as they all share that point to that same rig the rig asset they are compatible and open wise make sense and real fast I'll show you guys where the rig the rigs live should be under meshes and you'll see that the rig file not to go off on too much of a tangent we have given you rig files that are the definition of what a Paragon character skeleton hierarchy is but let's say you have your own skeleton hierarchy and you want to create a new rig all you do is you simply right-click on the skeleton and you create create your rig file right here and it creates a rig and it'll create bone basically your bone definitions don't you I'm sorry I don't want to make it is too complicated for everybody but right now we have shinbe skeleton they're both in the a pose and I want to go ahead and point to where I want this new animation to go to so I'm taking a sareth animation I'm putting it on shinbe so let's go ahead and drop this new animation into her animations folder and I'll keep the same name totally fine I think it's called like turned what just happened I think I autosave just kicked me off let's try two try this again looks like that autosave kicked me back [Music] okay I have the setup names the same and go ahead and hit retarget so now we do have a turn in zero retarget animation in this shinbe animation folder now you can see she's playing that same animation that cereth is playing now if we get on closer inspection of the animation he like looks like she is like clown shoes on her fingers probably gonna be messed up yeah her fingers are messed up her hips are actually kind of moved this is because we're actually taking translation data as well from cereth on to her we only want rotation data so think of each joint right I our fingers right Sara's finger joints are in different locations and hers yeah it's being literal it's not being smart about going here's this put it here but we do know that we do want their finger rotations to be the same so to fix this is you want to modify the skeleton of your character to be able to take retargeted data so let's go to her skeleton tree and you can do this on the animation panel you go over to the skeleton tree and under options show retargeting options and right now you see you get this translation retarget column and basically this is saying where are you gonna get your translation data for all your joints whether right now it's saying it's coming from animation your other options are skeleton which basically that's saying translation in basically the the rig pose you know this bones always going to be the same offset from that bone that's one way to get your translation retargeting we have a couple other options that I'm not even get going to go into right now but in this case we want skeleton for like the fingers we only want a rotation data on them I could go in and click on all these one by one and change them to skeleton or I can go to basically the top parent just in this case it's going to be pelvis I can right click and I can say recursively set translate retargeting bone to skeleton now if you notice where everything looks good right her fingers or maybe some of the rotations are awful a little bit because our rig pose you know we didn't go in and perfect the rotation of the fingers but at least are not all Jaggi her feet look good if you notice now our hips aren't moving right because I said it to skeleton so for pelvis let's go and turn it back to animation specifically just for pelvis and so now she has basically her own little kind of mini turn-turn animation and so I'm gonna wrap this up pretty close I want to leave some time for questions I'm real fast I just want to see what this looks this animation looks like in her turn turn right and turn left so let's do what do we call this one turn in place zero now let's go ahead and do this one I'm gonna go ahead and play the next one backwards so play right if I do negative one it'll play the animation backwards so really you know if one's turning right the other one's gonna be playing backwards to go go left which called earlier not a hack it's a unique and unique work or a unique workaround a unique approach let's do a unique approach I like that and who knows this may or may not work this actually doesn't work because her her tire pose is so insanely different probably what I would do is make maybe an additive on her feet you have to bring her right into them yeah in fact I probably won't use this at all consider this an experiment that didn't quite work anyway I want to show you guys how to retarget animations those awesome let's uh let's go ahead and leave it for some questions right now all right so they're wondering if you could really quickly you sort of walked through some of the sink markers but didn't show it in action oh yeah sink markers in action or basically it's like plug and play so if I go let's open up a blend space so right now her feet are always in sync whether she's going forward or sideways or backwards because those sync markers are plugged in at the same thing so I probably the best way to show this is maybe remove sync markers and show you what happens let's load up the jogo fast I mean it's pretty simple I mean I the way it works is that it's always going to sync the animation so it won't just start the animation on frame 0 let's say we're playing a run forward and the right plant is on the run forward it's going to go ahead and enter this animation at this frame you know on the right plant it's always going to keep them in sync and in fact if one animation if you run forward animation is 15 frames long and your run right animation is say 30 it'll scale the run right animation to be in the same phase based on these so these are essentially plug and play they're pretty much invisible after you've plug these in they just work they're commenting about it it looked like these animations have lost the lean angle yes they absolutely did lose the lean angle there's two ways to solve that I kind of ran out of time for today to go over that so one option is right now I have a one dimension blend space I could put I could go ahead and make us a 2d and add that the leans back in the other option is the reason I want to say this is I want to go over additive animations next time I do this the other option is to create actual additive poses and that's what I plan on doing here and basically based on y'all Delta will play a lean right or lean left additive that will play on top of a blend space okay I'll cover that next time good question heart to me yeah part three we briefly talked about explaining this shouldn't be looking the locomotion state and the transition between the jog stop and idle and why why are there two transitions yeah actually as a solace question you read me this question earlier and I peeked in I there is definitely some redundancy here we set is accelerating if speed is greater than zero I don't know if this was like me like left this in an experimental state when I did it but honestly you don't need both of these so just case in point I can go here disconnect is accelerating I can go ahead and remove the pin and if I were to play this if I were to play this I believe she'll run just fine yeah she'll run just fine so that's just redundancy on my part it actually didn't need to be there okay they're wondering there seems to be some issues with her like hair flipping is that part of the animation or is that part of no that is so her hair flipping when you play is actually motion blur screen-space motion blur that's just a problem that's just a motion blur it's a motion poor issue skeletal meshes and motion blur a little bit off-kilter I believe one way to fix that is you can go let me see if I can remember this correctly I believe I can go to her oh you go to your project setting and turn off motion blur or you could put like a volume I believe like some volume control on her actual blueprint that will turn off the motion blur how can you blend between the different movement modes like forward facing and strafe style motion setups in game how could you actually oh how could you use both if you wanted to it's talking about a blend between the different modes I'm more facing it straight you absolutely can do that we did it like way back in Gears of War you know roadie run was just a forward facing motion when we did Paragon our travel mode was only a four facing so honestly I would probably just do a different state and don't put a blend space in that state oh I know what you're saying also orient towards camera or orient towards movement because that is like a that's a setting that's not dynamic so I think either way you're gonna have to put in some some math to solve for orient towards more math more math get a programmer nearly there wondering is the set up for all of these characters generally the same he felt that chimeras setup seemed a little more unorthodox than others you know if and it's very possible that chimera chimera is one of our earlier heroes that didn't use our new node system so come here actually probably used more methods that we're using with shinbe right now thinner or like more modern stuff but yeah he's definitely we're older heroes and probably has some some stuff that's a little bit different good alright I think we're going to wrap it up there folks thank you so so so much for joining SJ and they've all noted how you've committed to a part three yep no I do part three I'm gonna go over at it is I'm really hoping to show off the male a twist in fact I'm gonna go ahead let's go ahead and say I will show you male a twist and added then you show us you doing the middle a twist with J and then honestly keep the questions coming because there's there's other things that I might not think to show and then based on what you guys give feedback on I'll show some I don't think so all of those are good points so I've dropped a survey in the chat do you fill it out let us know how we're doing here what topics you'd like to see in the future or if there are specific things that you're curious about in regards to animation that can help inform Jays presentation and for the next stream so do fill that out as always check on for your local area ue4 meetups meetup calm / pro / Unreal Engine will get you there you'll see we have groups all over the world so hopefully there's one near you if not you can always start your own and again submit your projects to the invade h program we love seeing what you're working on and we'd love to send some sweet hardware your way so thank you all again and we'll see you next week oh yeah bye [Music]
Info
Channel: Unreal Engine
Views: 54,478
Rating: undefined out of 5
Keywords: Unreal Engine, Epic Games, UE4, Unreal, Game Engine, Game Dev, Game Development
Id: NRwMmHNs0KU
Channel Id: undefined
Length: 94min 52sec (5692 seconds)
Published: Mon May 07 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.