UE5 - Control Rig - Full Body Rig

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
okay hello everyone um yeah this will be a tutorial as i mentioned on my twitter of my findings on contour rig for unreal five uh this is a very straightforward process there is no modules creations or anything that optimize the creation of the rig but it works and i just wanted to share uh with you uh hopefully it's helpful um yeah let's see so [Music] i have here a character that is literally a mixamo character that i've downloaded let me just move this to this screen so yeah there is nothing like fancy going on here just a skeleton with the name directly from mixamo and that's it so basically first step is rate control rig and he is well we are doing um a rig so basically there is the forward solver is the main solver that will actually move the joints around there is a setup event which is done before the controllers start like moving things so this is mainly for you to place the controls in the correct place or for example change the color of the controls and things like that so forwards over i'm just going to start with the fk chain for the lag so [Music] there's a really cool functionality now that if you go here and select the joints and then right click new add controls for selected it gives you all the controllers already in the correct order um so then what you need to do is create an fk chain and then you can just easily drag and drop this create an uh item array so these are the controls then you come here left leg create array and then these are your bones and there you go you have your fk working already so a couple of things about the controls here uh you can easily change their shapes so see this tab here there is area called shape so then you can change the shape here solution for a circle for example you can change the size of it uh you can also change the orientation so for these three here i prefer it to rotate 90 degrees so we get them kind of like this um all these changes you are making here is just on the shape so even if you change location and things like that the actual rotation would still come from the correct place from the joints you're just changing the shape position um oops no that one is 19. okay so another thing i've done in my project was uh start to organize this a little bit so this will be called left leg and then let's have a sequence here and then first before getting this fk fk mode so i want to actually now let's do the okay first i want it to hide and unhide the controls but i can't do that yet so this is fk mode so let's do the ik mode um for the ik mode we'll need new controllers so what i've done is that i got um so i'm just checking here what i've actually done so i have one that is in the position of the foot so i'll duplicate that uh to make it easy i also created a new above selected so then i can have my fk and my i case uh all under the kind of same little group here so these call as left foot ik control and i also need a pole vector um i'll change the shape this for a sphere so we don't get confused um maybe it doesn't be that big 1.5 um yeah and then i'll just duplicate this and call it poll vector so call left leg pull vector ik control so i know my eye case are called ik basically i need now to place the pole vector in the right place so for that i'll go for this setup event and then i there is a new node now called computable vector so i'm giving the bone of the leg so left uh up leg which is the this one here then the new one which is this one here and then the foot one and then i've been playing a bit with this and it not always works so let's see if that works so i'm getting the position now and now i'm actually adding this position to the control so i get my pole vector control put it here and this will be executed in global space um yeah so it doesn't really work so what i've noticed that you need to check these initial ones um and then it kind of works and here if you play with the offset you might get like the correct position uh personally i felt like yeah you see the offset doesn't really work for some reason i tried to play with this it really worked as well um so uh i think what i've done is that i kind of kind of placed in the right place and change it is to initial yeah okay yeah so now it works so basically put these in the initial dc initial and offset is 50 and it kind of works i'm not quite sure how this is calculated to be honest and i would like to understand the happy better but for the moment let's keep it like that so this is a left leg proactive version um and then i can create my ik so back to the left leg here uh let's create an ik mode so ik is called ik tube on um at the moment i'll just stick to it so instead of having the fk working let's have the ik working uh i already know this because i've done it before but if you don't just kind of keep trying this to check what is the correct axis uh pole vector here you put the control here you can see you put the bones it's quite straightforward really uh so let up leg left leg oops and foot and then the actual ik control uh yeah so that's working ready what you can do is that you can change the stretch here you can enable stretch and then you see the the like kind of keeps going down for a little bit and then you can change this configuration to change it to five and then it will really stretch or i don't remember how was here but anyway i want to turn this off because our character really doesn't need to be stretched um yeah that's it that's an ik um setup so basically now i have ik mode and fk mode right so i need to have a control here to be the switch control so i'll go new control i'll change it to be no boolean so call it left leg switch which is my ik fk switch okay um so then what i need to do is i need to get a branch so from here actually i'm going to do a branch which is asking the condition of is this control on or off check it and then i'll say if it's true i want it to be ik mode if it's off i want to be fk mode so at the moment is you see it's darker here in white so at the moment the fk working so if i move this it won't work the fks are working and then if i switch this here to current or change it to ik then the ik is working and fks are not working so [Music] that's how i switch uh there is another thing that i like to do here which is i posted about it i'm sure there is there are other kind of clever ways of doing it but basically what i want to do is that if the ik mode is on oops switch if the ik mode is on i want the fk controls to kind of follow the bone so then when i switch the fk controllers will keep that position so this is what i'm doing here so in fk mode i want to create a a parrot constraint which they rename all these things now so it's it's really helpful so here is ik control follows bone so then which bone the ik contour needs to follow it's the this ankle one here which is left foot so the child oops no the parent is the left foot and the child is the ik control that means that when when i'm in fk mode hopefully yeah the ik follows it and then if i switch it means the ik is already in the correct position so now let's do the same if the ik moves the fk controls follow it uh for that one i literally just did the same parent constraint uh three times one for each of the controls so basically parent constrained and i have the child is the control and the parent is the bone just did that three times one for each control and each bone so i prefer kind of looking here and laptop like left leg here and left foot here then left leg in here and left foot in here so basically now if i am in ik mode you can see the fk follow and then if i switch to fk modes then the ik follows and then if i switch back the ik is back working uh so yeah that's how it works uh as i said probably there are tons of way to do this better but that's how i'm doing for now so fk controls follow bones and then last thing i've done is automatically hiding the controls so there is a new co note as well which is called height controls very simple i just move things a little bit so i would do this twice so basically i want to have my fk controls here so these are my fk controls and these are my ik controls so basically if it's false i want to run these and these and then execute so i want my fk controls to be active and i want my ik controls to be non-active right so fk i'm just seeing the fk here and then we just do the opposite the ik mode so if it's true i ran these ones before then i run this and i want the fk controls to be no active ik contours to be active let's see if it works so if i switch yeah ik working if i switch back fk working and hiding the controls as well so yeah that's the leg done so then if you had to do arms is exactly the same thing i would just duplicate everything here see how much we can reuse of it and that's when you could like start creating more juice because this whole thing here could be just one module that you give the inputs and it all kind of works with the names that you give so first of things is just do the controls so in this case there is a shoulder i will just keep as fk for the moment so add controls for selected left shoulder left arm left forearm left hand all placed nicely let's change this for a circle and possibly rotate why yeah okay so then we have our let's change this for left arm uh so same thing we just need to kind of replace things right so replace this array for this is the controls one so i put the ctrl series and fk then i put the bones i have my fk chain we go back to the height control state but basically then i just need to create my ik controls which will be one will be here let me create the no above selected let's go left shoulder this will be the left hand ik control duplicate to make the pole vector um let me place this pole vector here then so that's why it's good to like creating this sequence because i feel like in my head each of these sequences are one part of the body basically so i do legs then i do the arms which is this one exactly the same thing right copy and paste so here the bones are just said that we ignore the shoulder for now so arm forearm just elbow hand the control is power vector and let's see if this time it actually works where is that oh yeah it is because i need to change this for sphere okay cool so po vector is here in the middle of the world let's kind of take and untick these boxes until he magically moves to the right place so zeroed out here oops forgot to connect transform with transform that's i co yes so initial here so here now some reasons not of setting let me see what i've done before i honestly don't know oh see it looks like it looks like a little bug and then suddenly it kind of pops to the right place with those heroes yeah this will be weird but anyway we'll take that um yeah so then let's connect the eye casing here same thing support vector and i can controls and then arms arm forearm left hand there you go oops it's all flipped because we need to play with these things in here so let me just check what i've done before so it's running here and then 001 yeah that's it so now we have your ik hands uh one thing i've done is oh sorry one thing i've done is that i created the fk chain for all the fingers uh i'm not going to demonstrate it here but basically after you've done the these sessions i just created here an ik fk chain for the fingers as well um so same thing i create control follows the bone so here is the left hand okay will be the child of the hand left hand bone and then the opposite so the left arm control the forearm control left hand control will follow the bones so arm forearm left hand um and then final thing is just creating the switch so actually just duplicate this and call left arm switch uh this is not visible anyway so it doesn't really matter um yes so then i'm going to get control and then the boolean volume here i'll attach to this one and then we do the same with the fk controls array so this one is connecting here and this one is connect oh oops this one is connecting here then ik controls so basically now if i have a ik is moving if i switch to fk fk controls follow if i then rotate and switch again ik is following one thing that we can implement in here is making this automatically be like position it um or you can turn on and on if you want these to follow the positions or not um that's that's a kind of a secondary thing okay so now for the spine uh this is a very simple way of doing it um i got some inspiration from gabriella's uh youtube videos but i felt like i'd just like strip it down a little bit more and made it a simpler so basically you still have a switch you still have an fk chain and ik chain um sorry my dog is making a lot of noise huh come on don't you say hello hello so basically i'm not going through building it straight forward but like is is exactly the same setup we've done one fk one ik um the difference is that the fk i've only done with the three spine joints um and then i created four ik joints so one for the bottom one for the top and the two tangents let's say because in this case we are using a spline ik which gives this effect um so then for the spline okay here before we had just a normal yk so now we have a spline fk uh i need to go a bit deeper on this but basically it needs four points to work so i've added the four ik controls and then the form uh for bones you need to kind of watch for the axis here and then it's important that like here in the hierarchy is actually a little bit different so [Music] i have a body control which is not in the fk control it is as a second thing that happens so first i do the switch 5k fk okay then second i do apparent constrain from the hip joint to to follow the hips control um is this the hips fk control which leaves here under the hips ik control so it's a bit confusing so if you move the hips ik you're also moving the hips fk because it's under it so you're also moving the hips joint and then so then i have another control which is a body control which is not parented to any of the joints but because it's actually apparent of all the other controls if i move it then it kind of works as as we normally would expect these joints to this control to work as a main body one um so basically just i have a spine switch here which is the same thing and switch to the fk my fk controls are here i can just use the fk uh or i can just use the ik and then i have a body control which is just a shape and then under that i have the fk controls and then the top ik control and then i have another one so under the body i have the hip side k control which then has the hips fk control under it and then the two tangents i live here i'm still uh not happy with the way this works uh like body is moving way too much i feel like this is the structure of this character the way has hips and it goes straight up to a higher spine also is not the best we prefer to have kind of two similar joints in here and not having to play with the hips so not having to have the hips here as it requires the four points [Music] but yeah it's just room for improvement uh another thing that is important is that i change the day spine to be the first thing to be calculated so as soon as the forward so start calculates this five then i calculate the leg then i calculate the arm uh that's because if i don't do that then when i move the spine the arm is already calculated and it doesn't give me the effect of uh moving like this and the hands and feet stay in place i would move it and the things will kind of arms and feet will also move um so that's why i changed the order so another thing i've done is just adding an fk for the head and neck just so we again just so we have it in here but so create an array fk chain and then of course this can be much more complex in this case i'm just going easy and just making just having something that we can start working with i put that as part of the spine so as the last thing that is going to be calculated is this fk chain um so yeah now you have your whole body working and you also have oops and you don't have working uh so like in head neck and head ah i actually added them under the under these ones so these will follow them and then oops like it's locked oops i've done bones in place of contours and controls in the place of bones there you go so yeah then you have this and if you move the spine the head also moves with it uh as i said a lot of things that you could work to make this a bit more um well intelligent but at this point i would just live with it here you can also offset a little bit of the location yeah so you have your oops actually it's better if it's a cube i'll call cube box box and this will be a circle and rotate 90 degrees possibly change this to two as well perfect so last thing now is um colorizing the controls i've done this uh it's just a cool thing that you can do now in the setup event so to make it even easier what i've done is that selected all the controls create an array and then there is something called colorize i think colorize controls again this is in setup event so you can define what plane you want so here explaining that um what is on the left side is one color what is on the right side is another color but you could also change you know what is up and what is down um and this also changes the color for the middle so you have center controller at the moment so yellow and then left side green right side is right so let's say i want blue as the left side i could change this in here me just put her back in she's destroying my chair um yeah so that's it um i'm going to show as the last thing how to do the backwards of um i might just bring the wreath that i've used it before that i've done previously because it has both left and right sides cool so this is the rig i mentioned that i had uh really working uh it's exactly the same thing i've showed in the in the previously uh so the last thing is the backwards so what this thing does is that if you have an animation it will parent the bones you make the bones uh control the controls um so then you will position the controls where the bones are uh so basically to do that what you use is you use a set transform array uh and basically you give a transform and you give the items and then you that's it really so the items will be the controls so in this case the fk controls and then the transforms will come from the joints so basically all the joints and then you get transform array and then transforms and that will give you all the fk positions for all of these i've done in two different ways because you can see the list is quite long need to make sure the order is correct so 38 is right hand middle two thirty eight right hand on middle two uh as a as a as a control and bones sorry this is wrong actually because i i didn't finish the the right hand uh so let's get a better example so yeah number three spine to control number three spine to bone uh and then i've done another one just for the ik joint uh controls uh because they're much less but they're not in order i felt it was a bit easier to do that in two different ways um that's it if you have these then what you can do is that you can have a sequencer drag into the sequencer don't need a contrary now basically if your animation so that's animation just driven by the joint right so then if we come here and bake to contour rig and it gives you these options which at the moment i'm not changing anything and then you have all your controls following it so it's only 9k because that's the standard that we have as the the rig now as i said an improvement will be making these four vectors follow the animation so though you so then you don't get this crazy flips but here also if you switch to fk let's delete these keyframes and make them all fk it would still work because in our backwards so we basically put fks and ik controls so they're all following the position of the bones yeah that's the end of it i hope it was helpful uh it was much longer than i thought but yeah leave me any comments or uh yeah just let me know if if if it was helpful or if there's something it could be improved or something you would do differently yeah thank you
Info
Channel: Kamila Bianchi
Views: 15,975
Rating: undefined out of 5
Keywords:
Id: zdT5CglN4oY
Channel Id: undefined
Length: 45min 31sec (2731 seconds)
Published: Mon Apr 11 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.