#RiggingInMaya | Part 07 | Control Creation

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
the model now deforms with the skeleton which is great because it will allow us to visualize how the controls are affecting the joints as we build the control rig ideally we don't want the animator to be able to touch this skeleton though instead we need a layer of controls on top of this which will drive the joints with that said we also want to avoid driving this skeleton directly or adding other nodes into its hierarchy as this will cause issues when it comes to export to the unreal engine so we want to leave this as it is really quick question for you now how would you like to help support the future of this channel and keep these videos free well there are a few options one would be to simply treat me to a coffee at my coffee page as a quick and easy thank you you could also grab something from the ant cgi store or one of my other online stores like cubebrush and gumroad this is where you will also find the course files that go with this course so you can download them and follow along however for as little as 99p a month you could join the ant cgi club there are a few ways you can join you could head over to my patreon or coffee pages or or alternatively simply hit that join button below this video in short the more support i get the more time i can dedicate to creating more high quality content just for you to get more information on how you can help follow the link on the screen or in the description below okay now that's out of the way let's get on with the video so what options are available to us with regards to controls the most basic option available is to simply use selection handles to show these just select a joint and go to display transform display selection handles you can also show them through the attribute editor just go down to the display tab and check display handle here now you may not have noticed it appear because it's in the same place as the joint which makes it difficult to see we can however move the handle into a more visible place switch to component mode either using the button or just press f8 and select the handle option here this lets you select and move the handle so it's easier to see and select so we can use that now to select the joint i realize i said at the start that we don't want to edit this skeleton directly this is just a demonstration but you may have other joints driving this skeleton which you could use the display handles on it's good to point out though that you can use display handles on other nodes not just joints now there are a few problems when it comes to display handles firstly if i decide i don't want to show the joints the handles become hidden too the same happens if i hide the joints manually so they are pretty useless for us at this stage another issue is when you have a lot of them on screen at once this can make animation confusing because the animator doesn't know which handle controls which joint so that's selection handles now there may be times when you need floating labels as part of your rig this could be just to highlight certain controls or you could simply use them to help an animator work out how to use the rig sort of like a help system now the first option would be to use annotations these create floating text with an arrow pointing to a specific node to create one simply go to create annotation and then give it a name we can then use the locator to reposition it and we can also move the text to to change the position of the opposite end if you need to change the actual text you can just do this in the attribute editor here now from a skeleton point of view there is another option that could help while rigging or more specifically exporting go to skeleton joint labeling with this window we can assign show and hide each joint's designated label go to show all labels we can now see them in red they are red because we haven't assigned any labels yet we can easily change them with the add joints label menu let's call this head so there you see it's assigned head to that joint you can also update the labels in the attribute editor you see here we can also specify a side let's update this to left elbow so there that's labeled now let's update the shoulder what we can also do with the menu is assign a side to a hierarchy so if we select label left you see it updates all the children down the arm too also if there isn't a predefined label available you can use the other option which allows you to use a custom name so let's call this twist now these do suffer from the same issues as selection handles in that when we hide the joints they go too but these can be useful if you're planning on using motion capture data for example or for when you're mirroring skin weights in that case you can use the option to match by label for more accuracy another option for creating labels is to use mayer's built-in text creation tool all we do is go to create type this will give us a default word to start working with if you look in the attribute editor at the type node you can see all the options here we can select and change the text here and then all we need to do is click the create curves from type button here we can now delete the models and we are left with the letters these are great for labeling parts of the rig as you will see later plus i also like to use this option to add a version number to each rig this is essential for tracking different versions when working on a project especially as a rig evolves and grows this just means that you can make sure the animator is using the correct version and if they find bugs they can refer to the version they are currently using one of the more common ways to control a rig is by using nurbs curves and you could use something as simple as a circle this can then be attached to the joint so when you move this the joint follows this gets around the issue of controls being hidden when the joints are because these are a separate element so this ensures the base skeleton can be tucked away and not touched by the animator you don't have to stick with a circle though if you right click on it and select control vertex you can edit these points to reshape it to make it more unique this way you can have different controls for each area of the rig making life so much easier for the animator what we can do is also change its color if we open the attribute editor and go to the display tab we can enable the drawing overrides with these we can change how you can interact with the control and how it looks if we change the display type to reference you see the control is now black this locks it so you can't select it which is useful for icons or labels which are more for information than actual control down here we can update the color when set to index we can choose a predefined colour from the top slider here so it's now green if you want more of a custom colour you can change this to rgb you can now choose a colour from the bottom slider let's go with maybe more of an olive colour so that's a basic control using just a nurbs circle but it can be quite versatile there are more advanced options though available if you want a more custom control you can use the curve tools with the cv curve tool we need to place four points and then a curve is created between them like this it looks a little rough but we can press three to smooth it out the edit point curve tool is probably the one i use the most let's just move this over when we set the curve degree to 1 linear we can create more angular shapes so let's hold x to snap to the grid and create a simple arrow there we go nice and easy and we can just press enter to finish creating that curve alternatively you can choose another option like three cubic to make softer curves you see as i place the points the curve is created but its shape is much softer with all these curves you can still go in and adjust them if needed with the pencil curve tool you can simply draw any shape you want and the bezier curve tool gives you more control over the angles at each point if we create a basic angular shape we can go in and adjust the tangents just like this so those are the main curve tools you can see how they can allow you to create whatever shapes you need for your controls alternatively you can also use a nurbs sphere which is more commonly used in facial rigs but can act like a more solid selection handle when building controls you may want them to be constructed out of a number of different curves but still just be one control like this foot control for example we have the main foot but there are also the separate toes ideally this would need to be a single control unless of course you are needing to also animate each tour separately we could just parent the toes to the foot so now they all move together the problem is the animator can still select the toes so ideally we want them all combined into a single control so let's undo that first we need to expose each curve's shape nodes here we are so we have the transform nodes above and below them are the shape nodes what we need to do is move the shape nodes so they are instead parented to the main foot controls transform node now looking at things we could just select it and move it up right well no if you try this it moves the transform too and all we want is a shape node so how do we separate it and move it well i'm afraid it's time for a bit more mel script but don't worry this is a nice easy piece of code all we need to do is select the shape node and then the transform we want to move it to and then we use this parent minus r minus s the minus r flag will keep the shape node where it is in virtual space whereas minus s specifies that we are working with a shape node if i select that and press enter to run it the shape node moves and leaves the transform behind let's do the big toe next and the other toes if you find that when you're doing this the curve moves away from its original position try freezing the transforms before you re-parent the shape node okay good they are all part of a single control now it doesn't matter where we select it it now selects it as if it's a single curve all we need to do next is delete these transform nodes and look you can see all the shape nodes listed here in the channel box as well as moving shape nodes under other curves you can also do the same with other nodes let's create another circle and make it bigger and freezer transforms and also delete the history let's say we are going to use this as a control for the shoulder joint first we need to move it into position so let's use the match transformations tool to do that this will move the circle to the joint matching its position and orientation there we go okay so what we would traditionally do is use a parent constraint which will constrain the joint to the control so now the circle controls the joint perfect the problem is that constraints can be unpredictable depending on how they are used and ideally you want the rig to use as few nodes as possible let's undo that so what we can do is move the circle's shape node again just like we did when we were working with the foot control but this time move it to the joint's transform node show the shapes in the outliner and let's bring back the script editor all we are going to do this time is select the shape node and then the upper arm joint and run the code so now we can select the curve and it will select the joint it's basically selecting the joint for us much like with the selection handle we can delete the transform node now and here is the shape node if we disable the shapes now it vanishes and you can see that the joint icon has now changed to a curve icon the beauty of this setup is that we can hide the joints and the control is still visible unfortunately it does also hide when the joint is manually hidden but you can get around this if you want the controls visible and the joints hidden simply set the joint's drawer style to none this is a nice way to set up control arms or legs for example where you have another layer of joints controlling the base skeleton what i wouldn't recommend is using these to control the base skeleton directly as it can cause issues when exporting to unreal so here we have a basic fk control setup so the controls are parented to each other which gives us that forward kinematics movement this just means the rotations are evaluated from the shoulder down to the wrist so forward kinematics with ik which is inverse kinematics the rotations are evaluated in reverse so from the wrist back up to the shoulder so this allows you to do things in animation where you can plant the wrist or lock where the hands are so these fk controls will eventually drive the control arm which will then move the base skeleton even though these are in the correct position and orientated the right way we still have a problem each control has values on the translation and rotation attributes but we need them to be zero as a basic rule all your controls should be set to zero when passing it onto an animator this just makes for a cleaner more user-friendly rig now we could just freeze the transforms this fixes the translations but the rotations have now reset meaning the orientations have changed whereas we need them to stay the same as the joint what we would traditionally do in this instance is use an offset group let's press ctrl and g to create an empty group and call it upper arm offset we should add the l in two just so we can see that it's for the left side and let's use the match transformations tool again to snap it to the upper arm joint this will move it so it's positioned and orientated correctly just like we did with our control there it is and it has all the values just like our control if i now parent the control to the group you will see that the values are now zero this is because they have been offset to the group above it they are zero because the control is in the same position and orientation as the group using this offset group has freed up the attributes for us which will make the animators very happy all we need to do now is create two more for the other controls let's rename them and match their transforms to the lower arm and hand joints now let's organize a hierarchy so these groups are parented to the controls above them and then the controls parented to them so there we go all nice and clean because the offset values have been moved to the groups above them we can now also still animate too the problem is if you need to have offset groups on most of your controls your rigs are going to start to get a bit blurted just like this you can see that most of this rig is offset groups let's just filter them okay so yeah there's quite a lot thankfully in may 2020 autodesk introduced a whole suite of matrix nodes and tools and with them came the ability to offset these transforms without the need for any groups now don't worry i'm going to talk more about these new matrix nodes throughout the rest of the course so let's go back okay so here we have the controls with the values again let's look at the hand first all we need to do is look in the attribute editor here we have a new transform offset parent matrix tab as mentioned i will talk about this more in future videos but all we need to do is copy the values above down here so now the control has moved away but what we have done is add the translate y value twice all we need to do is zero it out up here and that moves back because the offset is now stored here instead so we can use this instead of an offset group let's update the lower arm next and just copy these down to the transform offset parent matrix tab so that's moved again so let's zero out the main attributes to pull it back there we go finally the upper arm control and there we go nice and easy all the values are nice and clean ready to be animated and our rig is also much lighter without all those extra offset groups okay so now you have a good understanding of how controls can be built and applied to the rig feel free to start building your own i'm going to skip ahead now and show you some controls i have already built for this project now don't worry i have also supplied a file with the controls in it too so feel free to use them on this and future projects it's always a good idea to have a library of controls ready and available to use when you need them so here is the creature with the controls you should be aiming for i've built them and positioned them so they are ready to be rigged the first control we have is a root control this will move the whole character so you can reposition him in the scene the scene direction control is more of a static icon which shows the forward direction the root control allows you to move the root joint if needed there are a series of torso controls these are mostly created by adjusting a nurbs circle i have left the values on some of these controls at this stage because we may need them later as we start to build the systems we have a global eye control so we can make the creature look around and individual eye controls too i did also include eyelid controls but we will see if we will use them in this rig i'm not sure the topology will hold up to the eyes closing but we will come back and look at those later here are the left arm controls the fk controls are set up just as i showed you previously using the offset parent matrix attributes instead of offset groups the same with the fingers because these are just basic fk controls too and all the controls are orientated to match each joint and here we have the leg controls which are pretty much the same as the arm we have the same fk set up on the leg and a similar setup on the toes as we have on the fingers we also have these global controls here for the arm and the leg the letters will change depending on whether you are animating using ik or fk so these won't all be visible at the same time but we will come to those later in the course the same with the main controls the fk controls won't be seen when the animator is using ik and vice versa feel free to check out the source file so you can see how these controls are positioned so that's the controls covered and we have them all built and ready to go we do have some more preparation work though before we start building the systems which will drive the base skeleton in the next video we will look at creating the scene hierarchy and adding extra attributes which will give us more control over our rig okay that's another video over thanks for watching right to the end and make sure you also check out some of the other free videos and courses that i have available you can find links to all these on the screen now and in the description below remember to help support future content and keep these videos free visit the ant cgi store or join the ant cgi club alternatively if you would just like to show your appreciation for these videos why not treat me to a coffee at my coffee page again the link is on the screen now and in the description below thanks again for watching this is ant cgi signing off and i will see you on the next one you
Info
Channel: antCGi
Views: 1,129
Rating: undefined out of 5
Keywords: rigging, maya, autodesk, maya3d, rigging in maya, utility nodes, rig, node editor, nodes, Build Controls, 2019, maya 2019, Spine, Head, Pelvis, Waist, Abdomen, Sternum, Shoulders, gamedev, game art, game development, game rig, 2022, maya 2022, selection handles, annotations, joint labels, offsetParentMatrix, curves, nurbs, cv, control icon, control curve, combine curves, text, type, offset groups, create controls
Id: thW196bc_LE
Channel Id: undefined
Length: 28min 27sec (1707 seconds)
Published: Tue Nov 30 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.