Basic Biped IK/FK RigEdit

These steps are assuming you have already created your base joints.

Step 1Edit

Base RigEdit

Duplicate base rig twice and rename them. One for FK and one for IK.

BaseRig outliner
BaseRig layers

Step 2Edit

FK RigEdit

1. Create control and rotate it to correct orientation using xform :
cmds.xform(ro=(x, y, z))
FKRig XForm

2. Group the control to itself and rename it.
3. Grab control group, then select FK joint, and press 'P' to parent them.
4. Zero out translates and rotations on group. This will snap the group/control to the joint position.
Then you can un-parent them using 'Shift + P'.
5. Do the same thing for all the controls required.
Fk controls
6. Parent all of the control/groups under each other.
Grp -> next ctrl up -> Press 'P'
FK controlParenting
7.Parent Constraint joints to controls.
Ctrl -> Joint -> Parent Constraint.
FK controlParenting02
8. Create control for Pole Vector. Group to itself, parent to elbow joint, zero out and un-parent (same as the process used for the FK controls). Move the control back a bit so it isn't sitting directly on top of the joint.
9. Set preferred angle on the elbow. Bend the elbow 90 degrees then select 'Set Preferred Angle'.

Step 3

IK RigEdit

1. Now switching over to the IK rig we need to create the IK handle.
Go to the 'Skeleton' menu and select 'Create ik handle'.
Make sure you have it set to RP Solver in the settings.
Select the shoulder (or hip, whatever you are doing) then wrist (or ankle...)
2. Create another shape control for the "hand". Group it to itself, parent, zero out, then un-parent. All the same as done before.
3. Point Constraint   IK handle to the hand control.
Select hand control -> ik Handle -> Constraint
Now the chain should follow the hand around.
PC IKHandle
4. Select elbow control and lock & hide the X and Z rotation. So it can not twist and contort.
5. In the hand control attributes, add a new attribute and name it 'IK_FK_SWITCH'.
It must be a float with a min. value of 0 and a max. value of 1.
6. Select joints and controls in the following order and apply a Parent Constraint.
Shoulder_FK_Joint -> Shoulder Ctrl -> Shoulder_IK_Joint -> Shoulder_Base_Joint -> Parent Constraint.
Maintain Offset : Off
Only rotation
Do the same thing for all the joints.
7. Select the Pole Vector control -> IK Handle -> Assign Pole Vector Constraint.

Step 4Edit

IK FK SwitchEdit

Community content is available under CC-BY-SA unless otherwise noted.