Python is a popular, powerful, and pleasant programming language to practice (am I pushing the alliteration a little too much?... nah). It's no surprise that all major 3D software packages support it now.
A script/tool to create a hand rig automatically (in Maya), developed using Python.
Creating a Python script to automatically rig a set of hand controllers/joints for a pre-configured scene consisting of a 5 finger right hand (with metacarpal joints), and a 4 finger left hand (without metacarpal joints). Only the controller and wrist joint are named accordingly, parent hierarchy and constraints are to remain unchanged.
Activation requirements:
The rig is activated by selecting a hand controller and running the script.
Considerations:
- differentiate between left/right
- rename the joints accordingly
- orient the joints to match with the wrist joint Y-UP axis
- be able to rotate finger joints using only one axis universally and make a fist (including thumb)
- be applicable towards 5/4/3/n number of fingers
- create attributes to control the fingers within the hand controller and connect them accordingly
- distinguish if there were metacarpal/no metacarpal joints and add attributes and separate control attributes for them if necessary
- be applicable regardless of hierarchy setup
A script/tool to zero out the controls in the control rig (in Maya), developed using Python.
Creating a Python script to zero out all keyable attributes for all control handles and affected joints in the control rig. The mesh is weighted to a skeleton that uses joint-only deformation through the use of Expressions for simplified muscle deformations, click here to see more in depth videos of it in action.
Activation requirements:
Run the script from the shelf, and/or create a tool window with a button.
Considerations:
- zeroing out transformations and rotations for all control rig objects
- there are custom added attribute controls that need to be zeroed out
- Nurbs Curves and Surfaces are used only as control handles and rig components
- some attributes are locked/hidden due to inactivity, and are expected to stay that way after the function is complete