-
Notifications
You must be signed in to change notification settings - Fork 41
06 ‐ Tools
In the Tools tab, we can find useful tools to help the rigging process.
It lets us easily transfer attribute values from the source item (the first selected node) to the destination items (the second and beyond selected nodes).
- UI:
- Copy Attributes: it'll grab the selected channel box attributes, or all displayed attributes if no attribute is currently selected. It stores the values in the memory.
- Paste Attributes: it just pastes the stored values to the selected nodes' attributes.
- Copy and Paste Attributes: it does the copy and paste buttons together.

Doc5: Copy Paste Attributes
It's a powerful tool to read poses to activate correctives. The idea is to get the input values from angles or distances and calculate the intensity of the output value that will be used as a corrective driver. We can use it to drive joints, blendShapes, or whatever we want. The concept is that we have a network node storing all linked nodes' connection info and their values, and we use the UI to help us set these values and behaviors.
- UI:
- Create: a button to add a new network node in the scene to read the integration between the 2 selected nodes and the given name.
- Type:
- Angle: it reads the angle between the input nodes.
- Distance: it creates the setup, measuring the distance between the input nodes.
- Rivet: stick the selected nodes using rivet setup.
- Refresh: it just refreshes the UI to load the current correction manager network nodes in the scene.
- Existing: there's a text field to filter the network nodes by name. (Use space to multiple filter).
- Scroll field: list the network nodes to select the desired item and access the bottom section for editing.
- Edit Selected:
- We can set some attributes here to calibrate and configure the corrective feature, like axis, axis order, interpolation [Linear, Smooth, Spline], decompose, etc.
- Range: these fields are useful to set the input and output values for the start and end positions. For example, if we want to start reading the angle from zero rotation to 90 degrees, and we aim to activate a blendShape from zero to one, we should set:
- start input = 0;
- end input = 90;
- start output = 0;
- end output = 1;

Doc5: Correction Manager
The script uses predefined attributes to perform specific tasks during rig creation, validation, publishing, or rebuilding. Usually, the script uses attributes with names starting with dp. This tool has a UI to access these attributes.
- UI:
- Filter text field.
- Main list objects and attributes layout.
- Buttons:
- Add: open a window with some buttons to add predefined attributes or create a custom attribute.
- Remove: open a window with buttons to remove the found attributes if they exist.
- Update dpID: re-generate a new dpID (a unique identification) encrypted attribute.
- Reveal dpID: open a window to see the dpID data info. Useful to check if the node was renamed or see when the node was created and processed by the system.
- Setting attributes: there are some checkboxes to choose what we want to list or not in the main list of objects layout, by type and suffix.

Doc5: Custom Attributes
This tool has 2 functionalities: give us predefined target node naming and connect the facial controllers to the blendShape node or the facial joints.
- UI:
- Create default targets: make a copy of the selected node mesh and rename the duplicated nodes correctly. Those exact names will be used to connect the facial controllers. On the right side (R_), we can use the Target Mirror tool to create after sculpting the left side targets, or the Maya Shape Editor. Here are the predefined and expected names for a mesh of Body, for example:
['Body_Base_Tgt', 'Body_Recept_Tgt', 'Body_Tweaks_Tgt', 'Body_Facial_Tgt_Grp', 'Body_L_BrowUp_Tgt', 'Body_L_BrowDown_Tgt', 'Body_L_BrowSad_Tgt', 'Body_L_BrowFrown_Tgt', 'Body_L_EyelidsClose_Tgt', 'Body_L_EyelidsOpen_Tgt', 'Body_L_LipsSide_Tgt', 'Body_L_MouthSmile_Tgt', 'Body_L_MouthSad_Tgt', 'Body_L_MouthWide_Tgt', 'Body_L_MouthNarrow_Tgt', 'Body_L_Sneer_Tgt', 'Body_L_Grimace_Tgt', 'Body_L_Puff_Tgt', 'Body_Pucker_Tgt', 'Body_LipsUp_Tgt', 'Body_LipsDown_Tgt', 'Body_LipsFront_Tgt', 'Body_LipsBack_Tgt', 'Body_UpperLipFront_Tgt', 'Body_UpperLipBack_Tgt', 'Body_LowerLipFront_Tgt', 'Body_LowerLipBack_Tgt', 'Body_SoftSmile_Tgt', 'Body_BigSmile_Tgt', 'Body_AAA_Tgt', 'Body_OOO_Tgt', 'Body_UUU_Tgt', 'Body_FFF_Tgt', 'Body_MMM_Tgt']
-
- Blend Shapes - Animation: connect the Head facial controllers' attributes to the blendShape node targets.
- Facial Joints - Gaming: connect the Head facial controllers' attributes to the tweaker joint setups.

Doc5: Facial Connection
This tool will automatically create some hand poses for the biped fingers.
These are the pose attributes in the Arm_Wrist_ToParent_Ctrl:
- Curl
- Side
- Spread
- Scratch
- Relax

Doc5: Finger Hand Pose
This tool will automatically create some deformers and controllers that we usually use in a cartoon head rig. We can also use it for props rigs, like plants, rocks, objects in general, because we can easily have good deformations in our animation.
It will create the following linear deformers, in this order, influencing a lattice (FFD) assigned to the selected meshes, or CVs:
- bend2 = (front, back)
- bend1 = (left, right)
- squash
- twist
The main controller (like an arrow) has attributes to set the intensity of the deformations, related to the translation. Also, this controller can display sub-controllers. There are some calibration attributes to configure in the main controller.
- UI:
- It'll prompt a field to name the deformers, usually as Head.
- If we choose the name as Jaw, it'll rotate the setup and prepare the nodes to work well as a jaw deformer.
After creating the setup, we need to parent the HeadDeformer_Main_Ctrl_Grp to the controller that we want this setup to follow. By default, if there's a head, it'll automatically parent to it.

Doc5: Head Deformer
It's a simple tool for creating a rotation isolating setup for the selected transform node. It works by getting the rotation from the transform's grandfather and connecting the added isolate attribute to it. It's handy for hair or tail setup, for example.
Doc5: Isolate
This tool has a window with multiple choices for joint draw display, respectively [Bone, Multi-Child as box, None, Joint].
- UI:
- Filter name text field.
- Radius: we can set the joint radius using this element.
- Scroll fields: they will be populated by the joints in the respective display status.
- Move buttons: change the selected joints to left or right in the scroll fields by status.
- Change to: an option to directly choose the joint display for all listed joints.

When we publish a rig, a validator calls this tool and changes all joint displays to none.
Doc5: Joint Display
The building system automatically calls this tool. It verifies if there are a Spine and a Head module in the rig to create the Limb spaceSwitch. It adds an attribute in the extreme controller (Wrist/Ankle) named follow.
Doc5: Limb Space Switch
This script will transfer all vertices' positions from the source mesh (first selection) to the destination mesh (second selection). They need to have the same topology. The two meshes must have different and unique names. It's handy to update the mesh of plugged blendShape targets without losing their connections.
Doc5: Match Mesh
This tool is designed to connect the dpAutoRigSystem biped rig setup to the HumanIK motion capture plugin.
- UI:
- Map limb ribbons: it allows the script to set the limb bend controllers to receive the mocap data, or not.
- IK/FK Mode: choose for spine, arm, and leg mode.
- Processes (phases to configure the setup):
- Prepare T-Pose: put the character rig in a T-Pose as much as possible, aligning the axis.
- Retargeting HumanIK: it creates a new character definition and sets the setup joints. Then, it creates a custom control rig and sets the predefined controllers. Also, it disables the clavicle/hips auto-rotate (follow) and the ikFkSnap. Resuming, it does the rig retargeting to HumanIK.
- Animation:
- Timeline button: it will snap to ik all the controllers with baked FK keyframes. That means it transfers the FK to ik all the timeline frames.
- Cleanup:
- Remove HumanIK: it deletes the HumanIK retargeting and restores the rig setup to default.

Here's an example of retargeting and importing an animation:

Doc5: Motion Capture
This is a straightforward script to mount a new rig skeleton hierarchy with one root joint, transferring all skinCluster influences to the new joints. It's handy when we need to export our rig to the web or a game engine. It's not possible to undo this process, so make sure to save a new copy of your wip file!

Doc5: One Skeleton
This is a simple script that will just print a selected item list as an output in the Maya Script Editor.
- It returns 2 types of printing:
- List: pythonic.
- String: separated by
;Here's an example:
Print Selection Result:
List:
['All_Grp', 'Ctrls_Grp', 'Data_Grp', 'Render_Grp', 'Proxy_Grp', 'FX_Grp']
String:
All_Grp;Ctrls_Grp;Data_Grp;Render_Grp;Proxy_Grp;FX_Grp;
Note
It's becoming obsolete, and maybe it'll be removed from tools.
Doc5: Print Selection
This tool has an interface to make the renaming task easier in Maya.
- UI:
- There are 2 ways to list nodes:
- Selected.
- Hierarchy.
- Sequence:
- Name: the name of all nodes following the sequential order.
- Start: the first number to start the numerical sequence.
- Padding: the quantity of numbers padding, like [1 = 0, 2 = 00, 3 = 000, ...]
- Prefix.
- Suffix.
- Search - Replace names.
- Preview:
- Current: list the current names of selected nodes before the renaming.
- Rename to: list the result preview after the renaming.
- Rename button: click on it to bulk rename nodes as shown in the preview lists.
- There are 2 ways to list nodes:

Doc5: Renamer
It's a nice tool to easily reorder the selected attributes in the Channel Box. It works well for multiple selection. It's very intuitive.
- UI:
- Up: move the selected attribute to above of the next upper visible user-defined (extra) attribute.
- Down: move the selected attribute to below of the next lower visible user-defined (extra) attribute.

Doc5: Reorder Attributes
This tool helps us attach nodes to a geometry surface. It creates a setup using a follicle, groups, and utility nodes.
- UI:
- Create tab:
- Geometry: a button to load the selected node name in the text field. It'll be used as the geometry to attach the rivet.
- Add/Remove: buttons to load or remove selected nodes in the scroll list of nodes to be attached by the rivet.
- Attach Translate.
- Attach Rotate.
- Create group to constrain: it'll add a new zero-out group to the node and apply the rivet setup on it.
- Add invert setup to avoid double transformation: it'll add a multiply-divide to multiply the translate and/or rotate attributes by -1.
- Create FaceToRivet geometry: it'll make a simplified copy of the mesh with optimized UVs to receive the rivet follicles and deform it by the loaded geometry to attach using a morph-deformer or a wrap-deformer.
- Remove tab:
- Select All: a button to select all the listed rivet controllers in the scroll list.
- Refresh: updates the scroll list of the rivet controllers.
- Filter: there's a text field to filter the name showing in the scroll list.
- Scroll list: shows the controllers with rivet setup.
- Remove Rivet: a button to delete the rivet setup of the selected controller and return the hierarchy as it was before.
- Create tab:

Important
Requirement: This rivet setup depends on the mesh UVs to work well.
Doc5: Rivet
It's a useful tool to create blendShape target mirrors.
- UI:
- Original Model: a button to load the neutral geometry mesh to be used as a base to be copied from.
- Add/Remove: buttons to add or remove the selected nodes to the target scroll list.
- Auto rename: automatically replace the duplicated target node using the from and to text fields. Usually from left (L_) to right (R_).
- Axis: choose the direction it will be mirrored. X by default.
- Mirror position: set the duplicated and mirrored node position in opposition to the given target node.
- Clear Undo: after duplicating and mirroring one target, the script will flush the undo to clean up the computer memory. It'll be better for the RAM because Maya will fill it quickly. This makes the processes faster, too. (Recommended).
- Check history: verify if there are any input history nodes to avoid using the original base mesh deformed.
- Do Mirror Targets!: a button to run this script.

Tip
Before running this script, we recommend you create a wrap deformer between 2 temporary cubes using the options below (image), and delete them after. That will store the Maya user preferences of the wrap deformer. So the script will work much better and faster.

Doc5: Target Mirror
This tool verifies if we have old guide versions in the scene and proposes updating them. It's always a good idea to use nodes from the latest script version, because we are always developing the code, and some new features depend on compatible guides to keep the system working well.
- UI:
- It opens a window showing the old guides found, their names, and versions.
- We can click the Update Guides button to fix them.
- After running the updating process, the tool will ask if we want to delete the FaceToRivet geometry if it is no longer necessary for the setup anymore. Also, it'll ask us if we want to delete the old guides (recommended)

Warning
- It isn't compatible with ancient guide versions.
- We expect update guides since v5.01. If you want to update guides from older versions, we recommend using the sequential releases, please.
Doc5: Update Guides
This is a simple script to update some information about our current rig setup.
- In fact, it will set 2 string attributes in the All_Grp node:
- geometryList
- controlList
Note
It's obsolete. Maybe it'll be removed from tools soon.
Doc5: Update Rig Info
This tool makes the sticky lips or zipping setup easier. It uses wire deformers and blendShapes to attract the curve positions and do the job. It'll add a new mesh deformation transform, receiving the original mesh as a blendShape and applying the zipper setup to the final mesh.
- UI:
- There are 3 loading buttons:
- Original Model: it grabs the selected mesh as the model to be used to apply the setup.
- First Curve: generated by selecting a desired first edge sequence (like upper lip edges).
- Second Curve: generated by selecting a desired second edge sequence (like lower lip edges).
- Options:
- Curve direction: usually X to have left and right deformations.
- Integrate with the dpAutoRigSystem checkbox: it will place all the created nodes in the correct groups.
- Create Zipper: a button to run the script and create the setup using the loaded info.
- There are 3 loading buttons:

Note
We need to manually paint the wire deformer weights in the final mesh to achieve the results.
Caution
This script isn't rebuildable yet, sorry. We are working to implement it in the Rebuilder. Please bear with us. Thanks.
Tutorial: Sticky Lips
Doc5: Zipper