Advanced Foot Rig Made Easy, Pivot and Roll || Blender 2.92

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
in this one we'll be going over how to make this foot rig right here it can pivot from the heel the center of the foot the toe and can roll from side to side and i made it so it can be controlled with just a few bones i'm going to talk about some concepts before walking through how i made this but if you want to skip to that part i put time stamps in the description for the concepts we'll start with basic parent-child relationships then we'll move on to bone constraints where i'll talk about the ik and copy rotation constraints how they work and why you would choose one over the other we'll also talk about the limit rotation constraint and the importance of bone axis after that i'll walk through some different ways to approach a foot rig and i'll end with how i built this one from the example so here i am in blender i'm using 2.92 for this and i just have a three bone chain right here and i'm going to use this as an example when we talk about basic parent child relationships when it comes to bones so when you select a bone right now i'm in pose mode when you select a bone and you rotate it it rotates from the head which is this wider part right here the other end is called the tail this bone right here at the bottom is the highest parent in the chain so it's a parent of this one right here and this is a parent of this bone right here that would make these two bones children of this bone right here so if i move this bone around you can see that its children follow they will copy the location the rotation and the scale like that and when i move this one you can see that it's parent does not follow okay you can rotate it and its children will follow you can scale it too but because it's connected it won't even let you change the location so if you don't want the child to match its parents rotation there is an option for that so i have this child bone selected and if you go over to bone properties right here under relations there's this box right here that says inherit rotation and when you turn that off you can see that when i rotate the parent this one is not rotating a lot of people suggest that you don't turn this off it can lead to some problems later down the road like in my last video when i went to parent my entire skeleton to a root bone that would control all of the other bones normally something like that would be useful for making your character jump or rotating your character sideways to do something like a push-up when i turned this off it uh gave me a few problems i'd say if you're trying to do something quick and you know that it's not going to lead you into problems it's completely fine to leave this off but in this video we're going to leave it on the whole time and i'll talk about how to get around that by using other options so right here we have another basic parent-child relationship except you can see that these two are not connected and when i select the parent right here you can see that there's this relationship line it's like a dotted line right here and this is basically the same as this over here where the child will follow the parent even if there's that gap right there except it allows you to actually change the location of your child which can be pretty helpful and quickly i'd just like to mention that there are some viewport display options so if you click this tab right here object data properties under viewport display you have some options right here where you can change the shape of your bones you can also turn on the names if you want to see the names the axes and you can also make these in front which will just make them display in the front of your mesh for this i'm just going to leave on the names and the axes right here and our next example is going to be about ik or inverse kinematics and the way i understand ik is it's kind of like a way to get a child bone to control its parents and to start this example out we'll just go into edit mode and i'm just going to extrude a bone out right here like that and this is going to be our controller bone and i'm just going to name this ik and you're also going to want to unparent this or else you'll get some glitches so back in pose mode i'm going to set up our ik constraint by selecting this controller bone right here and then you want to select the first in the chain which is going to be this bone right here and you can hit shift i to add the constraint so now that we have our ik constraints set up we can control this chain with the controller right here and you should be able to do this if it's not working for you you might have to go into edit mode and just move these bones out slightly to bend in the direction that you want sometimes a completely straight chain will give you errors or if it's just pointing in the wrong direction so yeah you should be able to control all of these parent bones with this child bone right here and if you click on that yellow bone and you make sure you are in bone constraint properties you can see all of these options right here and i guess first i will set up a poll target a poll target will let you decide which way this is bending toward so we'll set that up really quickly back in edit mode i'm just going to duplicate this bone right here and i'm just gonna put it right here and i'll just rename it target and then we can select this yellow bone you just want to select the name of your armature which is test rig and the bone i named target so now when we bend this you'll see it's not really pointing in the right direction if that happens you just want to change the pole angle until it's pointing in the right direction so in this case we'll just change it to 90 and it should work and now this will let us you know decide which way we want this chain to be bending okay let's talk a little more about chain length so right now this is set to zero and basically what that means is it's looking at this child bone right here and it's just going to look at the chain of its parents until that chain ends and try to control all of them if we set that to a different number say like three and then we use the ik controller you can see that it's only affecting these three bones okay you could change this to two and then it's only affecting these two bones and if you have this set to one right here basically it's just going to control this one single bone right here the yellow one and it's going to point directly at the head of the controller bone and this seems like it would be something that's not useful but it is actually really useful and we're going to use it a lot when it comes to making our foot rig um and it becomes more apparent when we do this to multiple bones so back in edit mode i'm going to create a second ik controller right here and just make sure you unparent that with alt p now back in pose mode i'm going to set up another ik constraint with shift i and right now we're just going to leave this chain length set to zero the real magic happens when you parent this bone to this bone right here so we can do that in edit mode with ctrl p so now when we move this bottom bone this one should follow like that and this allows us to have multiple pivot points this is something that becomes more apparent when you have multiple bones like this so i'm quickly just going to add a third ik controller and trust me when i say this gets more interesting just quickly add another one unparent it we're going to parent this bone to this one right here we're just creating a chain and then we're going to set up another ik constraint like that and make sure this second one right here has a chain length of one so these two just have a chain length of one right now and when we move the highest in the chain it's pivoting from right here when we move this one it's pivoting from right here and this is actually starting to become more like a foot rig at this point and it becomes more apparent when we uh rotate these controller bones sideways and kind of put it up right here so basically this one is the highest parent in the chain and if we rotate that you can see it's kind of a pivoting from what would be like the toe of the foot and this would be like the middle of the foot right there using this technique is kind of just a way to give you multiple pivot points and the longer you make this chain um the more pivot points you can you can have basically but one downside is that you can't really spin these bones around what i mean by by that is if i select this bone right here and i hit r to rotate and hit y twice you can see it's spinning you can't really control these bones well enough to do that so one way to get around that is with a different constraint which is the copy rotation constraint so i'll set that up really quickly with this bone we're going to make it copy the rotation of this bone right here so select this bone and over under bone constraints you can just add copy rotation and then you want to select your armature which again is test rig set the bone which this one is called zero zero nine so we can select that and now when we move this bone you can see that this one is copying it exactly right there but it's only the rotation so we can move this around and right now if we select this bone and we try to rotate it it's not going to do anything and that's because we have mix right here set to replace we could set this to something else like after original and it will allow us to rotate it and allow us to move it from here also but you can see it went kind of wonky when we changed it and that's because we have this set to world space when it's set to world space it's going to try to match this exactly the same exact orientation but we can change this to local space to kind of get around that and we can also set it to after original um so now we can you know it's copying this bone but we can also change this individually also but you might be wondering why would we want to do this it basically just has the same functionality as before well this becomes more useful when bones have different orientation but you still want to control them so i can just select this bone shift select this bone right here and i'm just going to hit f3 and copy constraints to selected bones like that so now this bone has the same constraints okay and you can see when i rotate this bone this one is rotating also but it's not copying it exactly it's not the same exact orientation and that can be really useful sometimes so that's something that is nice about having this set to local space you can see if i set it to world space and then change this to replace it's going to copy it exactly and it's a little easier to understand how local space works when you select your bone right here your controller bone and you go to rotate it you can see there's this little dialog up here that's telling you your rotation and if you hit x that'll constrain it to the x-axis you can see it's saying along global x if you hit x again it'll say on local x so this is like the local axis it's basically looking at these lines right here on the bones that i turned on uh over here under viewport display like the global rotation and global access is when you look at this little widget thing up here um you can see it's not exactly the same as this each bone can have its own local rotation so say for instance i rotate this and hit x twice so it's along the local x i can rotate this like 10 degrees along the local x and this is rotating 10 degrees on its local x-axis which just happens to be you know in the same direction but it's not copying the orientation exactly it's moving from its original spot and when i say original spot i just mean that whatever spot you set it to in edit mode should be its original spot and you can always go back to your original rotation by selecting your bone and hitting alt r you can you know reset your location and scale 2 with alt g and s like that so in this example you can see that when i rotate the controller this goes in the opposite direction okay and the reason for that is because of bone roll so if we go into edit mode and we hit n and make sure you're under item right here we have this option called bone roll and when you move that you can see it's changing you know it's spinning the bone around and it's changing these axes right here and if you look at these two bones you can see that the z is kind of flipped in the opposite direction the same thing with the x so this one has a roll of zero and this one has a roll of 180. so if you wanted them to rotate the same direction you just have to make sure in edit mode that these axes are pointing in the same direction so i can just select our bone and change this to zero and if you compare these now you can see that they're all pointing in the same direction and back in pose mode it's working the way we would expect you could also use this to your advantage if you want it to rotate in the opposite direction but we also do have under the constraints a way to invert it to right here if you for some reason wanted it to rotate the opposite way without changing the roll all right one other option we have is the ability to limit the rotation so on this bone again i'll add another constraint limit rotation right here and let's say we want to limit it on the x rotation so i can do that and also you want to set this to local space also you can see when i try to rotate the parent bone that this one isn't moving at all and that's because this is just locked at zero say for instance i wanted this bone right here to follow its controller bone all the way down to the ground but not go past it right here basically what you want to do is pay attention to these numbers up here you can see that the ground would be right around 90 degrees so i can just take this and set the max to 90 degrees like that and now when i move this it will follow it until it gets to that point and it won't go any further and the same thing in the opposite direction it won't go past 0 degrees right there if we wanted it to go to the ground also once again you just have to look at the rotation up here and that would just be negative 90. so we can select this and change it to the minimum to negative 90 like that and now it should stop at the ground when you rotate it in both directions you also have a few other options in here so for like the copy rotation you can make it so that it only copies the rotation on certain axes say if you don't want it to even pay attention to the y and the z you can make it so that when you rotate this on the y this one doesn't follow and it's only on the x like that so in this next example we're going to make a foot rig that's only using ik constraints and we're not going to use any copy rotation or have any master controller bones or anything like that and this is a little more limited and would be better for a foot rig that doesn't roll and this rig is all just deforming bones that i have set up and i already have it set up so that it's like weight painted properly so you know these are actually deforming and whatnot and all of these bones deform the mesh except for this bone right here which is just going to be like a hip bone and is the highest parent in the chain okay so to get started i'll just go into edit mode and we're going to start off with our ik controller which i'm just going to select this uh this joint right here and extrude it outward like that once again make sure you unparent that and i'm just going to name it ik leg like that and then back in pose mode we can shift select this bone right here to add our ik constraint with shift i and we can just set the chain length to two so that it's just controlling these two bones right here and isn't controlling the hip right there you can see one problem with this is that when we move the hip down the foot uh is still moving if you were just trying to fix it really quickly you can turn off inherit rotation like that and you can see that solves the problem but like i said we're not going to do that in this video and there are other ways of getting around it but before i do that i'm going to quickly set up a poll target and so i'll just extrude from the knee outward like that unparent it and pull it out a little like here and i'll just rename that target and then we can set the pole target by clicking on this yellow bone then under bone constraints we can just select our armature which is called armature and then the bone is called target like that and you just might have to change the pole angle to get it to match so this is 90 and now we can change the direction of the knee like that so to stop the foot from going through the floor we're going to use a single length ik chain um so we just need to set up another ik controller and we're going to set that up where we want the foot to pivot which is right here okay so back in edit mode i'm just going to extrude up from that joint make sure you unparent it and then back in pose mode we're going to set up our ik constraint with shift i like that just make sure you set the chain length to one right there so now when we move this that bone is going to point directly at it and back in edit mode what we want to do is make sure that this first ik controller is parented to this bone right here like that with keep offset so now when we move this this bone right here is going to follow and this is how we're going to control our foot now and when we rotate it it'll also pivot from this point right here okay you can see when i pivot the foot right here the toe is going through the ground so we're basically just going to do the same exact thing we just did except with this bone right here so back in edit mode you can just extrude up from the toe like that unparent it make sure that this bone is parented to the toe bone now so now we're just we just have a chain going so this one is a child of this one this one is a child of this one this is the highest in the chain now and then we can just select these two bones and shift i and make sure that's a chain length of one okay so now that this is the highest in the chain this is the one that we will use for moving the foot around and we can also rotate it to pivot from the toe because this is a child of this bone when we move this one around this is not going to follow it so we can pivot it like that and the toe will not go through the floor like that so when you're setting up a chain like we're doing right here it's important to always use the highest parent in the chain to move your foot around you can see if i move this bone right here the toe is kind of going crazy and if i move this bone right here we just kind of lose control of our foot so way you can avoid moving these other bones is just by hitting n to open up the side panel and when you select one of those bones you can see under item we have these locks right here you can just lock these and that will make it so you can't move it locally when you are trying to move it over here see i hit g to try to move it and it's just rotating now so it won't move you can do the same thing for this one like that and you can only move them from their parents now like that so we're just going to add one more bone and that's going to be our heel bone right here so back in edit mode i'm just going to select this bone right here and i'm going to rotate it 90 degrees negative 90 degrees like that you just want to place the head where you want the heel to pivot from so i'll just move it down over here and just line it up right about there that should be fine then you want to make sure that the toe bone is parented to the heel bone right here with ctrl p so now the heel bone is the highest in the chain and when we move that that's going to be used to move the foot so we don't want to use this one to move the foot anymore it doesn't really mess things up other than making it so that our heel is pivoting at the wrong spot so we can just make it so we can't move that either right there and this is pretty much where we finish with this type of rig so now you can pivot this from the heel right there you can pivot it from the toe like that from the middle of the foot right there and this one is basically just used for the initial uh like location basically but we're not using it anymore so if you wanted to clean this up you could put some of these bones on different layers to make some of them visible and other ones not you can view all of those layers by going over to object data properties this little running person right here and we have layers at the top so you can just select bones you want to move to a different layer i'll take all the deforming bones right here and just move those to this layer right here so you can do that by selecting those and hitting m and then just selecting that layer right there and then if you want to see those you can just click it over here and if you want to see both layers at the same time you can shift-click like that the downside of using this technique without any copy rotation constraints is that you can't roll your foot and make it pivot from the sides right here very easily so you know if i was to select this bone and try to rotate it on the local y um you can see it's not really doing what we want the foot is just kind of sliding around so for our next example we'll be adding a lot more copy rotation constraints so we can actually get our foot to make that motion that we want and to get that started i'm just going to go through in edit mode and just delete all of the bones we created and i'm just going to leave our target bone for now because that's going to be the same in both of the rigs and you can see these bones uh still have some color to them i am going to go through and just delete those constraints okay so for our final rig that allows us to rotate the foot properly we're just going to get started by going into edit mode and i'm also going to make sure we're using x-ray so we can see through the bones like that and i'm going to add another ik controller for the entire leg but we're going to do it in a slightly different way where i want the ik bone to match the direction of this bone right here exactly so i'm just going to duplicate this bone and then you want to unparent it with alt p and you can also make it a little easier to see by changing the length you can do that up here like that so i'll just make it a little smaller and i'll just rename that ik leg so we have this and back in pose mode we can set this up just like we did before by selecting this bone and then shift i making sure our chain is set to two and we'll set up the poll target 2 and that's the same we just have it called target and we can change this to 90 and it should work fine you know just like before we can control our leg like this but we're going to approach um the foot going through the floor in a slightly different way we're going to use a copy rotation for this so what i want is for this bone right here to copy the rotation of this bone so just select this foot bone right here and add a constraint of copy rotation like that then we can select the armature and select this bone right here which is ik dot leg like that so now when we move this bone you can see that our foot bone is copying it exactly because they are oriented exactly the same way that means we can even just leave this set to world space and it should work fine so now when we move the hip bone down uh our foot is staying on the ground and we can use this to rotate our foot whatever way we want so next we'll create the pivot bone right here just like we did before except i am going to do it in a slightly different way i think it's good practice to kind of keep bones oriented in the same direction so i'm going to duplicate this bone again and unparent it and we can flip the direction by right clicking on it and choosing switch direction like that and once again i'll change the length just so it's easier to see and we can rename it something if we want it to be more visible i'll just name it pivot foot or something so just like in the other example we're going to parent this ik bone to the pivot bone right here with keep offset and when we go back into pose mode we can just pivot from there now because when we move this one around it's also moving this bone right here and because we're using the copy rotation for this we are actually starting to get more of that rolling motion and this will just get better uh the further we go into this rig so to fix our toe going through the floor we're going to do the same exact thing we did in the other rig so i'll go back into edit mode and i'm just going to duplicate this bone right here unparent it like that and we're going to flip it so now this bone should pivot from the tip right here and i can just rename this pivot toe or something like that and once again we're just going to parent this pivot to this one right here with ctrl p so you can see now we're getting a chain going this one is parented to this one and this one is parented to this one and none of our controller bones are parented to the deforming bones in our rig right now so back in pose mode we can set up that ik constraint by selecting that pivot and then the toe bone right here shift i and making sure the chain length is set to one and that should make it now so that when we rotate right here the toe doesn't go through the floor and if you want to move the foot you just want to make sure you're selecting the highest parents in the chain like that so next we'll add the heel bone the heel pivot so back in edit mode we can just duplicate this and switch direction like that and you just want to drag this to where you want the heel to pivot from and i'll just rename it pivot heel just make sure you parent the toe pivot to the heel so now we can uh pivot from the heel the toe the center of the foot like that and because we have the copy rotation we should be able to roll the foot now like that but you can see it's rolling kind of on this single point right here as if you're like walking on a tightrope so if we don't want to do that and we want it to actually pivot from the edges of the foot right there we have to add two more bones so back in edit mode i'm just going to select our heel bone and i'm going to place two bones on the side of the foot right here and what i'm going to do is place the head of this bone right here where the foot bends so you can see this x line right here we're just going to line it up with that because that's where our foot bends like that and we'll just duplicate it to the other side right there and you can check that from the front also to make sure that it's lined up the way you want it that seems fine and if you want to rename these you can too i'll just rename this one roll in because it's the inside of our foot and this one will be roll out and so right here we need to talk a little about parent child relationship and which order we want to go in i want this to work so that when i move the heel i want the rolling controllers to follow so i have to make sure that the rolling controllers are parented to the heel so i'll parent the toe to the roll in like this and then i'll parent this one to the other roll bone and you just want to parent this last one to the heel okay so now when we go back into pose mode you can see that the heel is still the top of the chain and when we rotate it like this those roll bones follow they won't follow when you rotate it on the toe like this but also you don't need to roll the foot if the toe is up like that so it shouldn't be too much of a problem but now that we have these roll bones and they're parented in the correct order we should be able to roll our foot like that and you have a separate bone for each side like that okay so these are all the bones that give us the functionality that we need but it's getting a little messy you can see there are kind of bones everywhere so i'm just going to go through and place some on different layers real quick so i'm just going to go through select all of the deforming bones that we're not going to actually be um using for any control i'm just going to take all of those and move those to the third layer right here and if we take a look at our first layer we still have our hip bone and our uh pole target right here and those can stay there that's fine for now so for the next part we're going to create a controller bone that will take care of a lot of the functionality of these bones for us so we don't have to you know select each bone individually i like to put this at the heel so in edit mode you can just duplicate the heel and i'll just make this bigger by moving the length up like that and i'm just going to rename it control foot so what i want to happen is in pose mode when i rotate this on the x-axis i want the heel to follow the rotation so we're going to add a copy rotation to this heel bone right here and you want to make sure that you select the right armature and we know that we wanted to copy the control foot bone right there so now when we rotate this you can see that the heel is following properly but i'd like it to be set up so that the heel can't go through the floor like that so i'm also going to add a limit rotation and i'm also going to change both of these to local space and i'll change the mix to after original just so that if we want to we can control our heel independently so i want this to be limited on so i want our bone to be limited on the x-axis because you can see when we rotate this on the local x-axis it's giving us the you know the rotation that we want so we can just limit the x right here and we can once again hit r and x twice we can check this number up here you can see we want it to go in the positive and not into the negative so i can make the maximum something positive like 45 and we can leave the minimum set to zero because we don't want it to go into the negative at all so now if i rotate this on the x you can see it's not going through the ground but it will allow us to go up like that so we can you know tap our foot we also want to make sure that our limit rotation is set to local space and so now we want this controller bone when it goes into the negative to control this bone right here and you can see when we rotate that it's also rotating in the negative in the direction we want we don't really want it to go into the positive so we can just copy our constraints over i'm just going to hide this really quickly and uh copy our constraint select these two f3 and search copy constraints to selected bones so now this one should have the constraint that we want but we're going to have to change some things so that you know stuff like this doesn't happen we can just select this bone and we know that we don't want it going into the positive so we can turn the max to zero and we want it going into the negative so i'll change the minimum to something like negative 45 and this is the kind of motion we have now so basically when the heel stops moving this one starts moving like that and i also want to be able to rotate the controller bone like this to control these roll bones but you can see right now if i rotate this on the local y it's rotating our heel still so we can limit that by clicking our heel and making it so that it doesn't copy the y rotation like that so when we do that we're not getting that problem right here but we are still getting it here so we can change that also and now when we do that nothing happens which is actually good because we only want this local y rotation to affect these bones right here so i'm just gonna select these two bones and then this one right here to copy the constraints over and like i said before i want these ones to only work on the y axis so on the copy rotation i'm just going to get rid of these two and make it so that it's only working on the y-axis for both of those bones so you can see it's rolling but both of them are rolling at the same time and it's giving us some weird problems so instead of limiting the x we can limit on the y for both of these and i'll just look in the front and we can check the numbers up here when we rotate it so i'm rotating it on the local y axis and you can see when i rotate it this way the numbers up here are going into the positive like that and so i want this one to match that rotation so i'll make sure that the maximum is going into the positive and the minimum is stuck at zero and i think for the other one we'll be doing the opposite so the maximum will stay at zero and the minimum will be negative 45. you can see it's working correctly now oh yeah one other thing that i forgot to mention is uh when you rotate your foot if you want to rotate your foot this way you have to select this pivot bone right here and make sure that it's not copying the z rotation and then it should work fine so the only thing that this controller bone doesn't do that i want it to do is i want it to also control the location of the foot so to do that i can just add a copy location to this bone right here the heel bone so copy location and i'll just move that to the top and i just want to select the controller bone in here so armature and then you can search control to get that control dot foot bone and you can leave this in the world space if you want to because it's going to be matching the location exactly like that you would think that it might be easier to just parent this heel bone to the controller bone but when you do that it also inherits the rotation and all that you get a little more control when you use a copy rotation and a copy location so that you can limit it on only some axes like that so now we can put on our first layer only the bones we're going to be using for uh controlling this rig right here so i can take this bone and the toe bone and move those to the first layer right here so the way we have this set up now will allow you to um you know move this bone for the hip this will control where your knee is pointing this foot controller will control the heel pivoting and the middle of the foot pivoting right there it will also control you know it rolling like that on the sides and the rolling should work when the heel is pointed out like this you just want to rotate it on the local y when you do that and you should also be able to roll the foot when you're up on the toe like this too and if you want to pivot from the toe you just have this separate bone to do that like this and if you wanted to roll the foot as if it was on a tightrope you could still do that but instead of using this controller you would use uh the heel bone right here like that all right that's it for this one if you have any rigging tips you'd like to add leave a comment below and if you'd like to support me in growing my channel the best way to do that is on gumroad i have some free stuff over there like a pack of node groups as well as some paid products like animated lightning models barbed wire and a few filters like the ascii generator paint filter and glitch effect i hope you learned something from this video thanks for watching and have a good one
Info
Channel: Joey Carlino
Views: 7,229
Rating: undefined out of 5
Keywords: blender, cg, cgi, blender 2.9, rigging, armature
Id: BnUGyq5i1Eg
Channel Id: undefined
Length: 34min 43sec (2083 seconds)
Published: Tue May 25 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.