Rigging the TV Bot
I found that rigging the TV bot character has been the most difficult process so far, I’m not a particularly confident rigger at the moment, however I was able to get help from one of my lecturers Alec Parkin.
Initially I sent him a rig similar to the one seen below, however the joints hadn’t been skinned to the geometry and there were joints in the upper arm, fore arm,wrist and fingers.
- I think you can do without joints in the arms and just use fk controls parent constrained to the geometry
- The legs broke up the geometry in the left leg, this will be easier to skin later (100% weight values to different joints)
- Also I had to fix the joints as they had been rotated, and i’ve put in a ik handle.
Based off the feedback I rigged the arms by parent constraining the fk controls to the geometry in the arms. This would enable us to achieve a robotic look from our character’s arm movement.
Alec then sent me a series of Autodesk tutorials that cover how to set up a reverse foot rig on the character, they’re part of a larger series of rigging tutorials which I intend to work through soon.
The first tutorial looks into working on a IK foot with the addition of a reverse foot rig applied. Despite being very useful, towards the end of this specific tutorial, it states that there is a better and more effective way of setting up a reverse foot rig for our character. However I still thought it was important to record the multiple methods and come to a conclusion in the end.
Rigging Method One – Creating A Character Rig – Part 19: Reverse Foot Rig
- A reverse foot rig is: A rig component that gives animators complete control over how the foot moves, including its four positions:Contact, Down, Passing and up positions.
- Start with 3 locators to begin with and rename them appropriately, in this case: Heel_LOC, Ball LOC, Toe_LOC
- Snap the ball locator and the toe locator to their respected joints (using Middle mouse + V) and move the Heel_Locator to the base of the heel.
- Parent these locators to the left foot control (in this case), then parent the ball and toe locators, in addtion to all the ik handles under the heel locator.
This will enable the ball and toe pivot spaces to rotate when the heel lifts.
- However, in order to create a foot roll, the ankle needs to move up when the ball rotates up. To create this effect, re-parent both leg IK handles and the ball IK handle under the ball locator.
- In addition, we need the foot to be able to roll onto the toe tip, we do this by parenting the ball locator under the toe locator.
- Parent the knee Joint under the Ball Locator.
- The locator will determine the position of the leg’s IK handles preciously in comparison to the foot control.
- Re-parent the IK leg locators under the ball Locator also.
Adding custom attributes to our foot control
- Select the foot control and add three attributes:
(ATTRIBUTE EDITOR —-> EDIT —-> ADD ATTRIBUTES)
This will open up the ‘add attribute window’ (shown below)
In the ‘Long name’section add three attributes under the name of, heelLift, balllift and toe lift.
- To wrap up this rigging method, use the connection editor to connect the rotate X attribute of each pivot locator to the appropriate custom attribute.
As mentioned previously the method described above will allow us to achieve the effect we want, whoever we lose a bit of control over the rig as a result. The following two tutorials (part 20 & 21) allow us to achieve the same effect and maintain a superior level of control over the rig.
Rigging Method Two – Creating A Character Rig – Part 20: Small Foot Roll
- Create three Attributes
(ATTRIBUTE EDITOR —-> EDIT —-> ADD ATTRIBUTES)
- With the ‘Add attribute’ window open, under Long name, add the attributes for:
Roll – our primary method for rotating the foot.
BendLimitAngle – (Will add limitations to the Roll value attribute) Will be lower than the Toe straight angle since the foot will bend at the foot first and straighten once its vertical.
ToeStraightAngle – (Will add limitations to the Roll value attribute)
- In the ‘Add Attribute‘ window under ‘default‘ assign the values of 45 degrees for the BendlimitAttribute and a value of 70 degrees for the ToeStraightAngle attribute. (Shown Below)
- Due to the fact we never want the foot rotating downward below our control we only want it to accept negative values, this will guarantee the heel is either straight or pointed up. We can achieve this effect using a Clamp Node in the node editor.
- A clamp node returns a value only within a minimum or maximum range.
- With the foot control and heel locator selected open the node editor
- Create a Clamp node: rename it appropriately: LeftHeel_rotClamp
- Feed the ‘Roll’ value of the LeftFoot_CTRL into the input R value of the clamp node.
- Since we never want the heel’s rotation value to be greater than 0 the max R value should be 0
- Assign a value of -90 to the Min R value, which will give a realistic rotation limit, even when exaggerated.
- Feed the ‘Output R‘ value of the LeftHeel_rotClamp node in the ‘Rotate X‘ value of the Heel locator.
- Now if we assign a negative value to the ‘Roll’ attribute we see that the foot lifts on its heel. In relation to this, if we assign a positive value to the roll attribute the foot clamps at zero and the foot remains straight as a result.
- Repeat this process the the ‘Ball’ node, except in this case, limit it to a positive range.
- Now a positive ‘Roll’ value pivots the foot at the ball but a negative value pivots the foot at the heel.
- To ensure things are keep tidy, instead of having an actual rotation value of the rotation itself, we want the percentage that the ‘Roll’ value is between the ‘Bend limit angle’. We can do this using a set range node.
- With the set range node selected, add a value to its Min X (zero) and Max X (one)
- This has remapped the ‘Roll‘ value to a percentage from the bend limit angle to the Toe Straight Angle.
- Depite working out the percentage value, we still have to apply the value to the rotation space. This is achieved by using a multiplydivide node.
- A plusminusaverage node has the ability to add/subtract/average single values as well as vectors.
This was the end result of my Node editor.
This efficient method of rigging provides greater ease for the animator.
Having gone through the process of creating a better rig that gives the animator more control over the the movement of the character it was time to do a bit of clean up, adding complementary foot controls etc.
Creating A Character Rig – Part 21: Complementary foot controls and clean up.
- We need our foot to have the ability to tilt side to side, we can do this by using the rotation pivots, similar to what was do with the heel and ball and toe Ik handles previously.
- Create two new locators and rename them ‘innerFoot_LOC‘ and ‘outfoot_LOC‘
- Position both of these locators the locators at either side of the foot, where the geometry is at it’s widest around the toe area.
- Parent the innerfoot_LOC to the outer Foot_LOC, then parent them both under the heel_LOC.
- Reparent the Toe_LOC and LeftToe_handle under the innerFoot_LOC
- This allows us to tilt the foot by rotating either of the two locators.
- Adding a custom attribute under Tilt gives the animator more ease when working.
- This can be achieved by using set driven keys, where the left foot control will act as the driver and the inner and out foot locators as driven.
- Then I added the ability to lean the foot on its ball and spin it around its toe as well as a toe wiggle using the connection editor.
Finally to wrap it up I was having trouble with the arm of the character, in some cases they would move with the body but not the controls, like so:
With feedback from my lecture Alec, It was a case of unbinding the arm geometry, and because he is an absolute legend he also helped me put with master control, adding a scale attribute to it.
Below is the fully functioning Rig:
Rigging the Message ‘Alert’ Bot
Rigging the meesage bot was quite simple (see below).
I created two Nurbs curves to act as my controls after which I parent constrained the inner nurbs curve to the geometry which would give more control over the bot itself in terms of its translate,rotate values.
Then I used the larger, outer nurbs curve as a master control for the rig.