Foot Roll Using Utility Nodes (remapValue)

This tutorial will demonstrate how to setup foot roll for a character using remapValue utility node. I came across the need for this kind of setup when there was constant demand from animators of the project I am working on, in which they wanted control over when the toe roll gets triggered.(If the foot roll was a value from 0 to 10 then they wanted the toe pivot to rotate during a random foot roll value(between 0 and 10)).So I had to think of a setup different from the conventional setup of set driven keys.Below is the step by step procedure for setting up the adaptable foot roll using remapValue nodes.

Create a joint chain for the leg(femur>tibia>ankle>ball>toe).Create ik handles from femur to ankle(RP solver), ankle to ball(SC solver), and ball to toe(SC solver).Create three groups(ankle_grp, ball_grp, toe_grp) at the respective ik handle position.Parent the ik handles to the respective groups.Create a leg control and add attributes[roll(min-0,max-10,default-0), roll_multiplier(min-0,max-90,default-45), roll_trigger(min-0,max-1,default-0.5)].Parent the ik handle groups under the leg control as shown below.


Create two remapValue utility nodes using the render utilities window or by running the command createNode  remapValue in the Script Editor.Rename first remap value as ballRoll_rmv and the second as toeRoll_rmv.


select ballRoll_rmv and go to Attribute Editor and add inbeween value of 1 at position 0.5 in the value graph as shown in the figure. Edit value at position 1 to 0.


select toeRoll_rmv and go to Attribute Editor and add inbeween value of 0 at position 0.5 in the value graph as shown in the figure. Edit value at position 1 to 1.


Make the following connections from foot_ctr to ballRoll_rmv and toeRoll_rmv.

leg_ctr.roll to ballRoll_rmv.inputValue.

leg_ctr.roll_trigger to ballRoll_rmv.value[2].value_Position

leg_ctr.roll_multiplier to ballRoll_rmv.outputMax.

leg_ctr.roll to toeRoll_rmv.inputValue.

leg_ctr.roll_trigger to toeRoll_rmv.value[2].value_Position

leg_ctr.roll_multiplier to toeRoll_rmv.outputMax.

ballRoll_rmv.outValue to ball_grp.rotateX

toeRoll_rmv.outValue to toe_grp.rotateX



Set leg_ctr.roll_multiplier to 45 and leg_ctr.roll_trigger to .5

By varying the roll_trigger attribute, the animator can decide where the toe pivot rotation gets triggered.

You can download the example file here

4 thoughts on “Foot Roll Using Utility Nodes (remapValue)

    1. anoop a k

      Thanks.Of course I have seen the AFR Training kit.But this one I figured myself for a show where the character was switching his shoes in different episodes.So couldn’t go with the stock roll attributes.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s