Join Jason Baskin for an in-depth discussion in this video Creating an FK/IK tail, part of Rigging a Quadruped in Maya.
- View Offline
In this lesson we'll create some tail controls for our character. We could create FK controls just like we've done for the character's ears and head and snout area, and that would be a nice solution for a short tail like this, But what if the animator needed to pin this character's tail down. Maybe while the character is sitting, the tail needs to lay in a specific orientation on the ground, or maybe another character grabs this character's tail at some point during a sequence. So in those cases in ik setup like the one I've used for the back will probably be a better solution cause an IK blinds solver allows for a more stationary pinning of the tip joints and just generally gives the animators more shaping control for those types of poses but then the trade off of course would be that the animator would lose access to the overlap.
Opportunities that are afforded with an f k set up or the natural sort of arching behavior when you get when rotation based controls are the primary control system. So animators very often like to have both options. They want to be able to switch between f k and i k as needed for the shot, and FK and IK combined systems are really common for specially arm set ups for a character, and legs set ups as well. We're going to attached an FK, IK system to this tale because it's a pretty strong forward example, and I can see it very useful in animation.
So I've taken our original joint chain and duplicated it twice, and I'm going to create a FK system for one of the joint chains, and an IK system for the other joint chain. It's important that the joints be duplicated in their original position, and that the duplicate chains are perfect duplicates of the original, the same exact position and orientation. That's going to allow the system to blend property between FK and IK. So if we switch to the outliner and expand our hierarchy, you'll see that the original joint chain, I've renamed the bound joint chain.
This joint chain will be bound on to the character mesh, and then I have my FK and IK chains as well. So here in the display layers, I've created controls for the two separate systems. The FK controls are just like the ones I've created for other FK portions of this character. Just controls with offsets that allow them to be completely in sync with the joints that they're going to need to drive, and then I have some IK controls as well. These controls are very similar to the setup I've used in the back.
Once again, it's an I Case Sublime setup with a cluster, this time, one for each vertex, and the cluster is being moved around by a parent control, and the I Case Sublime shape is positioning and orienting their joints. So, what we need to do now is blend the behaviours of the FK system and IK system into our bound joint, which is currently not affected by either of these systems, and we'll do this by returning to the hyper shade and creating a blend color utility node. We use blend color utility nodes already to switch this stretch on and off for our character's legs, and in this case we're going to take advantage of the fact that the blend colors are able to process vectors or three number sets, and that's going to be perfect for what we need here because we're going to feed the x y z rotation values of our f k and i k joints.
Into these blend color nodes, and then the result will be passed off into the bound joints. So I need to create one blend color node per joint. This is going to be my tail one blend, and I'm going to bring up the connection editor and load the tail blend on my right. Then i'll select the first joint in my IK chain and load it on the left, and I'll connect the rotate XYZ, the tail IK to the color one RGB of my glensp color note.
Then I'll select the first FK joint. I'll load it on the left, and connect the rotate xyz to the tail rgb for color two. And finally, I'll select the first bound joint and I'm going to load it on the left also, and I'll switch the direction of the connection editor from left to right, to right to the left, and I'll make sure that I turn the non cable option on so that I can access my RGB output. I'll connect these values to the rotate xyz.
So if I select my blend, color and node and drive the values between zero and one, you can see that, at a value of one, I am in IK mode and at value of zero, I am in FK mode, and we want to give the Animator access to this blender attribute. So, I have added a custom attribute, the tail FK, IK attribute has been added to the body control, and I'll connect that to the Connection Editor, to my blender attribute on my tail one blend color blend node.
Make sure you change the direction back from left to right. So now the animator can switch for this first tail joint between IK and FK. So I'll need to repeat this process for each joint all the way through joint six. The tip joints aren't really affecting the deformation of the character, so we can ignore those. So I've gone ahead and made those connections to the other joints in our joint chain and I'm going to open up a mid-point scene in the exercises files. In this scene I've made connections to all the joints in the joint chains and the FKIK attribute will transition properly between modes for all the joints in the chain.
So as the last step, we'll connect the visibility of the controls to this behavior. That way the IK controls will only be visible while we're in IK mode, and the same for the FK controls. So we'll select the body control, and go to window > general editors > connection editor, and because this value set to one activates IK, I'm going to tie that into the visibility of my IK controls. So I'm just going to select each of the IK controls one at a time, and connect my FKIK attribute to the visibility attribute of that offset group.
I'll do that for each one of the IK controls. Hitting Reload right and making these connections, and so now, you can see that the IK controls vanish when we are in FK mode. To handle the visibility of the FK controls, I'll create an expression. I've also created a custom attribute, FKVis, which I'll use to help manage this behavior. I'll go to window, animation editors, expression editor, and I'm going to create an expression that drives the FK visibility attribute. So body control,.
FK so that it's equal to one minus the body control tail FK IK value. So this is just going to keep the visibility at a complimentary value to the value of the IK setting and this is going to turn the FK controls off when IK is on. I'll click Create. You can see this value change appropriately, and then I'll connect the visibility attribute to my FK controls.
So for the FK controls, since they're all just in a single hierarchy, I'll pick walk up using the up arrow on the keyboard all the way to FK 1 offset, and connect it to my custom attribute. With the tail controls complete, we can move on to controlling the dog tag by adding dynamic joints to our rig.
- Creating the skeleton
- Rigging the head, ears, and front and hind legs
- Working with expressions
- Adding extended twist functionality
- Creating an FK/IK tail
- Making the rig scalable
- Binding the mesh to the skeleton and painting skin