We now have an ik leg and a fk leg. Lets make a way so the animator could use either of them.
  1. STEP 1: setup

    We have made the FK and IK leg.
    Get rid of the geometry under the FK and IK leg joint chains.
    The bind joint will be the one with the final geo attached.
    Group the fk, ik and bind leg chains together.
    Rename the group "left_leg_skeleton_grp".
    Parent the group under the skeleton_grp.
  2. STEP 2: orient constraints

    We are creating the blending by orient constraints.
    The bind joint chain will either be oriented with the fk or ik joints.
    Select, the fk upper_leg joint, then the ik upper leg joint. then the bind upper_leg joint.
    Create an orient constraint.
    Select, the fk upper_leg joint, then the ik upper leg joint. then the bind upper_leg joint,create another constraint.
    Select, the fk lower_leg joint, then the ik lower leg joint. then the bind lower_leg joint,create another constraint.
    Select, the fk ankle joint, then the ik ankle leg joint. then the bind ankle joint,create another constraint.
    Select, the fk ball joint, then the ik ball leg joint. then the bind ball joint,create another constraint.
    Select, the fk toe joint, then the ik toe leg joint. then the bind toe joint,create another constraint.
    The leg joint has two weights in the constraint. if the weight is 1 then it has control over the joint.
    weight0 is the fk and weight1 is the ik.
    Lets use this fact to create an ik_fk switch.
    Do the same again, but instead of a orient constraint make a point constraint.

  3. STEP 3: attribute creation

    Lets create an attribute on the top con control the fk_ik switching.
    Add an attribute to the top_con named "leftLegFkIk". Make the attribute an enum.
    Make the first enum option FK and the other IK.
    FK represents numeric value of 0, and IK of 1.
    This will drive the switch.
    knee heirarchy
  4. STEP 4: connect constraints to blend

    Select the top_con and the orient and point constraints.
    Then go to the hypergraph connections.
    Connect the .leftLegFkIk to the .weight1 of the constraints.
    Create an reverse node.
    Name the reverse node, "left_leg_blend_reverse"
    connect the .leftLegFkIk to the .inputX of the reverse node.
    conncet the .outputX fo the reverse node to the .weight0 of the constraints.
  5. STEP 4: connect visibility to blend

    Select the top_con,the left_upper_leg_ik_joint, the left_leg_anims_grp and the fk upper leg anim.
    In the hypergraph connect the .leftLegFkIk to the visibilty of the left_leg_anims_grp.
    Connect the .leftLegFkIk to the visibilty of the left_upper_leg_ik_joint.
    Connect the left_leg_blend_reverse to the visibility of left_upper_leg_anim.
    Now as you switch the attribute the IK and FK should switch.
    Lock/hide visibility on the IK anims.
    If the .visibility of the left_upper_leg_anim is locked you will not be able to connect an input to it,
    Go the the channel box -> right click ->editors -> channel control -> locked tab.
    Then find visibility on the left and press the "move >>" button.