In Part, 6 we will build the Left Foot and complete the Left Leg. The foot will use a 'reverse foot' setup with controls for Roll, Heel and Ball Offset, Toe Pivot, Heel and Toe Twist, Side to Side and Toe Rotation. We will finish the Left Leg by adding the twist for both upper and lower leg bones and then mirror both the Left Leg and the Left Hand to the right side.

CREATED BY

SIDEFX

For over thirty five years, SideFX has been providing artists with procedural 3D animation and visual effects tools designed to create the highest-quality cinematic results. We are passionate about what our customers do because our roots are in production, both as artists and as pioneering technical innovators.

More from SideFX

COMMENTS

  • harryabreu 5 years, 8 months ago  | 

    Mr Goldfarb thank you a lot for your effort.
    Like I think and other artists think Houdini is very capable to make character animation but is very difficult the first steps.
    I know is difficult to record so much good stuff but it we will help us a lot.

  • dddmod___ 5 years, 5 months ago  | 

    Wow, Michael has released another lessons, it's cool! It would be cool if the skinning lessons came out)

  • Ferdinand13 4 years, 3 months ago  | 

    Whoever is wondering (because some of the Hscript code is cut off on screen), here are the expressions per channel, per node:

    ### L_heel_loc

    ROTATE X
    fit (ch("../L_foot_roll"), -10, 0, -50, 0) -
    fit (ch("../L_heel_offset"), 0, 10, 0, 50)

    ROTATE Y
    fit(ch("../L_heel_twist"), -10, 10, -45, 45)


    ### L_foot_outer_loc

    ROTATE Z
    fit(ch("../L_side_to_side"), 0, 10, 0, -50)


    ### L_foot_inner_loc

    ROTATE Z
    fit(ch("../L_side_to_side"), -10, 0, 50, 0)


    ### L_toe_end_loc

    ROTATE X
    fit (ch("../L_foot_roll"), 5, 10, 0, 60) +
    fit(ch("../L_toe_pivot"), 0, 10, 0, 60)

    ROTATE Y
    fit(ch("../L_toe_twist"), -10, 10, -35, 25)


    ### L_toe_loc

    ROTATE X
    fit(ch("../L_toe_rot"), -10, 10, -40, 60)


    ### L_ball_loc

    ROTATE X
    {
    if (ch("../L_foot_roll") <= 5.0) {
    return (fit(ch("../L_foot_roll"), 0, 5, 0, 60) + fit(ch("../L_ball_offset"), 0, 10, 0, 60));
    }
    else if (ch("../L_foot_roll") >= 5.0) {
    return (fit(ch("../L_foot_roll"), 5, 10, 60, 0) + fit(ch("../L_ball_offset"), 0, 10, 0, 60));
    }
    }

Please log in to leave a comment.