HyperRig#
HyperRig Features
:Advanced Rigging -Hyper Modular Rigging System:
The HyperRig module, designed as a comprehensive rigging tool for Autodesk Maya, encapsulates the functionalities of the previously discussed modules (asNode, eCtrl, eTest, eSpec, eMath, eRig, and eMod) into a user-friendly UI. This approach makes advanced rigging tools accessible to artists, streamlining their workflow. Here are some key features of the HyperRig module:
Integrated UI for Rigging Tools: HyperRig consolidates various rigging tools into a singular, intuitive user interface, making advanced rigging functionalities easily accessible to artists.
Body Rigging Tab: A dedicated tab for body rigging, incorporating tools from modules like eRig and eMod, allows for efficient creation and management of body rigs.
Facial Rigging Utilities: The module includes a specialized tab for facial rigging, offering tools for detailed facial expressions and head movements, essential for character animation.
Control Setup: HyperRig provides a tab for setting up and customizing rig controls, facilitating easy manipulation of character rigs during animation.
Skinning Features: A dedicated skinning tab in the UI helps artists efficiently bind geometry to rigs, crucial for realistic character movement.
Utility Tools: HyperRig includes a utilities tab, which encompasses various support tools and functions for rigging, enhancing overall workflow efficiency.
Motion Capture (MoCap) Integration: The module offers functionalities for integrating and working with motion capture data, essential for animating characters with real-life movements.
Customization and Flexibility: HyperRig allows for customization and flexibility in rigging, catering to the specific needs of different characters and animation styles.
Seamless Workflow Integration: The module is designed to integrate seamlessly with Maya’s environment, ensuring a smooth workflow for rigging and animation tasks.
User-Friendly for Artists: By providing a UI for complex rigging operations, HyperRig makes it more accessible for artists who may not be deeply familiar with scripting or technical aspects of rigging.
HyperRig represents a significant advancement in rigging tools for Maya, offering a comprehensive, user-friendly solution that streamlines the rigging process for artists and technical directors alike.
- HyperRig.__confirmAction(self, action)#
- HyperRig.__init__(self)#
as_Update_BuildBodyModule - For UI options in Body Module as_CreateTemplate - To go to ‘Create Template’ Button Function as_BuildBodyModule - To go to ‘Build Module’ Button Function
- HyperRig._compileHyperRig(self, userFolder='$_Free_asEB')#
import shutil
mayaVer =HyperRig._mayaVer() userPath =’D:/My_Scripts/$_as_HyperRig/$_Scripts_Sold/{}/’.format(userFolder) verPath =userPath + str(mayaVer) if not os.path.exists(verPath):
os.makedirs(verPath)
scriptPath =’D:/My_Scripts/as_Scripts/’ pycFiles =[‘as_HyperRigMain.pyc’, ‘asNode.pyc’, ‘as_eRigMain.pyc’, ‘as_eCtrlMain.pyc’, ‘as_eSpecMain.pyc’, ‘as_eModMain.pyc’, ‘as_eMathMain.pyc’, ‘as_eTestMain.pyc’]
import asNode importlib.reload(asNode) from asNode import *
import as_eRigMain importlib.reload(as_eRigMain) from as_eRigMain import *
import as_eCtrlMain importlib.reload(as_eCtrlMain) from as_eCtrlMain import *
import as_eSpecMain importlib.reload(as_eSpecMain) from as_eSpecMain import *
import as_eTestMain importlib.reload(as_eTestMain) from as_eTestMain import *
import as_eMathMain importlib.reload(as_eMathMain) from as_eMathMain import *
import as_eModMain importlib.reload(as_eModMain) from as_eModMain import *
from as_HyperRigMain import * import as_HyperRigMain importlib.reload(as_HyperRigMain)
from as_HyperRigMain import * import as_HyperRigMain importlib.reload(as_HyperRigMain) #HyperRig.as_HyperRig()
- HyperRig._isInTime(self, startDate=[2017, 1, 1], endDate=[2018, 1, 1], onlineTime=1, showDaysLeft=1, bufferTime=1)#
- HyperRig._mayaVer(self)#
- HyperRig.add_AttrDivider(self, ctrlList=None, **shArgs)#
[shArgs : cl=ctrlList]
Purpose:
:: Adds an attribute divider to organize custom attributes in the channel box of a controller.
Provides a clean and organized way to separate custom attributes from default ones.
Enhances readability and usability of the channel box in complex rigs.
Useful in rigs with a high number of custom attributes.
- Parameters:
ctrlList – <list> # List of controllers to add the attribute divider to.
- Returns:
None # This function does not return a value but modifies the channel box of the specified controllers.
Code Examples:
>>> add_AttrDivider(ctrlList=['ctrl1', 'ctrl2']) # Adds an attribute divider to the specified controllers.
- Flow Chart Description:
This flowchart illustrates the add_AttrDivider function:
The process begins by selecting controllers to which an attribute divider will be added.
- Checks if a list of controllers is provided.
If a controller list is provided, it proceeds to add an attribute divider to each controller in the list.
If no specific controller list is provided, it adds an attribute divider to the currently selected controllers.
Completes the process and ends.
- HyperRig.add_Attrs(self, attr='RotateOrder', onOffSwitch=0, **shArgs)#
[shArgs : a=attr, oos=onOffSwitch]
Purpose:
:: Adds custom attributes to selected controls, such as ‘RotateOrder’ or on/off switches.
Enhances control rig functionality by allowing for custom attribute creation.
Facilitates the animation process by providing additional control over rig components.
Customizable to fit specific rigging and animation needs.
- Parameters:
attr – <str> # The name of the attribute to add. Default is ‘RotateOrder’.
onOffSwitch – <bool> # Whether to add an on/off switch attribute.
- Returns:
None # This function does not return a value but modifies the selected controllers.
Code Examples:
>>> add_Attrs(attr='RotateOrder', onOffSwitch=0) # Adds a 'RotateOrder' attribute to the selected controllers.
If RotateOrderIf OnOff SwitchInput Attribute NameCancel ActionStart/ Select Controls/ Check Attribute Type/ Add RotateOrder Attribute/ Add OnOff Switch Attribute/ Connect AttributeEnd/ Prompt Attribute Name/ Create OnOff Switch/ Cancel Action- Flow Chart Description:
This flowchart illustrates the add_Attrs function:
Starts by selecting the relevant controls to add attributes to.
- Checks the type of attribute to be added, either ‘RotateOrder’ or an on/off switch.
If ‘RotateOrder’, adds the ‘RotateOrder’ attribute and connects it to the control’s rotate order attribute.
If on/off switch, prompts for the attribute name and creates an on/off switch attribute.
In case of cancellation during on/off switch creation, the action is canceled.
Completes the process and ends.
- HyperRig.add_ClusterToTF(self, textFld, btnName=None, **shArgs)#
[shArgs: tf=textFld, bn=btnName]
Purpose:
:: Adds the name of the selected object with a ‘_ClustCluster’ suffix to a specified text field in Maya UI.
Useful for rigging and animation workflows where cluster names need to be inputted or tracked in the Maya UI.
- Parameters:
textFld – <str> # Name of the text field where the cluster name is to be added.
btnName – <str, optional> # Name of the button associated with the action, used for UI feedback.
- Returns:
None # This function does not return any value but updates the text field with the selected object’s cluster name.
Code Examples:
>>> text_field_name = "clusterNameField" >>> button_name = "applyClusterButton" >>> add_ClusterToTF(text_field_name, button_name) # Adds the cluster name of the selected object to 'clusterNameField'.
Objects SelectedNo Objects SelectedButton ExistsNo ButtonStart/ Check Selection/ Get Object Name/ Clear Text Field/ Update Text Field/ Check Button/ Query Button State/ Update ButtonEnd- Flow Chart Description:
This flowchart illustrates the add_ClusterToTF function:
The function begins by checking if any objects are selected in Maya.
If an object is selected, it retrieves the object’s name and updates the specified text field with the object name followed by ‘_ClustCluster’.
If no object is selected, the text field is cleared.
The function then checks if a button name is provided for UI feedback.
If a button is present, its state is queried and updated based on the selection status.
The process ends once the text field and button (if any) are updated.
- HyperRig.add_Prefix(self, txtFldName, btnName=None, **shArgs)#
[shArgs: tfn=txtFldName, bn=btnName]
Purpose:
:: Adds a prefix of the selected object to a specified text field in Maya UI.
Useful for automating naming conventions and ensuring consistency in naming objects within Maya.
- Parameters:
txtFldName – <str> # Name of the text field where the prefix is to be added.
btnName – <str, optional> # Name of the button associated with the action, used for UI feedback.
- Returns:
None # This function does not return any value but updates the text field with the selected object’s prefix.
Code Examples:
>>> text_field_name = "myTextField" >>> button_name = "myButton" >>> add_Prefix(text_field_name, button_name) # Adds the prefix of the selected object to 'myTextField'.
Adds prefix of selected object as Input in any Window for <== button
Usage:
Left_Hand # Adds 'Left_' While pressing Enter.. <== button Hand # Adds '' While pressing Enter.. <== button
If objects are selectedGet prefix from selected objectNo objects selectedSet text field to emptyAdd prefix to text fieldAdjust button appearance based on actionStart/ Check Selection/ Extract Prefix/ Update Text Field/ Clear Text Field/ Update Button StatusEnd- Flow Chart Description:
This flowchart illustrates the add_Prefix function:
The process begins by checking if any objects are selected.
If objects are selected, it extracts the prefix from the selected object.
The prefix is then added to the specified text field.
If no objects are selected, it clears the text field to an empty state.
Finally, the function updates the appearance of the associated button based on the action performed.
- HyperRig.add_Selection(self, textFld, btnName=None, **shArgs)#
[shArgs: tf=textFld, bn=btnName]
Purpose:
:: Adds the name of the selected object to a specified text field in Maya UI.
Ideal for workflows that require quick input of selected object names into Maya’s UI elements.
- Parameters:
textFld – <str> # Name of the text field where the selected object’s name is to be added.
btnName – <str, optional> # Name of the button associated with the action, used for UI feedback.
- Returns:
None # This function does not return any value but updates the text field with the selected object’s name.
Code Examples:
>>> text_field_name = "objectNameField" >>> button_name = "addButton" >>> add_Selection(text_field_name, button_name) # Adds the name of the selected object to 'objectNameField'.
Adds selected object’s name as Input in any Window for <== button
Usage:
obj10 # Adds 'obj10' While pressing Enter.. <== button box25 # Adds 'box25' While pressing Enter.. <== button
If objects are selectedGet name from selected objectNo objects selectedSet text field to emptyAdd object name to text fieldAdjust button appearance based on actionStart/ Check Selection/ Extract Name/ Update Text Field/ Clear Text Field/ Update Button StatusEnd- Flow Chart Description:
This flowchart illustrates the add_Selection function:
The process begins by checking if any objects are selected.
If objects are selected, it extracts the name from the selected object.
The object name is then added to the specified text field.
If no objects are selected, it clears the text field to an empty state.
Finally, the function updates the appearance of the associated button based on the action performed.
- HyperRig.add_ToesTemplate(self, **shArgs)#
[shArgs : ]
Purpose:
:: Adds toe templates to a foot rig in Autodesk Maya.
This function creates additional toe templates based on the given foot name prefix.
It duplicates and positions toe curves to create a series of toe templates.
- Parameters:
toesPrefix – <str> #Prefix for the foot name to which toes templates are added.
- Returns:
None #No return value, it adds toe templates to the existing foot rig.
Code Examples:
>>> toesPrefix = 'Foot' >>> add_ToesTemplate()
If ExistsIf Not ExistsStart/ Get Toes Prefix/ Check if Digit Curve Exists/ Duplicate Last Curve/ Duplicate Pinky Curve/ Rename Duplicate Curve/ Position Curve/ Basic SetupEnd- Flow Chart Description:
This flowchart illustrates the add_ToesTemplate function:
The function begins by retrieving the toes prefix from the user input.
It then checks if the digit curve for the toe already exists in the scene.
If the digit curve exists, it duplicates the last curve in the series; otherwise, it duplicates the pinky curve.
The duplicated curve is then renamed appropriately.
Positions the newly created curve relative to the last toe or the pinky toe.
Performs a basic setup for the new toe curve using the eMod class.
Completes the process by adding the new toe template to the existing foot rig.
- HyperRig.advSkel_mirrorOrientCtrlGrps(self, **shArgs)#
[shArgs : ]
Purpose:
:: Mirrors orientation and control groups of a selected skeletal structure to the opposite side.
Aids in symmetrically rigging characters by automating the mirroring of control groups.
Ensures consistent orientation and setup between corresponding parts of a character.
Streamlines the rigging process for complex characters with symmetrical features.
- Returns:
None # This function does not return a value but mirrors the orientation and control groups.
Code Examples:
>>> advSkel_mirrorOrientCtrlGrps() # Mirrors the orientation and control groups of selected controllers to the opposite side.
For Each ControllerStart/ Select Controllers/ Mirror Orientation Groups/ Iterate Controllers/ Get Control Group/ Get Mirror Group/ Set Rotation Attributes/ Reparent Joint/ Add Mirror ControllerEnd- Flow Chart Description:
This flowchart illustrates the advSkel_mirrorOrientCtrlGrps function:
The process begins by selecting controllers whose orientation and control groups need to be mirrored.
Mirrors the orientation groups of the selected controllers.
- Iterates through each selected controller to handle mirroring individually.
Retrieves the control group of the current controller.
Identifies and sets up the corresponding mirror group.
Sets the rotation attributes for the mirror group.
Reparents the joint to the mirrored controller.
Adds the mirrored controller to the list for selection.
Completes the process by selecting the mirrored controllers and ends.
- HyperRig.applyDeltaMushScale(self, animCtrl=None, **shArgs)#
[shArgs: ac=animCtrl]
Purpose:
:: Applies global scale to all ‘deltaMush’ nodes in a Maya scene, using a specified animation control.
This function is particularly useful in rigging workflows to maintain consistency in deformation effects when scaling characters or assets.
- Parameters:
animCtrl – <str/PyNode, optional> # The animation control used to apply the global scale. If not provided, it will default to the selected control or ‘Global_Control’.
- Returns:
None # This function does not return any value but applies global scale to all ‘deltaMush’ nodes.
Code Examples:
>>> animation_control = "characterGlobalCtrl" >>> applyDeltaMushScale(animation_control) # Applies global scale to all 'deltaMush' nodes using 'characterGlobalCtrl'.
- HyperRig.as_AboutHyperRig(self, **shArgs)#
[shArgs: ]
Purpose:
:: Displays information about the as_HyperRig tool, including credits, contact details, and version.
This function provides a UI window that showcases the author’s information and additional resources related to as_HyperRig.
- Returns:
None # This function does not return any value but displays a UI window with as_HyperRig information.
Code Examples:
>>> as_AboutHyperRig() # Opens a window displaying information about as_HyperRig.
If window existsWindow deletedIf window does not existInitialize about windowDisplay HyperRig informationPresent window to userClose window after delayStart/ Check Existing Window/ Delete Window/ Create New Window/ Add Content/ Show Window/ Wait for CloseEnd- Flow Chart Description:
This flowchart illustrates the as_AboutHyperRig function:
The process starts by checking if the HyperRig information window already exists.
If it exists, the existing window is deleted.
A new window is created to display the HyperRig information.
Relevant HyperRig information and credits are added to the window.
The window is then displayed to the user.
After a brief pause, the window is automatically closed.
- HyperRig.as_ApplyCBS_cvShapeInv(self, rAttr='ry', selectedAttr=False, **shArgs)#
[shArgs : ]
Purpose:
:: Applies corrective blend shapes (CBS) using curve shape inversion in Autodesk Maya, primarily used in advanced character rigging.
This function is utilized to apply corrective blend shapes to a skinned mesh based on various transformation attributes of controllers or joints.
It handles different object types like joints, locators, and plusMinusAverage nodes to determine the pose for applying the corrective shape.
The function supports selective attribute application, where users can choose specific attributes from a channel box for corrective action.
It includes options to manage group names, pose mesh names, and blend shape node names for precise control over the corrective process.
The setup is adaptable, allowing for the integration of corrective blend shapes into complex rigging systems.
- Returns:
None # This function configures corrective blend shapes but doesn’t return a value.
Code Examples:
>>> as_ApplyCBS_cvShapeInv(rAttr='ry', selectedAttr=False) # Applies corrective blend shapes based on rotation or transformation attributes of a rig component.
Check for skin mesh, pose control, joints, etc.Set initial variables and filter listsCheck if CBS name existsIf CBS name doesn't existCheck and prepare pose meshApply corrective blend shapesStart/ Check Objects/ Initialize Variables/ Determine CBS Name/ Check Pose Mesh/ Create CBS Name/ Apply CBSEnd- Flow Chart Description:
This flowchart illustrates the as_ApplyCBS_cvShapeInv function:
The function starts by checking for the necessary objects like skin mesh, pose control, and joints.
It initializes variables and filters lists based on selected objects.
The process then determines if a corrective blend shape (CBS) name exists, or creates one if it doesn’t.
It checks and prepares the pose mesh for applying corrective blend shapes.
The function applies corrective blend shapes based on various transformation attributes of controllers or joints.
The process concludes after applying the corrective blend shapes.
- HyperRig.as_AttachBodyPartsToSkin(self, **shArgs)#
[shArgs : ]
Purpose:
:: Attaches non-skinned geometry, like nails or accessories, to skinned meshes, ensuring they move correctly with the character’s animation.
This function is designed for attaching non-skinned geometries like accessories or clothes to already skinned character meshes.
It ensures that these additional geometries deform correctly in sync with the underlying skinned mesh.
The function automatically detects and binds the closest joints to the non-skinned geometry for accurate skinning.
It is particularly useful in complex character setups where additional geometries need to be added post the initial skinning process.
The setup enhances the rig’s functionality by allowing additional elements to be included without compromising the rig’s integrity.
- Returns:
None # This function performs skinning of additional geometries but doesn’t return a value.
Code Examples:
>>> as_AttachBodyPartsToSkin() # Attaches non-skinned geometries like nails or clothes to skinned character meshes in Autodesk Maya.
- HyperRig.as_B4SkinMirrorCheck(self, precision=5, **shArgs)#
[shArgs: ]
Purpose:
:: Performs a pre-mirroring check on skin weights for a selected mesh in Autodesk Maya.
Similar to as_B4SkinMirrorCheck02, this function ensures that skin weights are properly set up before performing a skin weight mirroring operation.
- Parameters:
precision – <int> # The precision level for comparing vertex positions.
- Returns:
None # This function does not return any value but performs a check on the skin weights of the selected mesh.
Code Examples:
>>> precision_level = 5 >>> as_B4SkinMirrorCheck(precision_level) # Performs a pre-mirroring check on skin weights with specified precision.
- HyperRig.as_B4SkinMirrorCheck02(self, precision=4, manageJunk=1, **shArgs)#
[shArgs: ]
Purpose:
:: Performs a pre-mirroring check on skin weights for a selected mesh in Autodesk Maya.
This function is designed to ensure that skin weights are in a proper state before performing a skin weight mirroring operation.
- Parameters:
precision – <int> # The precision level for comparing vertex positions.
manageJunk – <bool> # Determines if additional cleanup or management actions should be performed.
- Returns:
None # This function does not return any value but performs a check on the skin weights of the selected mesh.
Code Examples:
>>> precision_level = 4 >>> manage_junk = True >>> as_B4SkinMirrorCheck02(precision_level, manage_junk) # Performs a pre-mirroring check on skin weights with specified precision and management actions.
Verify selection of meshRetrieve associated skin clusterActivate skin deformerIterate through vertices, store positionsDeactivate skin deformerIterate through vertices, compare positionsIdentify vertices not at bind poseShow result of checkStart/ Check Selection/ Get Skin Cluster/ Enable Skin Deformer/ Iterate Vertices with Skin On/ Disable Skin Deformer/ Iterate Vertices with Skin Off/ Check for Mismatch/ Display ResultEnd- Flow Chart Description:
This flowchart illustrates the as_B4SkinMirrorCheck02 function:
The process begins by verifying if a mesh is selected.
It retrieves the associated skin cluster of the selected mesh.
The skin deformer is activated to maintain skin influences.
The function iterates through all mesh vertices with the skin deformer on, storing their positions.
The skin deformer is then deactivated for subsequent operations.
It iterates through the vertices again with the skin deformer off, comparing their positions.
Any mismatch in vertex positions, indicating vertices not at the bind pose, are identified.
The result of the check is displayed, showing whether the mesh is ready for skin weight mirroring.
The process concludes after displaying the result.
- HyperRig.as_BakeDeformers_ToSkinClust(self, skinGeo=None, fastMethod=True, **shArgs)#
[shArgs: ]
Purpose:
:: Bakes deformers into a skin cluster, optimizing rig performance and reducing computation overhead.
Ideal for complex rigs where multiple deformers are used and performance optimization is crucial.
Follows a specific set of guidelines and settings to ensure smooth weight distribution and performance improvement.
- Parameters:
skinGeo – <str, optional> #The name of the skin geometry to which deformers are to be baked.
fastMethod – <bool, optional> #Determines whether to use a faster method for baking. Default is True.
- Returns:
None # This function does not return any value but bakes deformers into the skin cluster of the specified geometry.
Code Examples:
>>> as_BakeDeformers_ToSkinClust('character_mesh', True) # Bakes deformers into the skin cluster of 'character_mesh' using the fast method.
Usage:
1. Make sure max influences per vertex are set in advance so that after baking, weights distribution happens smoothly 2. Remove unused influences, Export Weights, Rebind and Import Weights (Performance imp: 30 Min to 30 Secs) 3. Mesh should be at bind pose before Baking starts 4. After baking without errors, if weights transfer is bad, lookout for non-unique names of skinned joints 5. Bind Settings: *Selected Joints *Closest in Hierarchy *Weight Blended *Interactive *Neighbours *Allow Multiple Bind Poses - OFF *Max Influences - 10 *Maintain Max Influences - OFF *Colorise Skeleton - OFF *Remove Unused Infs - OFF *Include Hidden Selection - OFF *Drop Off Rate - 8.5
If skin geometry is selectedIf no skin geometry selectedGet skin cluster from selected geometryIf non-unique joint names foundIf all joint names are uniqueCreate duplicate joints for each skinned jointAdd duplicated joints to skin clusterBegin baking processAnalyze weights for each jointRe-apply weights from duplicated joints to original jointsRemove duplicated jointsPerform clean up tasksStart/ Check Selection/ Get Skin ClusterEnd/ Check Unique Names/ Display Error/ Duplicate Joints/ Add To Skin Cluster/ Start Baking Process/ Analyze Weights/ Re-Apply Weights/ Remove Duplicates/ Clean Up- Flow Chart Description:
This flowchart illustrates the as_BakeDeformers_ToSkinClust function:
The process begins by checking if the skin geometry is selected. If no skin geometry is selected, the function ends.
It retrieves the skin cluster from the selected geometry.
The function checks for unique joint names. If non-unique names are found, an error is displayed and the process ends.
If all joint names are unique, the function duplicates each skinned joint.
The duplicated joints are added to the skin cluster.
The baking process starts, analyzing weights for each joint.
Weights are re-applied from duplicated joints to the original joints.
Duplicated joints are removed after the baking process.
The function performs clean-up tasks and concludes.
- HyperRig.as_BakeLattice_ToSkinClust(self, skinGeo=None, **shArgs)#
[shArgs: ]
Purpose:
:: Converts lattice deformations to skin cluster weights, streamlining the rig and enhancing performance.
Useful in situations where lattice deformers are initially used for shaping but need to be converted to skin clusters for animation.
The function targets the specified or selected skin geometry for the conversion.
- Parameters:
skinGeo – <str, optional> #The name of the skin geometry to which lattice deformations are to be baked.
- Returns:
None # This function does not return any value but converts lattice deformations to skin cluster weights on the specified geometry.
Code Examples:
>>> as_BakeLattice_ToSkinClust('character_mesh') # Converts lattice deformations to skin cluster weights on 'character_mesh'.
If skin geometry is selectedIf no skin geometry selectedGet lattice deformer from selected geometryIf no lattice deformer foundIf lattice deformer foundCreate duplicate joints for each skinned jointAdd duplicated joints to skin clusterBegin baking processAnalyze weights for each jointRe-apply weights from duplicated joints to original jointsRemove duplicated jointsPerform clean up tasksStart/ Check Selection/ Get Lattice DeformerEnd/ Check Lattice/ Display Error/ Duplicate Joints/ Add To Skin Cluster/ Start Baking Process/ Analyze Weights/ Re-Apply Weights/ Remove Duplicates/ Clean Up- Flow Chart Description:
This flowchart illustrates the as_BakeLattice_ToSkinClust function:
The process begins by checking if the skin geometry is selected. If no skin geometry is selected, the function ends.
It retrieves the lattice deformer from the selected geometry.
The function checks for the presence of a lattice deformer. If no lattice deformer is found, an error is displayed and the process ends.
If a lattice deformer is found, the function duplicates each skinned joint.
The duplicated joints are added to the skin cluster.
The baking process starts, analyzing weights for each joint.
Weights are re-applied from duplicated joints to the original joints.
Duplicated joints are removed after the baking process.
The function performs clean-up tasks and concludes.
- HyperRig.as_BendySetupBiped_Hands(self, **shArgs)#
[shArgs : ]
Purpose:
:: Sets up a bendy rig for the hands of a biped character, enhancing the naturalism and flexibility of hand animations.
Essential for detailed hand movements and gestures in bipedal character animation.
Bendy controls provide smooth deformation for fingers and palms, contributing to more lifelike and expressive hand motions.
Adaptable to various biped characters with different hand rigging needs.
- Returns:
None # This function does not return a value but sets up a bendy rig for the hands of a biped character.
Code Examples:
>>> as_BendySetupBiped_Hands() # Sets up a bendy rig for the hands of a biped character.
Start/ Initialize Bendy Setup/ Setup Left Elbow Bendy/ Setup Left Shoulder Bendy/ Setup Right Elbow Bendy/ Setup Right Shoulder Bendy/ Finalize Bendy SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BendySetupBiped_Hands function:
The process begins with initializing the bendy setup for biped hands.
Implements bendy controls for the left elbow, designed for enhanced hand animation.
Sets up bendy controls for the left shoulder.
Configures bendy controls for the right elbow, focusing on hand movements.
Establishes bendy controls for the right shoulder.
Completes the setup process by finalizing the bendy rig for the hands of a biped character and ends.
- HyperRig.as_BendySetupBiped_Legs(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a bendy setup for the legs of a biped character, providing enhanced control and flexibility for leg animations.
Ideal for biped characters that require detailed leg movements and deformations.
Bendy controls allow for smooth and natural leg bending, crucial for realistic character animation.
Customizable setup to accommodate various bipedal characters and animation styles.
- Returns:
None # This function does not return a value but creates a bendy setup for the legs of a biped character.
Code Examples:
>>> as_BendySetupBiped_Legs() # Creates a bendy setup for the legs of a biped character.
Setup for left kneeSetup bendy controls for left kneeSetup bendy controls for left hipSetup bendy controls for right kneeSetup bendy controls for right hipStart/ Initialize Bendy Setup/ Create Bendy Setup Left Knee/ Create Bendy Setup Left Hip/ Create Bendy Setup Right Knee/ Create Bendy Setup Right HipEnd- Flow Chart Description:
This flowchart illustrates the as_BendySetupBiped_Legs function:
The process begins with initializing the bendy setup for the legs of a biped character.
Bendy controls are created for the left knee, enhancing flexibility in leg movements.
The setup then proceeds to create bendy controls for the left hip.
Following the left side, bendy controls are created for the right knee.
Finally, the process completes with the creation of bendy controls for the right hip.
- HyperRig.as_BendySetup_FrntLegs_RearPV(self, **shArgs)#
[shArgs : ]
Purpose:
:: Configures a bendy setup for the front legs of a quadruped character with rear pole vector (PV) orientation.
Enhances the realism and flexibility of front leg movements in quadrupedal characters, especially those requiring rear PV orientation.
Incorporates bendy controls to provide smooth deformations and more natural limb movements.
Adaptable to various quadruped characters with different anatomical structures and animation requirements.
- Returns:
None # This function does not return a value but configures a bendy setup for the front legs of a quadruped character.
Code Examples:
>>> as_BendySetup_FrntLegs_RearPV() # Configures a bendy setup for the front legs of a quadruped character with rear PV.
Start/ Initialize Bendy Setup/ Setup Left Elbow Bendy/ Setup Left Shoulder Bendy/ Setup Right Elbow Bendy/ Setup Right Shoulder Bendy/ Finalize Bendy SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BendySetup_FrntLegs_RearPV function:
The process begins with initializing the bendy setup for the front legs.
Sets up bendy controls for the left elbow with rear PV orientation.
Configures bendy controls for the left shoulder.
Proceeds to set up bendy controls for the right elbow with rear PV orientation.
Establishes bendy controls for the right shoulder.
Completes the bendy setup for the front legs of a quadruped character and ends.
- HyperRig.as_BendySetup_RearLegs_FrontPV(self, **shArgs)#
[shArgs : ]
Purpose:
:: Implements a bendy setup for the rear legs of a quadruped character with front pole vector (PV) orientation.
Tailored for quadruped characters that require front PV orientation in their rear legs for realistic animation.
Provides a smooth deformation system with bendy controls for enhanced flexibility and natural leg movements.
Easily adaptable to various quadruped designs and rigging requirements.
- Returns:
None # This function does not return a value but implements a bendy setup for the rear legs of a quadruped character.
Code Examples:
>>> as_BendySetup_RearLegs_FrontPV() # Implements a bendy setup for the rear legs of a quadruped character with front PV.
Start/ Initialize Bendy Setup/ Setup Left Knee Bendy/ Setup Left Hip Bendy/ Setup Right Knee Bendy/ Setup Right Hip Bendy/ Finalize Bendy SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BendySetup_RearLegs_FrontPV function:
Begins with initializing the bendy setup for the rear legs.
Implements bendy controls for the left knee with front PV orientation.
Sets up bendy controls for the left hip.
Configures bendy controls for the right knee with front PV orientation.
Establishes bendy controls for the right hip.
Completes the process by finalizing the bendy setup for the rear legs of a quadruped character and ends.
- HyperRig.as_BuildArm_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Constructs a complete arm rig setup in Autodesk Maya, suitable for characters with a variety of arm configurations.
This function creates an arm rig, which includes options for stretch and squash, auto clavicle, and bendy setups.
It supports mirror symmetry, enabling the creation of rigs for both left and right arms in a symmetrical fashion.
The setup is adaptable to different types of characters, including bipeds and creatures with unique arm structures.
Additional options like bendy setup provide enhanced control over arm deformation for more realistic character movement.
The function is part of a larger rigging system, ensuring seamless integration with other body parts like hands and torso.
- Returns:
None # This function doesn’t return a value but configures an arm rig in the Maya scene.
Code Examples:
>>> as_BuildArm_Setup() # Initializes and configures an arm rigging setup for characters in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchySetup basic arm rig with optionsIf bendy setup is enabledIf bendy setup is not enabledStart/ Check Global Hierarchy/ Create Hierarchy/ Create Arms Setup/ Check Bendy Setup/ Apply Bendy SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildArm_Setup function:
The process starts with a check for the existence of a Global Control hierarchy.
If not present, the necessary hierarchy is created including the Global Control.
The basic arm setup is then constructed, which includes options like stretch and squash, and auto clavicle.
The process checks if a bendy setup is enabled.
If enabled, the bendy setup is applied to the arm rig, enhancing arm deformation control.
The process concludes after setting up the arm rig, with or without the bendy setup.
- HyperRig.as_BuildBirdFeathers_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a feather control system for bird characters in Autodesk Maya, allowing for detailed animation of feather movements.
This function is specialized in setting up feather controls for bird characters, providing animators with precise control over feather movements.
It enhances the realism of bird animations by allowing individual feather manipulation.
The setup is designed to work with a variety of bird species, making it versatile for different types of avian characters.
It integrates smoothly with existing bird rigs, ensuring feathers move in sync with the body and wing animations.
The function simplifies the complex task of animating feathers, making it more accessible for animators.
- Returns:
None # This function configures feather controls but doesn’t return a value.
Code Examples:
>>> as_BuildBirdFeathers_Setup() # Initiates a feather control system for bird characters in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchySetup feather controls for bird characterStart/ Check Global Hierarchy/ Create Hierarchy/ Create Feather ControlsEnd- Flow Chart Description:
This flowchart illustrates the as_BuildBirdFeathers_Setup function:
The process starts by checking for the existence of a Global Control hierarchy.
If not present, the necessary hierarchy including the Global Control is created.
The feather control setup is then initiated, focusing on individual feather manipulation for bird characters.
The process concludes after completing the feather control setup, integrating with existing bird rigs for realistic feather movements.
- HyperRig.as_BuildBirdWing_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Constructs a bird wing rig in Autodesk Maya, incorporating features like stretch and squash, and bendy setup for enhanced realism.
This function is designed to create a detailed bird wing rig, suitable for animating bird characters with realistic wing movements.
It includes options for stretch and squash, allowing the wings to extend and compress naturally during animation.
The bendy setup feature adds additional control for nuanced wing deformations, enhancing the quality of the animation.
The function works seamlessly with other rig components, ensuring the wing rig integrates well with the overall character rig.
It is adaptable to various bird species, offering flexibility in rigging different types of bird characters.
- Returns:
None # This function sets up a bird wing rig but doesn’t return a value.
Code Examples:
>>> as_BuildBirdWing_Setup() # Sets up a bird wing rig with stretch, squash, and bendy features in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchySetup basic bird wing rigIf bendy setup is enabledIf bendy setup is not enabledStart/ Check Global Hierarchy/ Create Hierarchy/ Create Bird Wing Setup/ Check Bendy Setup/ Apply Bendy SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildBirdWing_Setup function:
The process begins with checking for the existence of a Global Control hierarchy.
If not present, the necessary hierarchy including the Global Control is created.
The bird wing setup is then initiated, incorporating stretch and squash features for realistic wing movements.
It checks if a bendy setup is enabled for the wings.
If enabled, the bendy setup is applied, adding nuanced control for wing deformations.
The process concludes after completing the bird wing rig setup, with or without the bendy setup.
- HyperRig.as_BuildBodyModule(self, **shArgs)#
[shArgs : ]
Purpose:
:: Constructs body modules in Autodesk Maya based on the selected module from the UI radio button groups.
This function dynamically constructs a body module based on user interface selections.
It supports constructing various body parts like Spine, Arm, Leg, Hand, Neck, Eyes, Tongue, and more.
Utilizes the HyperRig class to build different types of rig modules.
- Parameters:
module – <int> #Module number selected from the UI, determines the type of body module to build.
- Returns:
None #No return value, it builds body modules in the Maya scene.
Code Examples:
>>> module = 1 >>> as_BuildBodyModule(module)
If module is providedIf module is not providedConstruct body module based on selected moduleStart/ Check Module/ Build ModuleEnd- Flow Chart Description:
This flowchart illustrates the as_BuildBodyModule function:
The process starts by checking if a module number is selected from the UI.
If a module is selected, the function constructs a body module based on the selected module type, such as Spine, Arm, Leg, Hand, Neck, Eyes, Tongue, etc.
- HyperRig.as_BuildDynChain_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Configures a dynamic chain setup in Autodesk Maya, typically used for creating dynamic effects in rigging, like tails, ropes, etc.
This function initializes and configures a dynamic chain setup based on various input parameters from the user interface.
It checks the computer’s hostname to ensure the module isn’t executed on unauthorized machines (WIP module check).
The setup involves creating various dynamic attributes and controls, adjusting settings for stretch and squash, flex at ends, control types, etc.
The function manages the creation of FK controls, dynamic IK control groups, and other necessary rigging components for the dynamic chain.
It is capable of handling both joint-based and curve-based dynamic chains.
- Returns:
None # This function doesn’t return a value but establishes a dynamic chain setup in the Maya scene.
Code Examples:
>>> as_BuildDynChain_Setup() # Executes the process of setting up a dynamic chain rigging system in Autodesk Maya.
If hostname matchesDisplay WIP messageIf hostname doesn't matchSetup initial variables and conditionsIf initial selection is a jointRename joints according to prefixSelect renamed jointsIf initial selection is not a jointCreate spine setup for dynamic chainAssign switch for dynamic attributesCreate dynamic chain setupCreate FK control group for dynamic chainParent FK top groupConstrain FK and IK groups to upstream jointUpdate hair systems in the sceneStart/ Check HostName/ WIP Module MessageEnd/ Setup Variables/ Determine Initial Selection/ Rename Joints/ Select Renamed Joints/ Create Dynamic Chain/ Create Spine Setup/ Assign Attribute Switch/ Create FK Control Group/ Parent Top Group/ Constrain to Upstream Joint/ Update Hair Systems- Flow Chart Description:
This flowchart illustrates the as_BuildDynChain_Setup function:
The process starts by checking the hostname to confirm if the module is Work-In-Progress (WIP).
If the hostname matches, it displays a WIP module message and ends the process.
If not, it sets up initial variables and conditions for dynamic chain creation.
Determines if the initial selection is a joint and either renames joints or creates a spine setup based on the selection.
Assigns a switch for dynamic attributes.
Creates the dynamic chain setup.
Constructs FK control groups for the dynamic chain.
Parents the FK top group to the appropriate parent group.
Constrains the FK and IK groups to an upstream joint if specified.
Updates the hair systems in the scene.
- HyperRig.as_BuildEyes_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Sets up a comprehensive eye rig in Autodesk Maya, enabling detailed control over eye movements and expressions.
This function constructs an eye rig, essential for character animation, providing control over eye direction, blink, and expressions.
It includes features that allow for realistic eye movements, critical for conveying emotions and reactions in character animation.
The setup is designed to be compatible with various character types, from humans to creatures, offering flexibility in rigging.
The eye rig can be integrated with facial rigs and head setups, ensuring cohesive and natural eye movements in relation to other facial features.
It simplifies the complex process of eye rigging, making it more accessible for animators and riggers.
- Returns:
None # This function creates an eye rig but doesn’t return a value.
Code Examples:
>>> as_BuildEyes_Setup() # Initiates an eye rig setup for detailed control over eye movements in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchyGlobal_Control existsSetup eye controls and constraintsStart/ Check Global Hierarchy/ Create Hierarchy/ Create Eye SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildEyes_Setup function:
The process starts by checking the existence of a Global Control hierarchy.
If the Global Control is not present, it creates a new hierarchy including Global Control.
The function then initiates the creation of the eye rig setup.
This setup includes establishing eye controls and constraints for detailed eye movement control.
The comprehensive eye rig is now integrated, enabling precise control over eye direction, blink, and expressions.
- HyperRig.as_BuildHand_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Establishes a complete hand rig setup in Autodesk Maya, including finger joints and additional palm controls for enhanced realism.
This function creates a detailed hand rig, providing intricate control over finger movements and palm gestures.
It includes the creation of finger joints, ensuring realistic finger bending and articulation.
The option for palm extras adds extra functionality, allowing for more nuanced hand expressions and gestures.
The hand rig setup is integral for character animation, enabling the animator to convey emotions and actions through hand movements.
It seamlessly integrates with arm rigs, ensuring a cohesive and functional upper limb rigging system.
- Returns:
None # This function sets up a hand rig but doesn’t return a value.
Code Examples:
>>> as_BuildHand_Setup() # Constructs a detailed hand rig with finger joints and palm controls in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchySetup individual finger jointsConfigure finger and palm controlsStart/ Check Global Hierarchy/ Create Hierarchy/ Create Finger Joints/ Create Finger SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildHand_Setup function:
The process begins by checking if a Global Control hierarchy exists in the Maya scene.
If not present, the necessary hierarchy including the Global Control is created.
Subsequently, finger joints are set up to ensure realistic articulation and movement.
The finger setup, including palm controls, is then created to provide detailed hand rigging.
The setup concludes with the integration of the hand rig with the overall character rig for cohesive animation capabilities.
- HyperRig.as_BuildLeg_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a leg rig in Autodesk Maya for biped or quadruped characters, featuring stretch and squash, auto clavicle, and bendy setup options.
Tailored for both biped and quadruped characters, this function provides a versatile solution for leg rigging.
The stretch and squash feature allows for dynamic leg movements, enhancing the realism of animations.
An auto clavicle option is included for added rigging control, particularly beneficial for characters with complex leg-to-body connections.
The bendy setup offers additional control over leg deformations, crucial for detailed character animations.
The function also supports the creation of toe joints, further extending the rig’s capabilities for intricate foot animations.
- Returns:
None # This function configures a leg rig but doesn’t return a value.
Code Examples:
>>> as_BuildLeg_Setup() # Sets up a leg rig for biped or quadruped characters with advanced features in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchyBiped CharacterQuadruped CharacterSet up leg rig for biped characterIf Bendy Setup is selectedNo Bendy SetupSet up leg rig for quadruped characterIf Bendy Setup is selectedNo Bendy SetupStart/ Check Global Hierarchy/ Create Hierarchy/ Select Character Type/ Create Leg Setup (Biped)/ Create Leg Setup (Quadruped)/ Check Bendy Setup (Biped)/ Apply Bendy Setup (Biped)End (Biped)/ Check Bendy Setup (Quadruped)/ Apply Bendy Setup (Quadruped)End (Quadruped)- Flow Chart Description:
This flowchart depicts the as_BuildLeg_Setup function:
Starts with checking the existence of a Global Control hierarchy in the scene.
If not present, a new hierarchy including Global Control is created.
The character type (biped or quadruped) is then selected to determine the leg setup process.
For bipeds, a specific leg setup is initialized, followed by checking for the bendy setup option.
If the bendy setup is selected for bipeds, it is applied; otherwise, the process ends for biped characters.
Similarly, for quadrupeds, a leg setup is created with a check for the bendy setup option.
The bendy setup is applied for quadrupeds if selected, concluding the process for quadruped characters.
- HyperRig.as_BuildNeckHead_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Constructs a rigging setup for the neck and head of a character, adaptable to various rig types and character styles.
Enables detailed control over neck and head movements, crucial for expressive character animation.
Supports different setup types to cater to a wide range of character designs and animation requirements.
Integrates seamlessly with existing rig structures, such as spine and shoulder setups.
- Returns:
None # This function does not return a value but constructs a neck and head rigging setup.
Code Examples:
>>> as_BuildNeckHead_Setup() # Constructs a rigging setup for the neck and head of the selected character.
Setup Type ProvidedNo Setup TypeStart/ Initialize Parameters/ Check Setup Type/ Create Neck Curves/ Error: No Setup Type/ Define Axis Settings/ Create Neck/Head Ctrls/ Setup Joints/ Finalize Setup/ End- Flow Chart Description:
This flowchart illustrates the as_BuildNeckHead_Setup function:
The process begins with initializing parameters such as setupType, charType, numCtrls, neckCurv, jawCurv, ikGrp, chestJnt, jointsGrp, globalCtrl, primAxis, secAxis, and secAxisDir.
- Checks if a setup type is provided.
If a setup type is provided, it creates neck curves for the setup.
If no setup type is given, an error message is displayed.
Defines axis settings based on primary and secondary axis choices.
Creates neck and head controls based on the chosen control shape.
Sets up joints for the neck and head rig.
Finalizes the neck and head rig setup.
Completes the process and ends.
- HyperRig.as_BuildQuadFLeg_FrontPV(self, **shArgs)#
[shArgs : ]
Purpose:
:: Sets up a quadruped front leg rig with a front pole vector (PV), specifically designed for creatures with front-pivoting legs.
Enhances the realism and flexibility of quadrupedal characters, especially those that require front-pivoting leg movements.
Facilitates a natural and accurate range of motion for animal characters in animation.
Integrates with the overall quadruped rig, maintaining consistency and functionality.
- Returns:
None # This function does not return a value but sets up a front-pivoting leg rig for a quadruped.
Code Examples:
>>> as_BuildQuadFLeg_FrontPV() # Sets up a front-pivoting leg rig for a quadruped character.
Start/ Initialize Setup/ Define Leg Names/ Create Base Joints/ Create Left Leg Joints/ Mirror To Right Leg/ Duplicate Leg Joints/ Create IK/FK Mix Joints/ Create IK Handles/ Create IK/FK Switches/ Create FK Controls/ Create Reverse Foot Setup/ Create Foot Controls/ Create Pole Vector Controls/ Create Clavicle SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildQuadFLeg_FrontPV function:
The process begins by initializing the setup parameters.
It defines the names for left and right leg joints.
Creates base joints for the leg setup.
Generates joints for the left leg.
Mirrors the joints to create the right leg setup.
Duplicates leg joints for IK, FK, and auto setups.
Creates IK/FK mix joints for a bendy setup.
Generates IK handles for the leg joints.
Creates IK/FK switches for controlling the leg rig.
Establishes FK controls for the leg joints.
Implements a reverse foot setup for detailed foot control.
Sets up foot controls for IK handling.
Creates pole vector controls for IK leg chains.
Finalizes the setup by creating clavicle controls and setups.
Completes the quadruped front leg rigging setup and ends.
- HyperRig.as_BuildQuadFLeg_RearPV(self, **shArgs)#
[shArgs : ]
Purpose:
:: Constructs a rigging setup for the front legs of a quadruped character with rear pole vector orientation, including reverse foot and bendy options.
Customizes the rigging of quadruped front legs to accommodate rear PV orientation, crucial for certain animal locomotion.
Integrates reverse foot setup for enhanced control over foot and toe movements.
Incorporates bendy controls for smoother leg deformations and natural leg movements.
Option to include toe rigging for additional animation detail.
- Returns:
None # This function does not return a value but constructs a comprehensive rigging setup for the front legs of a quadruped character.
Code Examples:
>>> as_BuildQuadFLeg_RearPV() # Constructs a rigging setup for the front legs of a quadruped character with rear PV orientation.
If createToes is trueIf createToes is falseIf autoClavicle is trueIf autoClavicle is falseIf Bendy Setup is trueIf Bendy Setup is falseIf createToes is trueIf createToes is falseStart/ Initialize Quad Front Leg Setup/ Create Joints/ Duplicate Joints for FK and IK/ Create IKFK Mix Joints/ Create Toe Joints/ Setup IK Handles/ Create IKFK Switch/ Create FK Controls/ Setup Reverse Foot/ Setup Foot Controls/ Setup Pole Controls/ Setup Visibility Switches/ Create Auto Clavicle/ Create Clavicle Control/ Setup Bendy Controls/ Check Toes Setup/ Setup Toes/ Finalize SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildQuadFLeg_RearPV function:
Begins with initializing the setup for the front legs of a quadruped with rear PV orientation.
Proceeds to create the initial joint structure for the legs.
Duplicates joints for FK and IK setups.
Creates IKFK mix joints for bendy control.
Optionally creates toe joints if enabled.
Sets up IK handles for leg motion control.
Implements an IKFK switch for flexibility between IK and FK animations.
Creates FK controls for manual manipulation of leg joints.
Establishes a reverse foot setup for advanced foot control.
Sets up foot controls for dynamic foot and toe animation.
Adds pole controls for IK leg behavior adjustments.
Implements visibility switches for control display options.
Optionally creates an auto clavicle setup, if enabled.
Develops clavicle control for shoulder and upper leg movement.
Optionally sets up bendy controls for smoother leg deformations, if enabled.
Checks if toe setup is required and proceeds accordingly.
Finalizes the setup process and ends.
- HyperRig.as_BuildQuadFLeg_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Builds a quadruped front leg rigging setup, with options for different pivot setups to suit various quadrupedal creatures.
Tailors the rigging of quadruped front legs for enhanced realism and flexibility in animal movement.
Provides options for front and rear pivot setups to match the anatomical and movement requirements of different animals.
Streamlines the process of rigging quadrupedal characters, saving time and ensuring consistency.
- Returns:
None # This function does not return a value but builds a rigging setup for quadruped front legs.
Code Examples:
>>> as_BuildQuadFLeg_Setup() # Builds a quadruped front leg rigging setup based on the selected setup type.
Front PV SetupRear PV SetupStart/ Initialize Parameters/ Check Setup Type/ Build Quad Front Leg - Front PV/ Build Quad Front Leg - Rear PVEnd- Flow Chart Description:
This flowchart illustrates the as_BuildQuadFLeg_Setup function:
The process starts with initializing parameters such as setupType.
- It checks the setup type selected by the user.
If the ‘Front PV’ setup is chosen, the function proceeds to build a quadruped front leg rig using the Front PV setup.
If the ‘Rear PV’ setup is chosen, the function builds the quadruped front leg rig using the Rear PV setup.
Completes the quadruped front leg rigging process and ends.
- HyperRig.as_BuildQuadRearLeg_FrontPV(self, **shArgs)#
[shArgs : ]
Purpose:
:: Constructs a comprehensive rigging setup for the rear legs of a quadruped character with a front pole vector orientation.
This function facilitates the creation of a detailed and functional rig for the rear legs of quadruped characters, focusing on front pole vector orientation.
It includes the creation of IK handles, FK controls, reverse foot setup, auto knee setup, and clavicle control for the legs.
Additionally, it offers optional bendy and toe setups for enhanced flexibility and realism in character animation.
- Returns:
None # This function does not return a value but establishes a detailed rigging system for the rear legs of a quadruped character.
Code Examples:
>>> as_BuildQuadRearLeg_FrontPV() # Executes the process of setting up the rear leg rigging with a front pole vector orientation for a quadruped character.
Create leg jointsCreate FK, IK & Auto jointsRequired for bendy setupCreate IK handle for legCreate IK-FK switch controlsCreate FK joint controlsSetup reverse foot joints and IKCreate foot controlsSetup pole controlsCreate auto knee controlCreate clavicle controlSetup optional bendy controlsSetup optional toes controlsStart/ Create Joints/ Duplicate Joints/ Create IKFK Mix Joints/ Create Leg IK/ Create IKFK Switch/ Create FK Controls/ Reverse Foot Setup/ Create Foot Controls/ Pole Control Setup/ Auto Knee Setup/ Create Clavicle Control/ Optional Bendy Setup/ Optional Toes SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildQuadRearLeg_FrontPV function:
The process starts by creating joints for the rear legs of a quadruped character.
It involves duplicating joints for FK, IK, and auto systems.
IKFK mix joints are created for bendy setup, followed by the creation of leg IK handles.
IK-FK switch controls are set up for seamless switching between IK and FK modes.
FK joint controls are then created for animating the FK system.
The reverse foot setup is implemented for detailed foot control.
Foot controls are created, including pole controls for IK leg movement.
An auto knee setup is added for dynamic knee control.
Clavicle control is established for additional leg movement.
Optional bendy and toe setups are implemented if selected, for enhanced flexibility and realism in character animation.
- HyperRig.as_BuildQuadRearLeg_RearPV(self, **shArgs)#
[shArgs : ]
Purpose:
:: Implements a comprehensive rigging setup for the rear legs of a quadruped character with a rear pole vector orientation.
This function provides a detailed rigging structure for the rear legs of quadruped characters, focusing on rear pole vector orientation.
It encompasses creating IK handles, FK controls, reverse foot setup, auto knee setup, clavicle control, and optional toes setup for the rear legs.
The setup is designed to offer a high level of control and flexibility for animating quadruped characters, ensuring realistic movement and poses.
- Returns:
None # This function doesn’t return a value but establishes a sophisticated rigging system for the rear legs of a quadruped character.
Code Examples:
>>> as_BuildQuadRearLeg_RearPV() # Executes the process of setting up the rear leg rigging with a rear pole vector orientation for a quadruped character.
Create rear leg jointsDuplicate FK, IK, and Auto jointsCreate IKFK mix joints for bendy setupCreate IK handle for legCreate IK-FK switch controlsCreate FK joint controlsSetup reverse foot joints and IKCreate foot controlsSetup pole controlsCreate clavicle controlStart/ Create Joints/ Duplicate Joints/ Create IKFK Mix Joints/ Create Leg IK/ Create IKFK Switch/ Create FK Controls/ Reverse Foot Setup/ Create Foot Controls/ Pole Control Setup/ Create Clavicle ControlEnd- Flow Chart Description:
This flowchart illustrates the as_BuildQuadRearLeg_RearPV function:
The process begins with creating joints for the rear legs of a quadruped character, focusing on rear pole vector orientation.
It duplicates joints for FK, IK, and auto systems.
IKFK mix joints are then created for bendy setup, followed by the creation of leg IK handles.
IK-FK switch controls are established for smooth switching between IK and FK modes.
FK joint controls are created for animating the FK system.
The reverse foot setup is implemented for detailed foot control.
Foot controls are then created, including pole controls for IK leg movement.
Finally, clavicle control is established for additional leg movement.
- HyperRig.as_BuildQuadRearLeg_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Establishes the rigging setup for the rear legs of a quadruped character, offering options for front or rear pole vector orientation.
Facilitates the creation of a functional and versatile rig for the rear legs of quadruped characters.
Provides options for pole vector orientation, allowing customization based on the specific movement requirements of the character.
Simplifies the rigging process for animators and riggers working on quadruped models.
- Returns:
None # This function does not return a value but sets up the rigging for the rear legs of a quadruped character based on the selected pole vector orientation.
Code Examples:
>>> as_BuildQuadRearLeg_Setup() # Sets up the rigging for the rear legs of a quadruped character based on the selected pole vector orientation.
Front PVRear PVStartCheck Setup Type/ Setup Front PV/ Setup Rear PVEnd- Flow Chart Description:
This flowchart illustrates the as_BuildQuadRearLeg_Setup function:
The process begins by checking the selected setup type for the rear legs of a quadruped character.
Based on the selection, it either sets up the rear legs with a Front PV orientation or a Rear PV orientation.
The setup concludes once the appropriate pole vector orientation is applied and configured.
- HyperRig.as_BuildSnake_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Implements a specialized rigging setup for snake-like characters in Autodesk Maya.
This function is specifically designed to create a rigging setup for snake characters, taking into account the unique movement and flexibility of such creatures.
It supports various options like stretch and squash, control shapes, joint axis orientation, etc., allowing for a customizable rig.
The setup includes the creation of a spine setup with FK/IK controls, offering full control over the snake’s movement and posing.
Additional options like mirror setup, bendy setups, and extra control groups are available for enhanced rigging flexibility.
The function is adaptable for different types of snake characters, ensuring versatility in rigging scenarios.
- Returns:
None # This function doesn’t return a value but configures a comprehensive rigging setup for snake characters.
Code Examples:
>>> as_BuildSnake_Setup() # Sets up a rigging system for snake characters with customized options in Autodesk Maya.
Setup initial variables for snake riggingIf initial selection existsIf no initial selectionShow error messageCreate hierarchy if not existsIf selection existsCreate spine setup for snakeStart/ Setup Variables/ Determine Initial Selection/ Create Hierarchy/ Display ErrorEnd/ Check Selection/ Create Spine Setup- Flow Chart Description:
This flowchart illustrates the as_BuildSnake_Setup function:
The process begins by setting up initial variables required for snake rigging.
It then determines if there is an initial selection in the scene.
If no initial selection is found, an error message is displayed, and the process ends.
If an initial selection exists, the function checks if a global control hierarchy is present and creates one if not.
Finally, it creates the spine setup for the snake character, tailoring the rigging to the specific requirements of snake-like movement.
- HyperRig.as_BuildSpine_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a comprehensive spine rigging setup in Autodesk Maya, suitable for various character types like bipeds or quadrupeds.
This function is designed to construct a spine rig, which is a crucial part of character rigging, providing flexibility and control over the character’s upper body movements.
It supports the inclusion of root and COG (Center of Gravity) controls, offering extensive control over the character’s balance and posture.
The setup is adaptable for different character types, ensuring its applicability across a wide range of character designs.
Additional hierarchy creation ensures that the spine rig integrates seamlessly with other rigging components within the character.
The function offers an efficient way to create a realistic and functional spine rig, enhancing the character’s animation possibilities.
- Returns:
None # This function doesn’t return a value but configures a spine rigging system suitable for various character types in Maya.
Code Examples:
>>> as_BuildSpine_Setup() # Initializes and configures a spine rigging setup for characters in Autodesk Maya.
If Global Control doesn't existCreate necessary hierarchy for riggingIf Global Control existsSetup initial variables for spine riggingIf character is BipedCreate spine setup for biped charactersIf character is not BipedCreate spine setup for quadruped charactersStart/ Check Global Control/ Create Hierarchy/ Setup Variables/ Determine Character Type/ Create Spine SetupEnd/ Create Spine Setup Quad- Flow Chart Description:
This flowchart illustrates the as_BuildSpine_Setup function:
The process begins by checking if a global control exists. If not, it creates the necessary hierarchy for rigging.
It sets up initial variables for spine rigging.
The function then determines the character type (Biped or others).
For Biped characters, it creates a standard spine setup.
For other character types, it creates a specialized spine setup for quadrupeds.
The function concludes after establishing the spine setup.
- HyperRig.as_BuildToes_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Sets up rigging for the toes in characters within Autodesk Maya, suitable for both biped and quadruped characters.
This function focuses on the rigging of toes, allowing for detailed control and animation of toe movements.
It supports different character types, like bipeds and quadrupeds, ensuring versatility in the rigging process.
The setup includes options for upstream controls and joint assignments, facilitating integration with existing leg rigs.
It provides an easy and efficient way to add realistic toe movements to character rigs, enhancing the overall animation quality.
The function is part of a larger rigging system, complementing setups for legs, arms, and other body parts.
- Returns:
None # This function doesn’t return a value but establishes a toe rigging setup in the Maya scene.
Code Examples:
>>> as_BuildToes_Setup() # Executes the process of setting up toe rigging for characters in Autodesk Maya.
Setup initial variables for toes riggingIf character is BipedCreate IK setup for toes in biped charactersIf character is not BipedStart/ Setup Variables/ Determine Character Type/ Create Toes Setup IKEnd- Flow Chart Description:
This flowchart illustrates the as_BuildToes_Setup function:
The process begins by setting up initial variables needed for toes rigging.
It then determines the character type (Biped or others).
If the character is a Biped, it proceeds to create an IK setup for the toes.
The function ends after setting up the toes for Biped characters or if the character type is not Biped.
- HyperRig.as_BuildTongue_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a comprehensive rigging setup for the tongue of a character, enabling dynamic and realistic tongue movements.
Enhances the expressiveness and realism of characters through detailed tongue animations.
Tailored to allow smooth bending and twisting movements of the tongue, essential for lifelike character expressions and speech animations.
Adaptable to a variety of character designs, ensuring compatibility across different models.
- Returns:
None # This function does not return a value but creates a rigging setup for the tongue of a character.
Code Examples:
>>> as_BuildTongue_Setup() # Creates a rigging setup for the tongue of a character.
Configure tongue riggingStart/ Create Tongue SetupEnd- Flow Chart Description:
This flowchart illustrates the as_BuildTongue_Setup function:
The process starts with creating a comprehensive rigging setup for the tongue of a character.
It ensures dynamic and realistic tongue movements, enhancing character expressiveness and realism.
The setup is adaptable to various character designs and is tailored for smooth bending and twisting movements of the tongue.
- HyperRig.as_CopyPasteShapes(self, **shArgs)#
[shArgs : cl=ctrlList]
Purpose:
:: Copies and pastes shapes between selected control objects in Autodesk Maya.
Useful for duplicating shape attributes across multiple control objects.
Allows for easy replication of control shapes, enhancing the consistency of rig controls.
Handles different scenarios based on the number of selected controls.
- Parameters:
ctrlList – <list> # List of selected control objects in Maya.
- Returns:
None # This function does not return a value but alters the shapes of control objects in Maya.
Code Examples:
>>> as_CopyPasteShapes(ctrlList=['ctrl1', 'ctrl2', 'ctrl3']) # Copies the shape of the last control in the list to the others.
If less than 2If exactly 2If more than 2Start/ Check Control List Length/ Error Message/ Copy Paste Shapes for 2 Controls/ Copy Paste Shapes for Multiple ControlsEnd/ Select Second Control/ Select All Controls but Last- Flow Chart Description:
This flowchart illustrates the as_CopyPasteShapes function:
The process starts by checking the length of the control list.
If less than 2 controls are selected, an error message is displayed.
If exactly 2 controls are selected, shapes from the first control are copied and pasted to the second control.
If more than 2 controls are selected, shapes from the last control are copied and pasted to all other controls.
The function then selects the appropriate controls based on the number of controls in the list for visual feedback.
- HyperRig.as_CreateBirdFeathersTemplate(self, **shArgs)#
[shArgs : ]
Purpose:
:: Initiates the creation of a bird feathers template in Autodesk Maya.
This function is designed to be executed after the bird wing module has been created.
It provides a notification to proceed with building the module for bird feathers directly after the wing setup.
- Returns:
None # This function does not return a value but serves as a prompt for the next step in rigging.
Code Examples:
>>> as_CreateBirdFeathersTemplate() # Initiates the process to create a bird feathers template following the wing module creation.
Start/ Notify to Build Feather Module/ Frame SelectionEnd- Flow Chart Description:
This flowchart illustrates the as_CreateBirdFeathersTemplate function:
Notifies the user to build the bird feathers module immediately after creating the bird wing module.
Frames the current selection in Maya for visual reference.
- HyperRig.as_CreateBirdWingTemplate(self, **shArgs)#
[shArgs : hc=handsCurve]
Purpose:
:: Creates a bird wing template in Autodesk Maya using a defined curve.
This function sets up a basic bird wing rigging structure.
It generates a NURBS curve to define the bird’s wing path and applies control handles for rigging and animation.
- Parameters:
handsCurve – <str> # Name of the curve used to create the bird wing template.
- Returns:
None # This function does not return a value but sets up the bird wing rig in the scene.
Code Examples:
>>> curve_name = "L_Hands_Curve" >>> as_CreateBirdWingTemplate(curve_name) # This will create a bird wing setup using the specified curve.
Start/ Create Hands Curve/ Create Bird Wing Controls/ Parent Sub Controls/ Template Control/ Finalize Bird Wing TemplateEnd- Flow Chart Description:
This flowchart illustrates the as_CreateBirdWingTemplate function:
Begins by creating a NURBS curve ‘L_Hands_Curve’ to define the bird wing path.
Generates controls for the bird wing setup based on the ‘L_Hands_Curve’.
Parents sub-controls to main controls as part of rig setup.
Templates the control for visual aid in the rig.
Finalizes the bird wing template setup in the Maya scene.
- HyperRig.as_CreateBlendShapeAttrs(self, **shArgs)#
[shArgs : ta=txtAttrs]
Purpose:
:: Creates custom blend shape attributes in Autodesk Maya based on user input.
Facilitates the creation of blend shape attributes for facial rigging or similar purposes.
Allows for dynamic and user-driven customization of blend shape controls.
Enables efficient and tailored creation of blend shape attributes to meet specific rigging requirements.
- Parameters:
txtAttrs – <str> # Comma-separated string of attribute names to create as blend shape controls.
- Returns:
None # The function does not return a value but creates specified blend shape attributes in Maya.
Code Examples:
>>> as_CreateBlendShapeAttrs(txtAttrs='smile, frown, blink') # Creates blend shape attributes for 'smile', 'frown', and 'blink'.
If attributes providedIf no attributes providedStart/ Check Text Attributes/ Create AttributesEnd- Flow Chart Description:
This flowchart illustrates the as_CreateBlendShapeAttrs function:
The function starts by checking if blend shape attribute names are provided.
If attribute names are given, it creates blend shape attributes based on the provided names.
The function concludes after creating the specified attributes or if no attributes are provided.
- HyperRig.as_CreateConstrainBlendSwitch(self, selList=None, srcSuffix=None, repSuffix1='IkJnt', repSuffix2='FkJnt', swichAttr='IK_FK', **shArgs)#
[shArgs : sl=selList, ss=srcSuffix, rs1=repSuffix1, rs2=repSuffix2, sa=swichAttr]
Purpose:
:: Automates the creation of blend switch constraints between IK, FK, and original joints in Maya.
Essential for setting up seamless IK/FK switching in rigging workflows.
Customizable to various naming conventions and rig structures.
Streamlines the process of constraining and blending IK and FK controls.
- Parameters:
selList – <list, optional> # List of selected joints to apply the blend switch.
srcSuffix – <str, optional> # Suffix of the source joints for the blend switch.
repSuffix1 – <str> # Replacement suffix for the first set of joints (e.g., IK joints).
repSuffix2 – <str> # Replacement suffix for the second set of joints (e.g., FK joints).
swichAttr – <str> # Attribute name used for the IK/FK switch control.
- Returns:
None # This function does not return a value but creates constraint blend switches in the scene.
Code Examples:
>>> as_CreateConstrainBlendSwitch(selList=['arm_IkJnt', 'arm_FkJnt'], srcSuffix='Jnt', repSuffix1='IkJnt', repSuffix2='FkJnt', swichAttr='IK_FK') # Creates constraint blend switches for arm joints with IK/FK switching.
If selection list providedIf no selection list providedStart/ Check Selection List/ Process List/ Get Current Selection/ Filter Joints/ Identify Switch/ Create ConstraintsEnd- Flow Chart Description:
This flowchart illustrates the as_CreateConstrainBlendSwitch function:
The process starts by checking if a selection list is provided.
If no list is given, it retrieves the current selection in the scene.
The list is processed to filter out joints and identify the switch control.
Constraints are created between IK, FK, and original joints using the identified switch control.
The function concludes after setting up the constraint blend switches.
- HyperRig.as_CreateEyesTemplate(self, **shArgs)#
[shArgs : sc=spineCurve]
Purpose:
:: Creates a spine curve template for rigging in Autodesk Maya.
This function is instrumental in setting up the spine rig for a character.
It allows customization of the spine curve based on the rigging needs.
Facilitates the creation of a flexible and functional spine rigging setup.
- Parameters:
spineCurve – <str> # The name of the spine curve to be created or modified.
- Returns:
None # This function does not return a value but modifies the spine curve in the scene.
Code Examples:
>>> as_CreateEyesTemplate(spineCurve='Spine_Curve') # Generates a spine curve template based on predefined points.
If Skeleton SetupIf Other SetupStart/ Generate Spine Curve/ Check Spine Setup/ Rebuild Curve/ Basic SetupEnd- Flow Chart Description:
This flowchart illustrates the as_CreateEyesTemplate function:
Starts by generating the spine curve with specified points.
Checks the spine setup type specified in the option menu.
If a ‘Skeleton’ setup is chosen, the spine curve is rebuilt according to the number of joints specified.
For other setups, or after rebuilding the curve, a basic setup is applied using the eMod class.
Completes the spine rig template creation in the Maya scene.
- HyperRig.as_CreateQuadFrntLegTemplate(self, **shArgs)#
[shArgs : ls=legSetup, ct=createToes]
Purpose:
:: Creates a template for the front legs of a quadruped character in Autodesk Maya.
This function constructs curves for the leg and optionally hand parts, depending on the setup type chosen.
It supports creating additional toe curves if specified.
The function is versatile, allowing for different leg setups like ‘Front PV’ or ‘Rear PV’.
- Parameters:
legSetup – <str> # Type of leg setup, such as ‘Front PV’ or ‘Rear PV’.
createToes – <bool> # Determines whether toe curves should be created as part of the template.
- Returns:
None # This function does not return a value but modifies the Maya scene by creating front leg templates.
Code Examples:
>>> as_CreateQuadFrntLegTemplate(legSetup='Front PV', createToes=True) # Generates a front leg template with toe curves for a quadruped character.
If Front PV or Rear PVOtherwiseIf Create ToesOtherwiseStart/ Check Leg Setup/ Create Leg CurveEnd/ Parent RF Hand to Leg Curve/ Check Create Toes/ Create Toe Curves/ Create Basic Setup/ Parent Toe Curves to Leg Curve/ Frame Selection- Flow Chart Description:
This flowchart illustrates the as_CreateQuadFrntLegTemplate function:
The process begins by checking the leg setup type, such as ‘Front PV’ or ‘Rear PV’.
Based on the setup type, it creates the leg curve.
The RF Hand Curve is then parented to the leg curve.
The function checks if toe curves need to be created.
If required, toe curves are created and parented to the leg curve.
A basic setup is created for the leg and hand (and toes if included).
Finally, the selection is framed in Maya for user visualization.
- HyperRig.as_CreateQuadRearLegTemplate(self, **shArgs)#
[shArgs : ls=legSetup, ct=createToes]
Purpose:
:: Constructs a template for the rear legs of a quadruped character in Autodesk Maya.
Similar to the front leg template, this function creates curves for the leg and optionally the foot, based on the chosen setup.
It also provides an option to create toe curves for a more detailed rigging template.
The function supports various leg setups including ‘Front PV’ and ‘Rear PV’.
- Parameters:
legSetup – <str> # Defines the type of rear leg setup, like ‘Front PV’ or ‘Rear PV’.
createToes – <bool> # Indicates whether toe curves should be included in the template.
- Returns:
None # Does not return any value, but alters the Maya scene by creating rear leg templates.
Code Examples:
>>> as_CreateQuadRearLegTemplate(legSetup='Rear PV', createToes=False) # Creates a rear leg template without toe curves for a quadruped character.
If Front PV or Rear PVOtherwiseIf Create ToesOtherwiseStart/ Check Leg Setup/ Create Leg CurveEnd/ Parent RF Foot to Leg Curve/ Check Create Toes/ Create Toe Curves/ Create Basic Setup/ Parent Toe Curves to Leg Curve/ Frame Selection- Flow Chart Description:
This flowchart illustrates the as_CreateQuadRearLegTemplate function:
The process starts by determining the leg setup type, like ‘Front PV’ or ‘Rear PV’.
Based on the chosen setup, the leg curve is created.
The RF Foot Curve is parented to the leg curve.
The function checks whether toe curves need to be created.
If toe curves are required, they are created and parented to the leg curve.
A basic setup is created for the leg and foot (and toes if included).
Finally, the selection is framed in Maya for visualization.
- HyperRig.as_CreateQuadToesSetup(self, L_ToesName, R_ToesName, LLegCtrlGrp, **shArgs)#
[shArgs : ltn=L_ToesName, rtn=R_ToesName, lcg=LLegCtrlGrp]
Purpose:
:: Creates a rigging setup for the toes of a quadruped character, ensuring detailed control over toe movements.
Essential for animating intricate movements in a quadruped’s feet, like gripping or subtle weight shifts.
Allows for individual control of each toe, enhancing the character’s expressiveness and realism.
Seamlessly integrates with the existing leg rig, maintaining a cohesive and functional quadruped rig.
- Parameters:
L_ToesName – <list> # List of names for the left toes.
R_ToesName – <list> # List of names for the right toes.
LLegCtrlGrp – <str> # Control group for the left leg, to which the toe controls will be parented.
- Returns:
None # This function does not return a value but creates a toe rigging setup for a quadruped character.
Code Examples:
>>> as_CreateQuadToesSetup(L_ToesName=['L_FrontToe1', 'L_FrontToe2'], R_ToesName=['R_FrontToe1', 'R_FrontToe2'], LLegCtrlGrp='L_FrontLegCtrlGrp') # Creates a toe rigging setup for a quadruped character's left and right front toes.
Start/ Initialize Setup/ Define Toe Names/ Create Left Toe Joints/ Create Left Toe Controls/ Create Right Toe Joints/ Create Right Toe Controls/ Finalize SetupEnd- Flow Chart Description:
This flowchart illustrates the as_CreateQuadToesSetup function:
The setup begins by initializing the necessary parameters.
Defines the names for both left and right toes.
Creates joint chains for the left toes.
Sets up controls for manipulating the left toes.
Proceeds to create joint chains for the right toes.
Establishes controls for the right toes.
Finalizes the toe setup, integrating it with the existing leg rig.
Completes the quadruped toe rigging process and ends.
- HyperRig.as_CreateTemplate(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a template for a specific module in Autodesk Maya based on the selected module from the UI radio button groups.
This function dynamically selects a module to create based on user interface selections.
It supports various modules like Spine, Arm, Leg, Hand, Neck, Eyes, Tongue, and more.
Utilizes the HyperRig class to create different types of rig templates.
Argument | Description :param module: <int> #Module number selected from the UI, determines the type of template to create.
- Returns:
None #No return value, it creates templates in the Maya scene.
Code Examples:
>>> module = 1 >>> as_CreateTemplate(module)
If module is providedIf module is not providedCreate template based on selected moduleStart/ Check Module/ Select TemplateEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate function:
The process begins by checking if a module number is selected from the UI.
If a module is selected, the function creates a template based on the selected module type, such as Spine, Arm, Leg, Hand, Neck, Eyes, Tongue, etc.
- HyperRig.as_CreateTemplate_Arm(self, **shArgs)#
[shArgs : hc=handsCurve]
Purpose:
:: Creates a bird wing template in Autodesk Maya using a defined curve.
This function sets up a basic bird wing rigging structure.
It generates a NURBS curve to define the bird’s wing path and applies control handles for rigging and animation.
- Parameters:
handsCurve – <str> # Name of the curve used to create the bird wing template.
- Returns:
None # This function does not return a value but sets up the bird wing rig in the scene.
Code Examples:
>>> curve_name = "L_Hands_Curve" >>> as_CreateBirdWingTemplate(curve_name) # This will create a bird wing setup using the specified curve.
Start/ Create Hands Curve/ Create Arm Controls/ Finalize Arm TemplateEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Arm function:
Begins by creating a NURBS curve named ‘L_Hands_Curve’ to define the bird’s wing path.
Generates controls for the arm setup based on the ‘L_Hands_Curve’.
Organizes the generated controls into a structured arm template.
Finalizes the arm template setup in the Maya scene.
- HyperRig.as_CreateTemplate_DynChain(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a dynamic chain rig template in Autodesk Maya.
This function sets up a dynamic curve for rigging purposes, typically used for creating dynamic chains or similar structures.
It provides basic setup using the eMod class for rigging.
No specific arguments for this function.
- Returns:
None #No return value, it creates a dynamic chain rig template in the Maya scene.
Code Examples:
>>> as_CreateTemplate_DynChain()
Start/ Create Dynamic Curve/ Basic Setup for Dynamic Curve/ Select Dynamic Curve/ Update UI Text FieldEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_DynChain function:
The process starts with the creation of a dynamic curve, which serves as the foundation for the dynamic chain rig.
Performs a basic setup for the dynamic curve using the eMod class, establishing the initial rigging structure.
Selects the newly created dynamic curve in the Maya scene.
Updates the UI text field with the name of the dynamic curve for user reference.
Concludes the dynamic chain rig template creation in the Maya scene.
- HyperRig.as_CreateTemplate_Hand(self, **shArgs)#
[shArgs : pc=palmCurve, tc=thumbCurve, ic=indexCurve, mc=middleCurve, rc=ringCurve, pyc=pinkyCurve]
Purpose:
:: Creates a hand template with specified curves for different parts of the hand in Autodesk Maya.
This function is designed to generate a hand template by creating and organizing curves for the palm, thumb, and fingers.
The curves are parented together and then attached to a controller group, forming a structured hand template.
- Returns:
None # This function does not return a value but creates a hand template in the Maya scene.
Code Examples:
>>> palmCurve = 'L_Palm_Curve' >>> thumbCurve = 'L_Thumb_Curve' >>> indexCurve = 'L_Index_Curve' >>> middleCurve = 'L_Middle_Curve' >>> ringCurve = 'L_Ring_Curve' >>> pinkyCurve = 'L_Pinky_Curve' >>> as_CreateTemplate_Hand()
Parent curves togetherStart/ Create Hand Curves/ Parent Curves/ Organize Hand Template/ Create Hand Controls/ Finalize Hand TemplateEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Hand function:
Starts by creating curves for palm, thumb, index, middle, ring, and pinky parts of the hand.
Parenting all created curves together to form the hand structure.
Organizing the hand template by attaching curves to a controller group.
Creating hand controls based on the structured curves.
Finalizing the hand template setup in the Maya scene.
- HyperRig.as_CreateTemplate_Leg(self, **shArgs)#
[shArgs : st=stJnt, et=endJnt, pd=poleDir, st=solverType, pd=poleDist, is=ikfkSwitch]
Purpose:
:: Sets up an IK-FK switchable leg rig in Autodesk Maya.
This function creates a leg rig that can be switched between IK and FK modes.
It includes options for defining joint start and end, pole vector direction, IK solver type, pole distance, and the control for IK-FK switching.
- Returns:
None # This function does not return a value but creates the IK-FK leg setup in the scene.
Code Examples:
>>> stJnt = 'L_hip_Jnt' >>> endJnt = 'L_ankle_Jnt' >>> poleDir = '-z' >>> solverType = 1 >>> poleDist = 1.25 >>> ikfkSwitch = 'L_leg_IKFK_Ctrl' >>> as_CreateTemplate_Leg(stJnt, endJnt, poleDir, solverType, poleDist, ikfkSwitch) # Creates an IK-FK switchable leg rig for the left leg.
BipedQuadrupedStart/ Check Leg Type/ Create Biped Leg Curves/ Create Quadruped Leg Curves/ Parent Biped Curves/ Parent Quadruped Curves/ Create Biped Leg Controls/ Create Quadruped Leg Controls/ Finalize Biped Leg Template/ Finalize Quadruped Leg TemplateEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Leg function:
Begins by determining the type of leg setup, either Biped or Quadruped.
For Biped, creates and parents curves specifically for a biped leg setup.
For Quadruped, creates and parents curves specifically for a quadruped leg setup.
Generates controls for the Biped leg setup and organizes them into a structured template.
Generates controls for the Quadruped leg setup and organizes them into a structured template.
Finalizes the leg template setup in the Maya scene for both Biped and Quadruped setups.
- HyperRig.as_CreateTemplate_Neck(self, **shArgs)#
[shArgs : ct=charType, ns=neckSetup, nj=numJnts]
Purpose:
:: Generates a neck template for characters in Autodesk Maya, adaptable for both quadruped and biped types.
The function creates curves representing the neck and optionally the jaw, based on the character type.
It supports both ‘Quadruped’ and other character types, with different curve configurations for each.
Additionally, it allows for skeleton setup if specified.
- Parameters:
charType – <str> # Type of character, such as ‘Quadruped’. Determines the neck curve’s configuration.
neckSetup – <str> # The type of setup for the neck, such as ‘Skeleton’, which influences the creation process.
numJnts – <int, optional> # Number of joints to be used if ‘Skeleton’ setup is chosen. Defaults to a predefined value if not specified.
- Returns:
None # This function does not return a value but modifies the Maya scene by creating neck templates.
Code Examples:
>>> as_CreateTemplate_Neck(charType='Quadruped', neckSetup='Skeleton', numJnts=5) # Creates a quadruped neck template with a skeleton setup consisting of 5 joints.
If QuadrupedOtherwiseIf Skeleton SetupOtherwiseStart/ Check Character Type/ Create Quadruped Curve/ Create Other Curve/ Parent Jaw to Neck/ Parent Head and Jaw to Neck/ Check Neck Setup/ Rebuild Neck Curve/ Create Basic Setup/ Frame SelectionEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Neck function:
The process begins by checking the character type (Quadruped or other).
Based on the type, it creates the appropriate neck and jaw curves.
It then parents the jaw (and head for non-quadruped characters) to the neck curve.
The neck setup is checked; if it is a ‘Skeleton’ setup, the neck curve is rebuilt.
Basic setup for the neck, jaw (and head) is created.
Finally, the selection is framed in Maya for user visualization.
- HyperRig.as_CreateTemplate_Snake(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a snake rig template in Autodesk Maya.
This function allows for the creation of a basic snake rig setup, with optional jaw setup.
It uses curves to define the spine and jaw of the snake, setting up a basic structure for rigging.
No specific arguments for this function.
- Returns:
None #No return value, it creates a snake rig template in the Maya scene.
Code Examples:
>>> as_CreateTemplate_Snake()
If Jaw SetupNo Jaw SetupStartCheck Jaw Setup/ Create Jaw Curve/ Create Spine Curve/ Basic Setup for Jaw Curve/ Basic Setup for Spine Curve/ Select Root Controller/ Frame Selected in ViewportEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Snake function:
The process begins with checking if a jaw setup is required for the snake rig.
If jaw setup is needed, it creates a jaw curve for the snake.
A basic setup is then applied to the jaw curve.
Regardless of the jaw setup, a spine curve is created to represent the snake’s body.
A basic rigging setup is applied to the spine curve.
The root controller of the rig is selected.
Finally, the selected root controller is framed in the Maya viewport.
- HyperRig.as_CreateTemplate_Spine(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a spine rig template in Autodesk Maya for different character types.
This function generates a spine curve based on the character type (e.g., Biped, Quadruped) and setups the spine rig.
It supports different spine setups, like Skeleton.
Utilizes Maya commands for curve creation and rebuilding.
No specific arguments for this function.
- Returns:
None #No return value, it creates a spine rig template in the Maya scene.
Code Examples:
>>> as_CreateTemplate_Spine()
If BipedIf QuadrupedIf SkeletonOther SetupStart/ Check Character Type/ Create Biped Spine Curve/ Create Quadruped Spine Curve/ Check Spine Setup/ Rebuild Curve/ Basic Setup for Spine Curve/ Select Root Controller/ Frame Selected in ViewportEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Spine function:
The process begins by checking the character type (Biped or Quadruped).
Based on the character type, it creates a spine curve specific to Biped or Quadruped.
It then checks the spine setup type.
If the setup is ‘Skeleton’, the spine curve is rebuilt to fit the number of joints.
A basic setup is applied to the spine curve.
The root controller of the spine rig is selected.
Finally, the selected root controller is framed in the Maya viewport.
- HyperRig.as_CreateTemplate_Toes(self, charType='quad', **shArgs)#
[shArgs : ]
Purpose:
:: Creates a toes rig template in Autodesk Maya for different character types.
This function generates toe curves based on the character type (e.g., bird, quadruped) and sets up the toes rig.
It uses curves to define the base, thumb, index, middle, ring, and pinky toes.
- Parameters:
charType – <str> #Character type to determine the toe setup (e.g., ‘bird’, ‘quad’).
- Returns:
None #No return value, it creates a toes rig template in the Maya scene.
Code Examples:
>>> charType = 'bird' >>> as_CreateTemplate_Toes(charType)
If 'bird'If 'quad'Start/ Determine Character Type/ Create Bird Toe Curves/ Create Quadruped Toe Curves/ Basic Setup for Bird Toes/ Basic Setup for Quadruped ToesEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Toes function:
The process starts by determining the character type (‘bird’ or ‘quad’) for the toe rig.
- Based on the character type:
If ‘bird’, it creates curves for thumb, index, middle, and pinky toes of a bird character.
If ‘quad’, it creates curves for the base, thumb, index, middle, ring, and pinky toes of a quadruped character.
Executes a basic setup for the toe curves using the eMod class for rigging purposes.
Concludes the toe rig template creation process in the Maya scene.
- HyperRig.as_CreateTemplate_Tongue(self, **shArgs)#
[shArgs : ]
Purpose:
:: Creates a tongue rig template in Autodesk Maya.
This function imports a specified model file and uses it to create a tongue rig setup.
It supports both Maya ASCII (.ma) and Maya Binary (.mb) file formats for importing.
No specific arguments for this function.
- Returns:
None #No return value, it creates a tongue rig template in the Maya scene.
Code Examples:
>>> as_CreateTemplate_Tongue()
If Maya ASCII (.ma)If Maya Binary (.mb)Start/ Retrieve Template File Path/ Check File Type/ Import Maya ASCII File/ Import Maya Binary FileEnd- Flow Chart Description:
This flowchart illustrates the as_CreateTemplate_Tongue function:
Starts by retrieving the file path of the template file specified in the UI.
Checks the file type of the template file, whether it’s a Maya ASCII (.ma) or Maya Binary (.mb) file.
Depending on the file type, imports the file into Maya.
Concludes the process by setting up the tongue rig template in the scene.
- HyperRig.as_DuplicateHI(self, parentOnly=False, **shArgs)#
[shArgs: ]
Purpose:
:: Duplicates the hierarchy of the selected object(s), preserving the structure and optionally only duplicating parent nodes.
Useful in rigging and animation workflows where duplicate hierarchies are required for various purposes.
Provides options for duplicating the entire hierarchy or only parent nodes.
- Parameters:
parentOnly – <bool, optional> #Indicates whether to duplicate only the parent nodes. Default is False.
- Returns:
None # This function does not return any value but creates duplicates of the selected object(s) along with their hierarchies.
Code Examples:
>>> as_DuplicateHI(False) # Duplicates the entire hierarchy of the selected object(s).
If objects are selectedIf no objects selectedDuplicate entire hierarchy or only parent nodes based on parentOnly parameterRename duplicated hierarchy nodesStart/ Check Selection/ Duplicate HierarchyEnd/ Rename Duplicated- Flow Chart Description:
This flowchart illustrates the as_DuplicateHI function:
The process begins by checking if objects are selected. If no objects are selected, the function ends.
If objects are selected, it duplicates the entire hierarchy or only the parent nodes based on the parentOnly parameter.
The duplicated hierarchy nodes are then renamed to ensure uniqueness.
- HyperRig.as_EditSets(self, action='add', nodeType=None, **shArgs)#
[shArgs: ]
Purpose:
:: Manages scene sets by adding or removing selected objects, facilitating organization and control in complex scenes.
Essential for scene management, especially in large projects with numerous elements.
Supports adding or removing objects to/from sets and targeting specific node types like blend shapes.
- Parameters:
action – <str, optional> #Specifies the action to be performed (‘add’ or ‘remove’). Default is ‘add’.
nodeType – <str, optional> #Specifies the node type for set operations, such as ‘blendShape’. Default is None.
- Returns:
None # This function does not return any value but manages sets based on the specified action and node type.
Code Examples:
>>> as_EditSets('add', 'blendShape') # Adds selected objects to the blend shape sets.
If objects are selectedIf no objects selectedCheck if action is 'add'Check if action is 'remove'Add selected objects to set based on nodeTypeRemove selected objects from set based on nodeTypeStart/ Check Selection/ Determine ActionEnd/ Add To Set/ Remove From Set- Flow Chart Description:
This flowchart illustrates the as_EditSets function:
The process starts by checking if objects are selected. If no objects are selected, the function ends.
Depending on the action parameter, it either adds to or removes from sets.
For ‘add’, it adds the selected objects to the set, considering the nodeType parameter.
For ‘remove’, it removes the selected objects from the set, also considering the nodeType parameter.
- HyperRig.as_ExportCtrlShapes(self, **shArgs)#
[shArgs : ]
Purpose:
:: Exports control shapes from the current Maya scene for use in other projects or rigs.
Facilitates sharing and reusing custom control shapes across multiple rigs.
Ensures consistency in control shapes between different versions of a rig.
Saves time by avoiding the need to recreate complex control shapes from scratch.
- Returns:
None # This function does not return a value but exports control shapes from the current scene.
Code Examples:
>>> as_ExportCtrlShapes() # Exports control shapes from the current Maya scene.
Start/ Export Control Shapes/ Success MessageEnd- Flow Chart Description:
This flowchart illustrates the as_ExportCtrlShapes function:
The process begins by exporting control shapes from the current Maya scene.
Once export is complete, a success message is displayed.
The process completes and ends.
- HyperRig.as_GenerateCurvCMD(self, deg=3, **shArgs)#
[shArgs: ]
Purpose:
:: Generates a curve command based on the selected curve or control vertices, simplifying curve creation in scripts and tools.
Ideal for scripting and tool development where curves are needed to be generated programmatically.
The function determines the curve degree and generates a command accordingly.
- Parameters:
deg – <int, optional> #Specifies the degree of the curve. Default is determined based on the selected curve or control vertices.
- Returns:
None # This function does not return any value but generates a curve command based on the selected elements.
Code Examples:
>>> as_GenerateCurvCMD(3) # Generates a curve command for a degree 3 curve based on the selected curve or control vertices.
If control vertices are selectedIf curve is selectedGenerate curve command based on degreeStart/ Check Selection/ Get Curve From CV/ Get Curve/ Set Degree/ Generate Curve CommandEnd- Flow Chart Description:
This flowchart illustrates the as_GenerateCurvCMD function:
The process starts by checking if control vertices or a curve is selected.
If control vertices are selected, it retrieves the curve from the control vertices.
If a curve is selected, it directly uses this curve.
The degree of the curve is then set or determined based on the selection.
Finally, a curve command is generated based on the degree and selection.
- HyperRig.as_GetClusterCtrl(self, shapeNum=1, vtxList=None, **shArgs)#
[shArgs: ]
Purpose:
:: Creates cluster controls on specified vertices of a mesh, allowing for individual manipulation of these points.
This function is ideal for rigging tasks where fine control over specific mesh vertices is required.
User input is involved in defining control names and selecting the vertices for control creation.
- Parameters:
shapeNum – <int> #The shape number corresponding to the type of control shape to be created.
vtxList – <list, optional> #List of vertices to which cluster controls will be applied. If not provided, uses the current selection.
- Returns:
None # This function does not return any value but creates cluster controls on specified vertices.
Code Examples:
>>> as_GetClusterCtrl(1, [vtx1, vtx2]) # Creates cluster controls on the specified vertices with the first shape type.
If User Provides NameIf User CancelsIf Vertex List ProvidedIf No Vertex ListCreate Cluster Control for Each VertexStart/ Get Control Name/ Check Vertex ListEnd/ Create Cluster Controls/ Use Current Selection- Flow Chart Description:
This flowchart illustrates the as_GetClusterCtrl function:
The process begins by prompting the user to input a control name.
If the user provides a name, the function checks if a vertex list is provided.
If no vertex list is provided, it defaults to using the current selection of vertices.
Cluster controls are then created for each vertex in the vertex list or current selection.
The function finalizes by creating cluster controls, allowing for individual manipulation of mesh vertices.
- HyperRig.as_GetConstrainSDKGrps(self, obj=None, grpLevel=6, **shArgs)#
[shArgs: ]
Purpose:
:: Sets up SDK (Set Driven Key) groups with constraints for a selected object, facilitating advanced rigging setups.
Ideal for rigging scenarios where SDK groups are needed to drive animations through constraints.
Allows flexibility in specifying the group level for the constraint setup.
- Parameters:
obj – <object, optional> #The object to which the constraint SDK groups are to be applied. Uses the current selection if not specified.
grpLevel – <int, optional> #The group level for the constraint setup. Default is 6.
- Returns:
None # This function does not return any value but creates constraint SDK groups for the specified object.
Code Examples:
>>> as_GetConstrainSDKGrps(None, 6) # Creates constraint SDK groups for the selected object at group level 6.
If obj is providedIf obj is not providedGet Position Locator at specified levelCollect existing constraints on objectApply constraints from locator to object and target list to locatorStart/ Check Object/ Use Provided Object/ Select Object/ Get Position Locator/ Create Top Group/ Collect Constraints/ Delete Constraints/ Apply New ConstraintsEnd- Flow Chart Description:
This flowchart illustrates the as_GetConstrainSDKGrps function:
The process begins by checking if an object is provided for the constraint setup.
If an object is provided, it is used; otherwise, the user selects an object.
A position locator is created at the specified group level for the selected object.
A top group is then created based on the position locator.
The function collects and deletes any existing constraints on the object.
New constraints are applied from the locator to the object and from the target list to the locator.
The function concludes after applying the constraints and setting up the SDK groups.
- HyperRig.as_GetCtrl(self, shapeNum=1, **shArgs)#
[shArgs: ]
Purpose:
:: Generates control objects based on the specified shape number and user-defined name.
Useful for rigging tasks where custom control objects are needed.
The function uses a prompt dialog for user input to define the control name.
- Parameters:
shapeNum – <int> #The shape number indicating the type of control shape to be created.
- Returns:
None # This function does not return any value but creates a control object in the scene.
Code Examples:
>>> as_GetCtrl(2) # Generates a control object with the second shape type based on user input.
If User Provides NameIf User CancelsCreate Control with Specified ShapeStart/ Get Control Name/ Create ControlEnd- Flow Chart Description:
This flowchart illustrates the as_GetCtrl function:
The process starts with a prompt dialog for the user to input a control name.
If the user inputs a name, the function proceeds to create a control object with the specified shape.
The shape of the control is determined by the shape number provided as an argument.
The function concludes with the creation of the control object in the scene.
- HyperRig.as_GetElbowBendLoc(self, **shArgs)#
[shArgs: ]
Purpose:
:: Calculates and creates a locator that represents the bending direction and position for an elbow joint, based on user selections.
This function is useful for setting up advanced elbow rigs that require a dynamic bending locator.
It requires the user to specify the bending direction and skin mesh.
- Param:
None # No explicit parameters are needed as the function operates based on user selection and input.
- Returns:
None # This function does not return any value but creates a bend locator at the calculated position on the elbow.
Code Examples:
>>> as_GetElbowBendLoc() # Creates a bend locator for the elbow joint based on user-defined direction and mesh.
If Mesh ExistsIf Mesh Does Not ExistUser Selects DirectionStart/ Check Skin Mesh/ Select DirectionEnd/ Create Elbow Bend Locator- Flow Chart Description:
This flowchart illustrates the as_GetElbowBendLoc function:
The process begins by checking if the specified skin mesh exists.
If the mesh exists, the user is prompted to select the bending direction (front, rear, top, low, left, right).
Based on the user’s selection, the function calculates and creates a locator to indicate the elbow’s bending direction and position.
The function concludes after creating the elbow bend locator.
- HyperRig.as_GetElbowBendSetup(self, **shArgs)#
[shArgs: ]
Purpose:
:: Establishes a setup for elbow bending by creating appropriate rigging elements based on user input and selected locators.
The function is essential in rigging for achieving realistic elbow bending movements.
Requires the user to specify the skin mesh and to select locators representing the elbow joint.
- Param:
None # No explicit parameters are needed as the function operates based on user selection and input.
- Returns:
None # This function does not return any value but creates an elbow bend setup based on the user-selected locators and skin mesh.
Code Examples:
>>> as_GetElbowBendSetup() # Sets up elbow bending rigging elements based on the user-selected locators and specified skin mesh.
If Mesh ExistsIf Mesh Does Not ExistUser Selects DirectionIf 3 Locators SelectedIf Not 3 Locators SelectedStart/ Check Skin Mesh/ Select DirectionEnd/ Check Locators/ Create Elbow Bend Setup- Flow Chart Description:
This flowchart illustrates the as_GetElbowBendSetup function:
The process starts by checking if the specified skin mesh exists.
If the mesh exists, the user is prompted to select the bending direction (front, rear, top, low, left, right).
Next, the function checks if exactly three locators have been selected, representing the elbow joint.
If the correct number of locators is selected, an elbow bend setup is created, incorporating these locators and the specified skin mesh.
The function concludes after establishing the elbow bend setup.
- HyperRig.as_GetFKCtrls(self, mirror=True, ctrlShape=0, **shArgs)#
[shArgs: ]
Purpose:
:: Creates FK controls for selected joints, optionally mirroring them and allowing for different control shapes.
Ideal for rigging tasks that require FK controls for joint manipulation.
Offers the option to mirror the controls and choose from various control shapes.
- Parameters:
mirror – <bool, optional> #Indicates whether to create mirrored controls for the opposite side. Default is True.
ctrlShape – <int, optional> #Specifies the control shape number to be used for the FK controls.
- Returns:
None # This function does not return any value but creates FK controls for the selected joints.
Code Examples:
>>> as_GetFKCtrls(True, 1) # Creates FK controls for selected joints with mirroring enabled and the first control shape.
Select Joints for FK ControlCreate FK ControlsIf Mirror is TrueIf Mirror is FalseUser ConfirmsUser CancelsApply Specified Control ShapeStart/ Select Joints/ Create FK Controls/ Check Mirror/ Confirm Mirror Creation/ Apply Control Shape/ Create Mirrored ControlsEnd- Flow Chart Description:
This flowchart illustrates the as_GetFKCtrls function:
The process starts with the user selecting joints for FK control creation.
FK controls are then created for the selected joints.
The function checks if mirroring of controls is enabled.
If mirroring is enabled, the user is prompted to confirm the creation of mirrored controls.
Upon confirmation, mirrored controls are created for the opposite side.
Lastly, the specified control shape is applied to the created FK controls.
The function concludes after creating and shaping the FK controls.
- HyperRig.as_GetFKHierarchyCtrls(self, driveChain=True, **shArgs)#
[shArgs: ]
Purpose:
:: Creates FK (Forward Kinematics) controls for a hierarchy of joints, optionally driving the original joint chain.
This function is integral for setting up FK control systems in character rigs.
The flexibility to drive the original joint chain or not, is provided.
- Parameters:
driveChain – <bool, optional> #Determines whether the created FK controls will drive the original joint chain. Default is True.
- Returns:
None # This function does not return any value but creates FK controls for the selected joint hierarchy.
Code Examples:
>>> as_GetFKHierarchyCtrls(False) # Creates FK controls for the selected joints without driving the original joint chain.
- HyperRig.as_GetFollicles(self, **shArgs)#
[shArgs: ]
Purpose:
:: Generates follicles on a mesh at the positions of selected vertices, allowing for dynamic attachment points.
Useful in hair and cloth simulation where follicles are needed for attaching dynamic elements to a mesh.
Operates based on the currently selected vertices.
- Param:
None # No explicit parameters are needed as the function operates based on the current vertex selection.
- Returns:
None # This function does not return any value but creates follicles on the mesh at selected vertices.
Code Examples:
>>> as_GetFollicles() # Creates follicles on the mesh at the positions of currently selected vertices.
- HyperRig.as_GetFrameCtrl_FaceRig(self, **shArgs)#
[shArgs: ]
Purpose:
:: Generates frame controls for facial rigging based on user-defined names, enhancing facial animation capabilities.
Essential for facial rigging where frame controls provide precise manipulation of facial features.
User input is involved in defining control names through a prompt dialog.
- Param:
None # No explicit parameters are needed as the function operates based on user input for control names.
- Returns:
None # This function does not return any value but creates frame controls for facial rigging based on user-defined names.
Code Examples:
>>> as_GetFrameCtrl_FaceRig() # Creates frame controls for facial rigging based on user-defined names.
User provides namesAction CancelledSplit names by commas and strip spacesGenerate frame controls for facial riggingStart/ Prompt for Control Name/ Split NamesEnd/ Create Frame Controls- Flow Chart Description:
This flowchart illustrates the as_GetFrameCtrl_FaceRig function:
The process starts with a prompt for the user to input control names for facial rigging.
If names are provided, they are split and processed; if the action is cancelled, the process ends.
The function splits the input names by commas and trims any spaces.
Frame controls for facial rigging are then created based on the provided names.
The process concludes after the frame controls are created.
- HyperRig.as_GetLowResGeo(self, reduceCount=5000, **shArgs)#
[shArgs: ]
Purpose:
:: Generates a low-resolution version of the selected geometry, optimizing performance for tasks like rigging and simulation.
Ideal for scenarios where high-resolution meshes hinder performance, requiring a simplified version for efficient processing.
Provides control over the reduction count for the geometry simplification.
- Parameters:
reduceCount – <int, optional> #Specifies the number of reductions to be applied to the geometry. Default is 5000.
- Returns:
None # This function does not return any value but generates a low-resolution version of the selected geometry.
Code Examples:
>>> as_GetLowResGeo(5000) # Generates a low-resolution version of the selected geometry with a reduction count of 5000.
Select mesh for reductionSet reduction countCreate optimized geometryStart/ Select Geometry/ Initialize Reduction Process/ Generate Low-Res GeometryEnd- Flow Chart Description:
This flowchart illustrates the as_GetLowResGeo function:
The process begins with selecting the geometry that needs to be reduced in resolution.
The reduction process is initialized, setting up parameters for geometry optimization.
The specified reduction count is applied to generate the low-resolution version of the geometry.
The process completes with the creation of an optimized low-resolution geometry suitable for tasks like rigging and simulation.
- HyperRig.as_GetMirrorLoc(self, mirrorBehavior=1, axisList=['x', 'y'], objList=None, getExtraCtrl=False, **shArgs)#
[shArgs: ]
Purpose:
:: Creates mirrored locator(s) for a selected object or a list of objects, with optional behavior and axis specifications.
Useful in rigging for creating symmetrical setups, especially in character rigging.
Provides options for mirror behavior, axis selection, and processing additional control elements.
- Parameters:
mirrorBehavior – <int, optional> #Determines the behavior of the mirroring process. Default is 1.
axisList – <list of str, optional> #Specifies the axes for the mirroring process. Default is [‘x’, ‘y’].
objList – <list, optional> #A list of objects to be mirrored. If not provided, uses the current selection.
getExtraCtrl – <bool, optional> #Indicates whether to get additional control elements. Default is False.
- Returns:
None # This function does not return any value but creates mirrored locators based on the specified or selected objects.
Code Examples:
>>> as_GetMirrorLoc(1, ['x', 'y'], [object1, object2], False) # Creates mirrored locators for the specified objects with the given mirror behavior and axis list, without additional control elements.
If object list is providedIf no objects providedFor each object in listDetermine prefix for mirroringCreate mirrored locatorsIf extra control neededDuplicate and rename controlAlign duplicated controlLock unnecessary attributesMirror shapes of original controlStart/ Check Objects/ Object Loop/ Use Selection/ Check Prefix/ Create Mirror Locators/ Return Mirror LocatorsEnd/ Duplicate Control/ Snap Rotation/ Lock Attributes/ Mirror Control Shapes- Flow Chart Description:
This flowchart illustrates the as_GetMirrorLoc function:
The process starts by checking if a list of objects is provided. If not, it uses the current selection.
It loops through each object in the list or selection.
The function checks the prefix of each object to determine the correct mirroring criteria.
Mirrored locators are created based on the determined criteria.
If extra control is required, the process duplicates the control, snaps its rotation to the mirror locator, locks unnecessary attributes, and mirrors control shapes.
Finally, the mirrored locators are returned, completing the process.
- HyperRig.as_GetSliderCtrl_FaceRig(self, ctrlName=None, removeSuffix=False, **shArgs)#
[shArgs: ]
Purpose:
:: Creates slider controls for facial rigging, either based on a specified control name or user input, optionally removing suffixes.
Vital for facial rigging to create slider controls that allow for nuanced facial expressions.
Offers the flexibility to specify control names or use user input, with the option to remove suffixes from the control names.
- Parameters:
ctrlName – <str, optional> #The name of the control. If not provided, uses user input.
removeSuffix – <bool, optional> #Determines whether to remove suffixes from the control name. Default is False.
- Returns:
None # This function does not return any value but creates slider controls for facial rigging based on the specified or input control name.
Code Examples:
>>> as_GetSliderCtrl_FaceRig('Smile_Ctrl', True) # Creates a slider control for facial rigging named 'Smile' by removing the suffix from the specified control name.
If ctrlName is not providedIf ctrlName is providedUser provides nameAction CancelledRemove suffix if specifiedGenerate slider control for facial riggingStart/ Check Control Name/ Prompt for Control Name/ Remove SuffixEnd/ Create Slider Control- Flow Chart Description:
This flowchart illustrates the as_GetSliderCtrl_FaceRig function:
The process begins by checking if a control name is provided.
If not provided, the user is prompted to input a control name. If the action is cancelled, the process ends.
If a control name is provided or obtained, the function checks if the suffix needs to be removed based on user specification.
A slider control for facial rigging is then created using the specified or input control name.
The process concludes after the slider control is created.
- HyperRig.as_GetSliderCtrls_4Attrs(self, **shArgs)#
[shArgs: ]
Purpose:
:: Automates the creation of slider controls for specified attributes, streamlining the facial rigging process.
Useful in facial rigging where multiple slider controls are required to drive various facial attributes.
The function targets user-selected attributes for slider control creation.
- Param:
None # No explicit parameters are needed as the function operates based on user-selected attributes.
- Returns:
None # This function does not return any value but creates slider controls for the selected attributes.
Code Examples:
>>> as_GetSliderCtrls_4Attrs() # Creates slider controls for user-selected attributes, enhancing the facial rigging setup.
If attributes are selectedIf no attributes are selectedFor each selected attributeLock unnecessary attributesPosition controlUpdate progress for each attributeAfter creating all controlsEnd progress windowStart/ Check Selection/ Start Progress/ Error/ Create Slider Controls/ Create SDK/ Lock Attributes/ Move Control/ Update Progress/ End ProgressEnd- Flow Chart Description:
This flowchart illustrates the as_GetSliderCtrls_4Attrs function:
The process starts with a check for selected attributes.
If no attributes are selected, an error is displayed.
When attributes are selected, the function initiates a progress window.
It then creates slider controls for each selected attribute, setting up SDKs (Set Driven Keys) to link controls to attributes.
Unnecessary attributes on the controls are locked for cleaner user interaction.
Each control is repositioned for clarity and organization.
The progress is updated after each attribute is processed.
The process ends with the closing of the progress window.
- HyperRig.as_GetSpaceSwitch(self, constrainStr='parent', grpLevel=0, **shArgs)#
[shArgs: ]
Purpose:
:: Implements a space switch setup for selected objects, allowing for dynamic parenting and transformation spaces.
Essential in rigging for creating space switch setups that provide flexibility in animation.
Offers customization of the constraint type and group level for the space switch.
- Parameters:
constrainStr – <str, optional> #Specifies the type of constraint to be used for the space switch. Default is ‘parent’.
grpLevel – <int, optional> #Defines the group level for the space switch setup. Default is 0, which is determined by a UI option.
- Returns:
None # This function does not return any value but sets up space switching for the selected objects.
Code Examples:
>>> as_GetSpaceSwitch('parent', 0) # Sets up a space switch with parent constraint for the selected objects, using the group level defined in the UI.
If objects are selectedIf no objects selectedRetrieve group levelApply space switch setupIf mirror object existsIf confirmedApply space switch to mirror objectIf not confirmedStart/ Check Selection/ Get Group Level/ Error: No Selection/ Constrain Space Switch/ Check for Mirror Object/ Confirm Mirror Action/ Create Mirror Space SwitchEnd- Flow Chart Description:
This flowchart illustrates the as_GetSpaceSwitch function:
The process begins by checking if objects are selected. If no objects are selected, an error is shown.
If objects are selected, it retrieves the group level for the space switch setup.
The function then applies the space switch setup to the selected objects.
It checks if a mirror object exists for the last selected object.
If a mirror object exists and is confirmed, the space switch setup is applied to the mirror object as well.
Finally, the process ends after setting up space switches on the selected and optionally the mirror objects.
- HyperRig.as_GetStickySkinCtrl(self, **shArgs)#
[shArgs: ]
Purpose:
:: Creates a control that sticks to the surface of a skinned mesh, moving on top of any blend shapes applied to the mesh.
This function is intended for use on skinned meshes, especially those with blend shapes.
User interaction is required to define the control name through a prompt dialog.
- Param:
None # No explicit parameters are needed as the function operates based on user selection and input.
- Returns:
None # This function does not return any value but creates a control on the skin mesh based on user input.
Code Examples:
>>> as_GetStickySkinCtrl() # Creates a sticky control on the selected skinned mesh based on user-defined name.
Creates Sticky Control on skin mesh. And control moves on top of blend shape. :Usage: Select 2 edges on skinned mesh (Blend shape mesh can be taken from first blend shape)
Select two edges on skinned meshEnter control nameControl createdStart/ Select Edges/ Prompt for Control Name/ Create Sticky ControlEnd- Flow Chart Description:
This flowchart illustrates the as_GetStickySkinCtrl function:
The process starts by selecting two edges on a skinned mesh.
A prompt appears for the user to enter a name for the new control.
After the name is entered, a sticky control is created on the skinned mesh.
The control adheres to the surface, moving along with any blend shapes applied to the mesh.
- HyperRig.as_GroupIt(self, grpLevel=4, **shArgs)#
[shArgs: ]
Purpose:
:: Groups selected objects at a specified group level, organizing scene elements for better rigging and animation workflows.
Useful for riggers and animators in organizing and managing scene elements.
Allows specifying the group level for the grouping operation.
- Parameters:
grpLevel – <int, optional> #The level at which the selected objects are to be grouped. Default is 4.
- Returns:
None # This function does not return any value but groups the selected objects at the specified level.
Code Examples:
>>> as_GroupIt(4) # Groups the selected objects at group level 4.
If objects are selectedIf no objects selectedGroup each selected objectStart/ Check Selection/ Group Objects/ Error: No SelectionEnd- Flow Chart Description:
This flowchart illustrates the as_GroupIt function:
The process begins by checking if objects are selected. If no objects are selected, an error is shown.
If objects are selected, each object is grouped at the specified group level.
The process concludes after grouping the selected objects.
- HyperRig.as_HasMeshContains(self, **shArgs)#
[shArgs: ]
Purpose:
:: Checks if the selected mesh contains specific objects, aiding in collision detection and spatial analysis within the scene.
Useful in rigging and animation for verifying spatial relationships and collisions between objects and meshes.
Operates based on the current selection of objects and a target mesh.
- Param:
None # No explicit parameters are needed as the function operates based on the current selection and a target mesh.
- Returns:
None # This function does not return any value but checks and selects objects that are contained within the selected mesh.
Code Examples:
>>> as_HasMeshContains() # Checks and selects objects from the current selection that are contained within the last selected mesh.
Check each selected objectEvaluate if object is contained in the meshAdd contained objects to set listSelect objects from set listStart/ Check Selection/ Evaluate Containment/ Add To Set List/ Select Set ListEnd- Flow Chart Description:
This flowchart illustrates the as_HasMeshContains function:
The process starts by checking each object in the selection.
It evaluates whether each object is contained within the last selected mesh.
Objects found to be contained within the mesh are added to a set list.
Finally, the objects in the set list are selected.
- HyperRig.as_HyperRig(self, **shArgs)#
[shArgs: ]
Purpose:
:: Initializes and configures the as_HyperRig window and its components, providing a comprehensive rigging toolset for Autodesk Maya.
Centralizes various rigging tools and utilities within a single interface for efficiency and ease of use.
Dynamically adjusts the interface and available tools based on Maya version and other system parameters.
Global Variables: - topGrp, transGrp, jntGrp, geoGrp, ikGrp: Used for categorizing different types of rig elements. - rootCtrlGrp, LHandCtrlGrp, RHandCtrlGrp, LLegCtrlGrp, RLegCtrlGrp: Groups for organizing control rigs. - L_IK_HandName, R_IK_HandName, L_FK_HandName, R_FK_HandName, L_HandName, R_HandName: Naming conventions for hand control rigs.
- Returns:
None # This function does not return any value but creates and configures the as_HyperRig window and its components.
Code Examples:
>>> as_HyperRig() # Initializes and configures the as_HyperRig window for rigging tasks.
If Maya version >= 2016ElseStart/ Initialize as_HyperRig Window/ Check Maya Version/ Setup Interface for Newer Version/ Setup Interface for Older Version/ Create as_HyperRig WindowEnd- Flow Chart Description:
This flowchart illustrates the as_HyperRig function:
The process starts with initializing the as_HyperRig window.
It checks the version of Maya being used.
Depending on the Maya version, it sets up the interface accordingly.
Finally, it creates the as_HyperRig window.
- HyperRig.as_HyperRig_AdjustUI(self, action='expand', innerFrame='as_Controls1_FL', midFrame='as_Controls_FL', adjHeight=80, **shArgs)#
[shArgs: ]
Purpose:
:: Dynamically adjusts the UI elements of the HyperRig tool, enhancing user experience and interface usability.
Useful in tool development for creating adaptable and user-friendly interfaces.
Allows for expanding or contracting specific UI elements based on user actions.
- Parameters:
action – <str, optional> #Specifies the action to perform on the UI (‘expand’ or ‘contract’). Default is ‘expand’.
innerFrame – <str, optional> #The inner frame layout to adjust. Default is ‘as_Controls1_FL’.
midFrame – <str, optional> #The middle frame layout to adjust. Default is ‘as_Controls_FL’.
adjHeight – <int, optional> #The adjustment height for the UI elements. Default is 80.
- Returns:
None # This function does not return any value but adjusts the UI elements of the HyperRig tool based on the specified parameters.
Code Examples:
>>> as_HyperRig_AdjustUI('expand', 'as_Controls1_FL', 'as_Controls_FL', 80) # Expands the specified UI elements of the HyperRig tool by 80 units.
If action is expandIf action is contractExpand inner and mid framesContract inner and mid framesAdjust main window height for expansionAdjust main window height for contractionStart/ Check Action/ Expand UI/ Contract UI/ Adjust Main Window/ Adjust Main WindowEnd- Flow Chart Description:
This flowchart illustrates the as_HyperRig_AdjustUI function:
The process starts by checking the specified action (expand or contract).
Based on the action, it either expands or contracts the inner and mid frames of the UI.
The main window height is then adjusted accordingly for either expansion or contraction.
- HyperRig.as_IKFKSetup_SingleChain(self, stJnt=None, endJnt=None, poleDir='-z', solverType=1, poleDist=1.25, ikfkSwitch=None, **shArgs)#
[shArgs : sj=stJnt, ej=endJnt, pd=poleDir, st=solverType, pd=poleDist, is=ikfkSwitch]
Purpose:
:: Sets up an IK/FK switch for a single joint chain, typically used for limbs like arms or legs.
Provides animators with the flexibility to switch between IK and FK controls.
Essential for realistic and varied movements in character animations.
Customizable pole direction and solver type to fit various rigging scenarios.
- Parameters:
stJnt – <str> # Starting joint of the chain (e.g., shoulder joint).
endJnt – <str> # Ending joint of the chain (e.g., wrist joint).
poleDir – <str> # Direction for the pole vector control (‘x’, ‘y’, ‘z’, ‘-x’, ‘-y’, ‘-z’).
solverType – <int> # Type of IK solver used (1 for RP solver, etc.).
poleDist – <float> # Distance multiplier for the pole vector control.
ikfkSwitch – <str> # Optional control object for IK/FK switching.
- Returns:
None # This function does not return a value but sets up IK/FK controls for a joint chain.
Code Examples:
>>> as_IKFKSetup_SingleChain(stJnt='shoulderJnt', endJnt='wristJnt', poleDir='-z', solverType=1, poleDist=1.25, ikfkSwitch='armSwitchCtrl') # Sets up IK/FK switch for an arm with specified parameters.
If Start Joint ProvidedIf Start Joint Not ProvidedIf IK/FK Switch ProvidedIf No IK/FK SwitchStart/ Initialize Parameters/ Check Start Joint/ Create Pole Ctrl/ Error: No Start Joint/ Set Pole Direction/ Create IK/ Create IK Ctrl/ Check IK/FK Switch/ Setup IK/FK Switch/ Error: No IK/FK Switch/ Create FK Ctrl/ Connect FK Ctrl/ Finalize Setup/ End- Flow Chart Description:
This flowchart illustrates the as_IKFKSetup_SingleChain function:
The process starts by initializing parameters like stJnt, endJnt, poleDir, solverType, poleDist, and ikfkSwitch.
- Checks if a start joint is provided.
If a start joint is provided, it creates a pole control.
If no start joint is provided, an error message is displayed.
Sets the direction for the pole vector control.
Creates IK handles for the joint chain.
Creates and positions the IK control.
- Checks if an IK/FK switch control is provided.
If provided, sets up the IK/FK switch mechanism.
If not provided, an error message is displayed.
Creates FK controls for the joint chain.
Connects FK controls to the respective joints.
Finalizes the IK/FK setup.
Completes the process and ends.
- HyperRig.as_ImportSDKs(self, **shArgs)#
Purpose:
:: Imports Set Driven Keys (SDKs) from a specified file into the current Maya scene.
Streamlines the process of transferring SDKs between different scenes or versions of a character rig.
Ensures consistency and accuracy in SDK setups across multiple rigs or iterations.
Reduces the time and effort required to recreate complex SDK setups manually.
- Returns:
None # This function does not return a value but imports SDKs into the current scene.
Code Examples:
>>> as_ImportSDKs() # Imports SDKs from the specified file into the current Maya scene.
If SDK File ExistsIf SDK File Does Not ExistStart/ GetCurrent Scene/ Determine SDK File Path/ Check SDK File Existence/ Import SDKs/ Error: No SDK File Found/ Success MessageEnd- Flow Chart Description:
This flowchart illustrates the as_ImportSDKs function:
The process begins with obtaining the current scene’s name and path.
Determines the file path for the SDKs based on the current scene’s location.
- Checks if the SDK file exists at the determined location.
If the SDK file exists, proceeds to import SDKs into the current Maya scene.
If the SDK file does not exist, displays an error message.
Successful import of SDKs displays a confirmation message.
The process completes and ends.
- HyperRig.as_LockJoints(self, lockAll=0, unlockAll=0, invLock=1, parentChdCount=0, **shArgs)#
[shArgs: ]
Purpose:
:: Locks or unlocks the selected joints for skin weight painting in Autodesk Maya.
This function is useful for controlling the influence of specific joints on a skinned mesh during weight painting.
- Parameters:
lockAll – <bool> # Locks all joints if set to True.
unlockAll – <bool> # Unlocks all joints if set to True.
invLock – <bool> # Inverts the lock state of selected joints.
parentChdCount – <int> # Includes parent and child joints based on the specified count.
- Returns:
None # This function does not return any value but alters the lock state of joints.
Code Examples:
>>> as_LockJoints(lockAll=True) # Locks all joints for skin weight painting.
- HyperRig.as_MakeCtrlVisible(self, ctrlList=None, mesh=None, **shArgs)#
[shArgs: ]
Purpose:
:: Makes specified control curves visible on a given mesh in Autodesk Maya.
This function is used to enhance the visibility of control curves over a skinned mesh, especially during animation and rigging processes.
- Parameters:
ctrlList – <list> # List of control curves to be made visible.
mesh – <str> # Name of the mesh over which the controls will be made visible.
- Returns:
None # This function does not return any value but updates the visibility of control curves.
Code Examples:
>>> control_list = ["ctrl1", "ctrl2"] >>> mesh_name = "character_mesh" >>> as_MakeCtrlVisible(control_list, mesh_name) # Makes specified control curves visible on the given mesh.
- HyperRig.as_MirrorCtrlShapes(self, mirrorLetters=False, **shArgs)#
[shArgs: ]
Purpose:
:: Mirrors the shapes of selected control curves in Autodesk Maya.
This function is essential in rigging, especially when creating symmetrical control setups for characters or objects.
- Parameters:
mirrorLetters – <bool> # Determines if the lettering on the controls should be mirrored.
- Returns:
None # This function does not return any value but mirrors the shapes of selected control curves.
Code Examples:
>>> as_MirrorCtrlShapes(mirrorLetters=True) # Mirrors the shapes of selected control curves along with their lettering.
Mirror LettersNo Mirror LettersStartGet Selected Controls/ Check Mirror Letters/ Loop Through Controls (Letters)/ Loop Through Controls (No Letters)/ Determine Side (Letters)/ Mirror Control Shapes (Letters)End/ Determine Side (No Letters)/ Mirror Control Shapes (No Letters)- Flow Chart Description:
This flowchart illustrates the as_MirrorCtrlShapes function:
The process starts by obtaining the list of selected control curves in Maya.
It then checks if letter mirroring is enabled.
Depending on the letter mirroring setting, it loops through the selected controls.
For each control, it determines the side (left, right, or other) based on its naming convention.
Finally, it mirrors the control shapes, either with or without letter mirroring as specified.
- HyperRig.as_MoveValuesToGrp(self, attrList=['t', 'r'], grpLevel=1, **shArgs)#
[shArgs: ]
Purpose:
:: Transfers transform attribute values (like translation, rotation) to a specified group level in Autodesk Maya.
This function is utilized in rigging to clean up control attributes by moving them up the hierarchy.
- Parameters:
attrList – <list> # List of attributes to be transferred (e.g., [‘t’, ‘r’] for translation and rotation).
grpLevel – <int> # Specifies the group level to which the attributes will be transferred.
- Returns:
None # This function does not return any value but transfers attribute values to the specified group level.
Code Examples:
>>> attributes = ['t', 'r'] >>> group_level = 1 >>> as_MoveValuesToGrp(attributes, group_level) # Transfers translation and rotation values to the specified group level.
- HyperRig.as_PaintDisplay(self, val=1.0, **shArgs)#
[shArgs: ]
Purpose:
:: Adjusts the display settings for the Artisan Paint Skin Weights tool in Autodesk Maya.
This function is used to modify the display settings such as color range for better visibility during weight painting.
- Parameters:
val – <float> # The value to set for the upper color range in the Artisan Paint Skin Weights tool.
- Returns:
None # This function does not return any value but adjusts the display settings for skin weight painting.
Code Examples:
>>> upper_color_range = 1.0 >>> as_PaintDisplay(upper_color_range) # Adjusts the upper color range for the Artisan Paint Skin Weights tool.
- HyperRig.as_PaintToggleColor(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the color display mode for the Artisan Paint Skin Weights tool in Autodesk Maya.
This function allows users to switch between different color display modes, enhancing the visibility during weight painting.
- Returns:
None # This function does not return any value but toggles the color display mode for the weight painting tool.
Code Examples:
>>> as_PaintToggleColor() # Toggles the color display mode for the Artisan Paint Skin Weights tool.
Check if Color Ramp is EnabledCheck if Color Ramp is DisabledColor Ramp DisabledColor Ramp EnabledStart/ Check Color Ramp/ Disable Color Ramp/ Enable Color RampEnd- Flow Chart Description:
This flowchart illustrates the as_PaintToggleColor function:
The process starts by checking the current state of the Color Ramp in the Artisan Paint Skin Weights tool.
If the Color Ramp is enabled, it gets disabled to switch to the default color mode.
If the Color Ramp is disabled, it gets enabled to provide a gradient color display for weight painting.
- HyperRig.as_PrefixHI(self, selectedObjs=False, **shArgs)#
[shArgs : ol=objList, so=selectedObjs]
Purpose:
:: Adds a specified prefix to the hierarchy of selected objects in Maya.
Aids in organizing and categorizing objects within a scene based on their functionality or role.
Useful for batch renaming, especially in complex scenes or rigs.
Offers customization for prefix addition, targeting either selected objects or their entire hierarchy.
- Parameters:
objList – <list> # List of objects to prepend the prefix to.
selectedObjs – <bool, optional> # Determines if the prefix is added to only the selected objects (True) or their full hierarchy (False).
- Returns:
None # This function doesn’t return a value but renames objects in the scene.
Code Examples:
>>> as_PrefixHI(objList=['obj1', 'obj2'], selectedObjs=False) # Adds a specified prefix to the entire hierarchy of the listed objects.
If OK is ClickedIf CancelledPrepend Prefix to HierarchyStart/ Get Selected Objects/ Prompt Prefix (Ctrl_)/ Check Prompt Result/ Get Prefix Text/ Prepend Prefix/ Error: Action CancelledEnd- Flow Chart Description:
This flowchart illustrates the as_PrefixHI function:
Begins by gathering a list of currently selected objects in Maya.
Prompts the user to enter a prefix, with a default suggestion of ‘Ctrl_’.
- After the prompt, checks if the user clicked ‘OK’ or cancelled the action.
If ‘OK’ is selected, retrieves the entered prefix text.
If the action is cancelled, displays an error message and terminates the process.
- If ‘OK’ is selected, prepends the entered prefix to each object in the hierarchy.
The prefix is added based on the selection of either the objects alone or their entire hierarchy.
- HyperRig.as_ReBuildBodyModule(self, **shArgs)#
[shArgs : ]
Purpose:
:: Rebuilds body modules in Autodesk Maya based on the selected module from the UI radio button groups.
This function dynamically rebuilds a body module based on user interface selections.
It supports rebuilding various body parts like Spine, Arm, Leg, Hand, Neck, Eyes, Tongue, and more.
Utilizes the HyperRig class to rebuild different types of rig modules.
- Parameters:
module – <int> #Module number selected from the UI, determines the type of body module to rebuild.
- Returns:
None #No return value, it rebuilds body modules in the Maya scene.
Code Examples:
>>> module = 1 >>> as_ReBuildBodyModule(module)
If module is providedIf module is not providedRebuild body module based on selected moduleStart/ Check Module/ Rebuild ModuleEnd- Flow Chart Description:
This flowchart illustrates the as_ReBuildBodyModule function:
The process starts by checking if a module number is selected from the UI.
If a module is selected, the function rebuilds a body module based on the selected module type, such as Spine, Arm, Leg, Hand, Neck, Eyes, Tongue, etc.
- HyperRig.as_ReBuildLeg_Setup(self, **shArgs)#
[shArgs : ]
Purpose:
:: Rebuilds the leg setup in Autodesk Maya.
This function confirms the action to rebuild the leg setup.
It performs operations like renaming setups, transferring skin, and cleaning up prefixed controls.
Utilizes various internal functions for manipulating and configuring nodes and hierarchies.
No specific arguments for this function.
- Returns:
None #No return value, it rebuilds the leg setup in the Maya scene.
Code Examples:
>>> as_ReBuildLeg_Setup()
If action confirmedIf action cancelledStart/ Confirm Action/ Rename SetupEnd/ Build Leg Setup/ Transfer Skinning/ Update Control Shapes/ Remove Prefixed Items/ Final Message- Flow Chart Description:
This flowchart illustrates the as_ReBuildLeg_Setup function:
The process starts with confirming the action to rebuild the leg setup.
Next, it renames existing setups by prefixing them and removes unwanted items.
The leg setup is then rebuilt and skinning is transferred to the new setup.
Control shapes are updated, and prefixed controls, joints, IKs, and other groups are removed.
Finally, a message is displayed indicating the successful rebuild of the leg setup.
- HyperRig.as_ReBuildLeg_Setup01(self, **shArgs)#
[shArgs : ]
Purpose:
:: Rebuilds and updates an existing leg rig setup in Autodesk Maya, incorporating improvements like bendy setup and toe joint creation.
This function is used to modify and enhance an existing leg rig, integrating new features and corrections.
It allows for the inclusion of a bendy setup, which adds flexibility and realism to the leg animations.
The option to create toe joints is provided, enabling more detailed foot and toe animations.
It is suitable for both biped and quadruped characters, making it versatile for various types of character rigs.
The function ensures that the updated rig maintains compatibility with the rest of the character’s rigging system.
- Returns:
None # This function updates an existing leg rig but doesn’t return a value.
Code Examples:
>>> as_ReBuildLeg_Setup01() # Updates and enhances an existing leg rig with new features in Autodesk Maya.
Verify if Global_Control existsCreate Global_Control and necessary hierarchyUpdate existing leg rigIf Bendy Setup is selectedNo Bendy SetupIf Create Toe Setup is selectedNo Toe SetupStart/ Check Global Hierarchy/ Create Hierarchy/ Rebuild Leg Setup/ Check Bendy Setup/ Apply Bendy Setup/ Check Toe Setup/ Create Toe JointsEnd- Flow Chart Description:
This flowchart illustrates the as_ReBuildLeg_Setup01 function:
The process begins with a check for the existence of a Global Control hierarchy.
If absent, a new hierarchy including Global Control is created.
The function then proceeds to update the existing leg rig.
It checks if the bendy setup is selected; if yes, it applies the bendy setup.
After applying the bendy setup, or if no bendy setup is chosen, it checks for toe setup.
If the toe setup is selected, toe joints are created; otherwise, the process ends.
The updated leg rig setup is now integrated, ensuring compatibility with the overall character rig.
- HyperRig.as_RebindSkinMeshes(self, **shArgs)#
[shArgs: ]
Purpose:
:: Rebinds skin meshes in Autodesk Maya, exporting and importing skin weights for the process.
Useful in rigging workflows for updating or modifying skinning on characters or objects.
- Returns:
None # This function does not return any value but rebinds skin meshes with updated skin weights.
Code Examples:
>>> as_RebindSkinMeshes() # Rebinds skin meshes by exporting and importing skin weights.
Regular Re-Bind MethodSuper-Fast Re-Bind MethodAction CancelledIf Delete HistoryIf Not Delete HistoryStart/ Confirm Re-Bind Method/ Export Skin WeightsEnd/ Select Top Group or Meshes/ Determine Skin Meshes/ Start Rebinding Process/ For Each Skin Mesh in List/ Check Delete History/ Delete Mesh History/ Delete Skin Cluster/ Bind Skin/ Progress Skin Mesh Rebind/ Import Skin Weights- Flow Chart Description:
This flowchart illustrates the as_RebindSkinMeshes function:
Starts by confirming the method for re-binding skin (Regular or Super-Fast).
If action is cancelled, the process ends.
Exports skin weights for the skin meshes.
Selects the top group or individual meshes.
Determines which meshes are skinned.
Begins the re-binding process for each skin mesh in the list.
- Checks if delete history is enabled.
If delete history is enabled, deletes the mesh history.
If not, deletes the existing skin cluster.
Binds skin to the mesh with updated weights.
Shows progress for each skin mesh being rebound.
Imports the skin weights for the rebound meshes.
Concludes the re-binding process.
- HyperRig.as_RemoveInvSkinJntWgts(self, **shArgs)#
[shArgs: ]
Purpose:
:: Removes inverse skin joint weights for selected vertices or joints in Autodesk Maya.
This function is used in skinning workflows to clean up or adjust skin weights on a mesh.
- Returns:
None # This function does not return any value but removes inverse skin joint weights from selected vertices or joints.
Code Examples:
>>> as_RemoveInvSkinJntWgts() # Removes inverse skin joint weights for the current selection.
If SkinMesh existsIf SkinMesh doesn't existIf Joints are selectedIf Vertices are selectedSet weights to 0.0Start/ Check Mesh Existence/ Check Selection/ Error: Enter 'SkinMesh' in UI/ Lock Joints/ Select Vertices/ Select Inverse Joints/ Skin Paint Selected JointsEnd- Flow Chart Description:
This flowchart illustrates the as_RemoveInvSkinJntWgts function:
The process begins by checking if the ‘SkinMesh’ exists in the UI.
If ‘SkinMesh’ doesn’t exist, an error is displayed.
The function checks if joints or vertices are selected.
For selected joints, it locks the joints and selects inverse skin joints.
For selected vertices, it adds them to the selection of inverse joints.
Finally, it sets the skin weights to 0.0 for the selected joints on the specified vertices, effectively removing inverse skin joint weights.
- HyperRig.as_RenameGrps(self, grpLevel=1, **shArgs)#
[shArgs: ]
Purpose:
:: Renames groups based on selected control objects in Autodesk Maya.
This function assists in organizing and naming groups in a rigging hierarchy, ensuring consistency and clarity in naming conventions.
- Parameters:
grpLevel – <int> # Specifies the level of groups to rename based on the selected control objects.
- Returns:
None # This function does not return any value but renames groups based on the selection.
Code Examples:
>>> group_level = 1 >>> as_RenameGrps(group_level) # Renames groups based on the selected control objects and specified group level.
If Parent ExistsIf No ParentIf Level 1If Level 2If Not Level 2Start/ Select Objects/ Check Parent Group/ Rename to SdkGrp or ConnectGrp/ Check for Group Level 1End/ Rename to ConnectGrp or OffsetGrp/ Check for Group Level 2/ Rename to OffsetGrp or ExtraGrp- Flow Chart Description:
This flowchart illustrates the as_RenameGrps function:
The process begins with the selection of control objects.
It checks for the existence of a parent group for each selected object.
If a parent exists, it renames the parent group to either ‘SdkGrp’ or ‘ConnectGrp’, based on existing names.
Then, it checks if Group Level 1 is specified and renames the group accordingly to either ‘ConnectGrp’ or ‘OffsetGrp’.
For Group Level 2, it renames the group to either ‘OffsetGrp’ or ‘ExtraGrp’.
The process ends after renaming groups based on the selected control objects and specified group level.
- HyperRig.as_ReorderSiblings(self, **shArgs)#
[shArgs: ]
Purpose:
:: Reorders siblings based on their names or a specific order in Autodesk Maya.
Useful for organizing hierarchical structures in rigging and scene setup.
- Returns:
None # This function does not return any value but reorders siblings based on their names.
Code Examples:
>>> as_ReorderSiblings() # Reorders siblings based on their names in the hierarchy.
If Selection ExistsIf No SelectionStart/ Check Selection/ Retrieve Siblings/ Error: No Selection/ Sort Siblings/ Reorder Siblings Based on SortEnd- Flow Chart Description:
This flowchart illustrates the as_ReorderSiblings function:
The process starts by checking if an object is selected.
If no object is selected, an error message is displayed.
- If an object is selected:
Retrieves the list of siblings for the selected object.
Sorts the siblings based on their names.
Reorders the siblings in the hierarchy based on the sorted order.
The process concludes.
- HyperRig.as_ReplaceCtrlShapes(self, shapeNum=1, trgtCtrls=None, **shArgs)#
[shArgs: ]
Purpose:
:: Replaces the shapes of selected control curves with predefined shapes in Autodesk Maya.
This function allows for quick customization of control curve shapes in rigging setups.
- Parameters:
shapeNum – <int> # The number corresponding to the predefined control shape to use.
trgtCtrls – <list> # List of target control curves to replace shapes for.
- Returns:
None # This function does not return any value but replaces control curve shapes for the specified targets.
Code Examples:
>>> shape_number = 1 >>> target_controls = ["ctrl1", "ctrl2"] >>> as_ReplaceCtrlShapes(shape_number, target_controls) # Replaces the shapes of specified control curves with the chosen predefined shape.
If Shape Number is ValidIf No Shape NumberDetermine Specific ShapeStart/ Check Shape Number/ Select Target ControlsEnd/ Loop Through Target Controls/ Check Shape Type/ Create New Shape/ Replace Control Shape/ Rename Control/ Apply Control Color- Flow Chart Description:
This flowchart illustrates the as_ReplaceCtrlShapes function:
The process starts by checking if a valid shape number is provided.
If a valid shape number is given, it selects the target control curves for shape replacement.
Loops through each selected control, determining the type of predefined shape to create.
Creates a new control shape based on the specified shape number.
Replaces the existing control shape with the newly created shape.
Renames the control to match the new shape.
Applies the control color to the new shape.
The process ends after replacing and updating all selected control curves.
- HyperRig.as_ResetSkinnedJoints(self, skinJnts=None, **shArgs)#
[shArgs: ]
Purpose:
:: Resets the skin deformation for selected joints in Autodesk Maya.
This function is useful for correcting skin deformations by resetting the influence of selected joints on a skinned mesh.
- Parameters:
skinJnts – <list> # List of joints to reset skin deformation for. If not provided, selected joints are used.
- Returns:
None # This function does not return any value but resets the skin deformation for the specified joints.
Code Examples:
>>> joints_to_reset = ["joint1", "joint2"] >>> as_ResetSkinnedJoints(joints_to_reset) # Resets the skin deformation for the specified joints.
- HyperRig.as_SelectBS(self, selObjs=None, action='', **shArgs)#
[shArgs : so=selObjs, ac=action]
Purpose:
:: Selects or disables blend shapes on selected objects in Maya.
Facilitates quick selection or deactivation of blend shapes for character rigging or animation.
Streamlines the process of managing blend shapes on multiple objects.
Supports disabling all blend shape targets of the selected objects.
- Parameters:
selObjs – <list, optional> # List of objects to select blend shapes on.
action – <str> # Action to perform: ‘disable’ to disable blend shapes.
- Returns:
None # This function does not return a value but affects blend shapes on objects.
Code Examples:
>>> as_SelectBS(selObjs=['object1', 'object2'], action='disable') # Disables all blend shape targets on the specified objects.
If MeshIf TransformIf 'disable'If no specific actionStart/ Get Selected Objects/ Check Object Type/ List Blend Shapes/ Select Hierarchy/ Check Action/ Disable Blend ShapesEnd/ Raise Attribute Editor/ Select Objects/ Display Disabled Info- Flow Chart Description:
This flowchart illustrates the as_SelectBS function:
Starts by obtaining a list of selected objects in the Maya scene.
- Checks the type of the selected objects to determine if they are meshes or transforms.
If they are meshes, it lists their blend shapes.
If they are transforms, it selects the entire hierarchy to list blend shapes.
- After listing blend shapes, checks if the action is to ‘disable’.
If the action is ‘disable’, it disables all blend shape targets for the selected objects.
Raises the Attribute Editor or Channel Box to show the changes.
Selects the objects with disabled blend shapes and displays a confirmation message.
- HyperRig.as_SelectByType(self, select_Type=1, nodeSuffix=None, **shArgs)#
[shArgs: ]
Purpose:
:: Selects objects in the scene by a specified type or custom node suffix in Autodesk Maya.
This function streamlines the selection process, especially in complex scenes with numerous object types.
- Parameters:
select_Type – <int> # The type of objects to select (e.g., 1 for controls, 2 for joints).
nodeSuffix – <str> # Optional custom suffix for selecting nodes.
- Returns:
<list> # Returns a list of selected objects of the specified type or with the custom suffix.
Code Examples:
>>> select_type = 1 >>> node_suffix = "Ctrl" >>> as_SelectByType(select_Type=select_type, nodeSuffix=node_suffix) # Selects all objects of type 1 (controls) with the specified node suffix.
Type 1 (Controls)If Node Suffix SpecifiedIf No Node SuffixType 2 (Joints)If Node Suffix SpecifiedIf No Node SuffixType 3 (Geometry)If Node Suffix SpecifiedIf No Node SuffixType 4 (Locators)If Node Suffix SpecifiedIf No Node SuffixType 5 (Others)If Node Suffix SpecifiedIf No Node SuffixType 10 (Invert Selection)Start/ Check Select Type/ Check Node Suffix for Controls/ Select Controls With Suffix/ Select All Controls/ Check Node Suffix for Joints/ Select Joints With Suffix/ Select All Joints/ Check Node Suffix for Geometry/ Select Geometry With Suffix/ Select All Geometry/ Check Node Suffix for Locators/ Select Locators With Suffix/ Select All Locators/ Check Node Suffix for Others/ Select Others With Suffix/ Select All Others/ Invert SelectionEnd- Flow Chart Description:
This flowchart illustrates the as_SelectByType function:
Begins by checking the type of objects to select.
- For each type (controls, joints, geometry, locators, others):
Checks if a custom node suffix is specified.
If a node suffix is specified, selects objects of that type with the suffix.
If no node suffix is specified, selects all objects of that type.
If type 10 is chosen, inverts the current selection.
The process concludes.
- HyperRig.as_SelectHI(self, nodeType=None, noEndJnt=0, typeInput=None, endsWith=None, **shArgs)#
[shArgs : ol=objList, nt=nodeType, ne=noEndJnt, ti=typeInput, ew=endsWith]
Purpose:
:: Selects hierarchy of objects based on node type in Maya.
Ideal for filtering and selecting objects within a hierarchy, such as joints, meshes, etc.
Supports exclusion of end joints in a joint chain.
Allows dynamic input of node types and optional filtering based on name endings.
- Parameters:
objList – <list> # List of objects to begin the hierarchy selection from.
nodeType – <str, optional> # Type of node to filter the selection.
noEndJnt – <int> # Whether to exclude end joints in the selection (1) or not (0).
typeInput – <str, optional> # Dynamic input for node type, if required.
endsWith – <str, optional> # Filter objects that end with a specific string.
- Returns:
None # This function does not return a value but selects objects in the scene.
Code Examples:
>>> as_SelectHI(objList=['rootJoint'], nodeType='jnt', noEndJnt=1) # Selects all joints in the hierarchy of 'rootJoint', excluding end joints.
If Node Type GivenIf No Node Type GivenIf No End JointsInclude End JointsStart/ Get Selected Objects/ Check Node Type/ Select Hierarchy/ Prompt Node Type/ Filter End Joints/ Exclude End JointsEnd- Flow Chart Description:
This flowchart illustrates the as_SelectHI function:
Starts by selecting objects based on the user’s input.
- Checks if a specific node type has been provided.
If a node type is given, it selects the entire hierarchy of that node type.
If no node type is given, prompts the user to input the desired node type.
- After selecting the hierarchy, it checks if end joints need to be excluded.
If ‘noEndJnt’ is set, it excludes end joints from the selection.
Completes the process by selecting the filtered hierarchy or excluding end joints.
- HyperRig.as_SelectInvSkinJoints(self, **shArgs)#
[shArgs: ]
Purpose:
:: Selects inverse skin joints that are not part of the current selection in Autodesk Maya.
This function is useful for riggers and animators to quickly select joints that are not currently influencing the skin.
- Returns:
<list> # Returns a list of inverse skin joints not included in the current selection.
Code Examples:
>>> as_SelectInvSkinJoints() # Selects inverse skin joints not part of the current selection.
If SkinMesh is definedIf SkinMesh is not definedJoints SelectedSelect joints not in current selectionStart/ Check SkinMesh in UI/ Get All Skin Joints/ Error: 'SkinMesh' not defined/ Get Current Selection/ Compare Selection with All Joints/ Select Inverse JointsEnd- Flow Chart Description:
This flowchart illustrates the as_SelectInvSkinJoints function:
The process begins by checking if the ‘SkinMesh’ is defined in the UI.
If ‘SkinMesh’ is not defined, an error message is displayed.
It retrieves all skin joints associated with the ‘SkinMesh’.
The function then gets the current selection of joints.
It compares the current selection with the list of all skin joints.
Finally, it selects the inverse joints, which are not part of the current selection.
- HyperRig.as_SelectSiblings(self, **shArgs)#
[shArgs: ]
Purpose:
:: Selects sibling objects of the currently selected object in Autodesk Maya.
Useful for rigging and scene organization, allowing quick selection of related objects in a hierarchy.
- Returns:
None # This function does not return any value but selects siblings of the current selection.
Code Examples:
>>> as_SelectSiblings() # Selects sibling objects of the currently selected object.
- HyperRig.as_SetCtrlsHistory(self, selList=None, showHist=0, **shArgs)#
[shArgs: ]
Purpose:
:: Sets the historical interest attribute for selected controls, optimizing scene performance and management.
Ideal for large scenes where controlling the visibility of historical data can enhance performance.
Provides the option to show or hide historical data for selected controls.
- Parameters:
selList – <list, optional> #A list of controls for which the historical interest is to be set. If not provided, uses the current selection.
showHist – <int, optional> #Determines whether to show (1) or hide (0) the historical data. Default is 0.
- Returns:
None # This function does not return any value but sets the historical interest for the selected controls.
Code Examples:
>>> as_SetCtrlsHistory([control1, control2], 1) # Sets the historical interest for the specified controls to show.
If selList is providedIf selList is not providedSet historical interest attribute based on showHistStart/ Check Selection/ Set Historical Interest/ Get All NodesEnd- Flow Chart Description:
This flowchart illustrates the as_SetCtrlsHistory function:
The process begins by checking if a specific list of controls (selList) is provided.
If selList is not provided, the function gathers all nodes in the scene.
The historical interest attribute is then set for either the selected controls or all nodes, based on the value of showHist.
- HyperRig.as_SetNextSibling(self, pos=None, **shArgs)#
[shArgs: ]
Purpose:
:: Sets the next sibling for a selected object in a hierarchy in Autodesk Maya.
Ideal for rigging and scene organization, allowing users to re-order objects in a hierarchical structure.
- Parameters:
pos – <int/None> # Position for the sibling. None for next position, 0 for first, -1 for last.
- Returns:
None # This function does not return any value but sets the next sibling in the hierarchy.
Code Examples:
>>> as_SetNextSibling(pos=None) # Sets the next sibling for the selected object in its hierarchical order.
If Selection ExistsIf No SelectionIf Multiple Objects SelectedIf Single Object SelectedIf Position Specified (0, -1)If Position Not Specified (None)Start/ Check Selection/ Check Multiple Selection/ Error: No Selection/ Check Position Value/ Set Sibling for Single Object/ Set Sibling at Specific Position/ Set Next SiblingEnd- Flow Chart Description:
This flowchart illustrates the as_SetNextSibling function:
Begins by checking if any object is selected.
If no object is selected, an error is displayed.
- If an object is selected:
Checks if multiple objects are selected.
If multiple objects are selected, checks the position value (0, -1, None).
For specific position values (0, -1), sets siblings at the specific position.
If position is None, sets the next sibling in the hierarchy.
If a single object is selected, sets sibling based on the number of children in the parent.
The process concludes.
- HyperRig.as_SkinPaint(self, val=0.01, operation='add', **shArgs)#
[shArgs: ]
Purpose:
:: Adjusts the skin weight painting tool settings for selected vertices in Autodesk Maya.
This function allows users to modify the behavior and values of the skin weight painting tool.
- Parameters:
val – <float> # The value to set for the paint operation.
operation – <str> # The operation to perform: ‘add’ or ‘scale’.
- Returns:
None # This function does not return any value but adjusts the painting tool settings for the current selection.
Code Examples:
>>> value = 0.01 >>> operation = "add" >>> as_SkinPaint(value, operation) # Adjusts the skin weight painting tool settings for the current selection.
If 'add'If 'scale'If Selected is VertexIf Selected is Not VertexStart/ Get Current Selection/ Check Operation Type/ Set 'Add' Operation/ Set Opacity for 'Add'/ Set Value for 'Add'/ Set 'Scale' Operation/ Set Opacity for 'Scale'/ Set Value for 'Scale'/ Check if Selection is Vertex/ Select VerticesEnd- Flow Chart Description:
This flowchart illustrates the as_SkinPaint function:
The process starts by getting the current selection.
It checks the operation type, which can be either ‘add’ or ‘scale’.
For the ‘add’ operation, it sets the operation, opacity, and value.
For the ‘scale’ operation, it also sets the operation, opacity, and value.
The function then checks if the selection is a vertex.
If the selection is a vertex, it selects the vertices and adjusts the painting tool settings.
- HyperRig.as_SkinPaint_SelectedJoints(self, val=0.01, operation='add', **shArgs)#
[shArgs: ]
Purpose:
:: Adjusts skin weights for selected joints and vertices in Autodesk Maya.
This function is similar to as_SkinPaint but specifically targets selected joints and vertices for weight painting.
- Parameters:
val – <float> # The value to set for the paint operation.
operation – <str> # The operation to perform: ‘add’ or ‘scale’.
- Returns:
None # This function does not return any value but adjusts skin weights for selected joints and vertices.
Code Examples:
>>> value = 0.01 >>> operation = "add" >>> as_SkinPaint_SelectedJoints(value, operation) # Adjusts skin weights for selected joints and vertices.
If 'add'If 'scale'Start/ Get Current Selection/ Extract Joints and Vertices/ Check Operation Type/ Set 'Add' Operation/ Set Opacity for 'Add'/ Set Value for 'Add'/ Set 'Scale' Operation/ Set Opacity for 'Scale'/ Set Value for 'Scale'/ Start Progress Bar for Joints/ Apply Settings to Each Joint/ End Progress BarEnd- Flow Chart Description:
This flowchart illustrates the as_SkinPaint_SelectedJoints function:
The process begins by obtaining the current selection of joints and vertices.
It then checks the operation type, either ‘add’ or ‘scale’.
For the ‘add’ operation, it sets the operation type, opacity, and value.
For the ‘scale’ operation, it also sets the operation type, opacity, and value.
A progress bar is started for each joint in the selection.
The settings are applied to each joint in the selection.
Finally, the progress bar is ended, and the process is completed.
- HyperRig.as_SmoothNearest(self, **shArgs)#
[shArgs: ]
Purpose:
:: Executes the as_SmoothNearestMain function in Autodesk Maya.
This function is used for smoothing operations, related to skin weights or geometry.
- Returns:
None # This function does not return any value but triggers the as_SmoothNearestMain function.
Code Examples:
>>> as_SmoothNearest() # Executes the as_SmoothNearestMain function.
Start/ Execute as_SmoothNearestMainEnd- Flow Chart Description:
This flowchart illustrates the as_SmoothNearest function:
The process begins by executing the as_SmoothNearestMain function in Autodesk Maya.
The function is used for smoothing operations, such as skin weights or geometry adjustments.
- HyperRig.as_SnapCtrlShapes(self, **shArgs)#
[shArgs: ]
Purpose:
:: Snaps control shapes to their respective controls in Autodesk Maya.
Essential for rigging to ensure control shapes are correctly aligned with their respective controls.
- Returns:
None # This function does not return any value but snaps control shapes to their controls.
Code Examples:
>>> as_SnapCtrlShapes() # Snaps control shapes to their respective controls.
If Selection ExistsIf No SelectionIf Control Is CurveIf Not CurveNext ControlAll Controls ProcessedStart/ Check Selection/ Retrieve Controls/ Error: No Selection/ Check Shape Type/ Snap Shapes To Controls/ Skip Control/ Next ControlEnd- Flow Chart Description:
This flowchart illustrates the as_SnapCtrlShapes function:
The process starts by checking if an object is selected.
If no object is selected, an error message is displayed.
If an object is selected, it retrieves the list of selected controls.
- For each control:
Checks if the control is a curve.
If the control is a curve, snaps the control shape to the control.
If the control is not a curve, it skips to the next control.
Continues the process for all selected controls.
The process concludes.
- HyperRig.as_SnapPivTo(self, snapToOrigin=0, **shArgs)#
[shArgs: ]
Purpose:
:: Snaps the pivot of selected objects to a target object or to the origin in Autodesk Maya.
Useful in modeling and rigging for precise alignment of object pivots.
- Parameters:
snapToOrigin – <bool> # If True, snaps the pivot to the origin.
- Returns:
None # This function does not return any value but snaps the pivot of selected objects.
Code Examples:
>>> snap_to_origin = False >>> as_SnapPivTo(snapToOrigin=snap_to_origin) # Snaps the pivot of selected objects to the last selected object.
If Selection ExistsIf No SelectionIf Snap To OriginIf Not Snap To OriginNext ObjectAll Objects ProcessedStart/ Check Selection/ Iterate Objects/ Error: No Selection/ Check Snap to Origin/ Snap Pivot to Origin/ Snap Pivot to Last Selected/ Next ObjectEnd- Flow Chart Description:
This flowchart illustrates the as_SnapPivTo function:
Starts by checking if objects are selected.
If no objects are selected, an error message is displayed.
If objects are selected, it iterates through each object (except the last one).
- Checks if the pivot should be snapped to the origin.
If yes, snaps the pivot of the object to the origin [0, 0, 0].
If no, snaps the pivot of the object to the position of the last selected object.
Continues the process for all selected objects (except the last one).
The process concludes.
- HyperRig.as_SnapPosTo(self, snapRot=0, nearCenter=0, **shArgs)#
[shArgs: ]
Purpose:
:: Snaps the position of selected objects to a target object or nearest center in Autodesk Maya.
This function is used in rigging and modeling to precisely align objects based on their positions.
- Parameters:
snapRot – <bool> # Determines if rotation should also be snapped.
nearCenter – <bool> # If True, snaps to the nearest center between multiple selected objects.
- Returns:
None # This function does not return any value but snaps positions of selected objects to the target or nearest center.
Code Examples:
>>> snap_rotation = True >>> snap_to_nearest_center = False >>> as_SnapPosTo(snap_rotation, snap_to_nearest_center) # Snaps the position (and rotation if specified) of selected objects to the target or nearest center.
If no selectionIf selection is presentIf nearCenter is TrueIf nearCenter is FalseIf selection count != 3If selection count is 3If joint with parent and childIf not a joint or no parent/childStart/ Check Selection/ Error: No Selection/ Check nearCenter/ Check Selection Count/ Snap Positions/ Check Joint Selection/ Generate Curve/ Update Selection List/ Error: Invalid Joint Selection/ Locate Closest Position/ Snap to Closest Position/ Delete Temporary ObjectsEnd- Flow Chart Description:
This flowchart illustrates the as_SnapPosTo function:
The function starts by checking the selection of objects. If no objects are selected, an error is displayed.
If nearCenter is True, it checks the number of selected objects. If the count is not three, it further checks if the selected object is a joint with a parent and child.
If the selected joint is valid, the selection list is updated. A temporary curve is generated to locate the closest position to snap.
The source object is then snapped to this closest position, and temporary objects are deleted.
If nearCenter is False, the positions of the selected objects are directly snapped to the last selected object.
- HyperRig.as_SnapRotTo(self, toWorld=0, mirrBehaviour=0, **shArgs)#
[shArgs: ]
Purpose:
:: Snaps the rotation of selected objects to a target object or aligns to the world axis in Autodesk Maya.
Useful in rigging and animation for aligning rotations of objects or controls.
- Parameters:
toWorld – <bool> # If True, aligns the rotation to the world axis.
mirrBehaviour – <bool> # If True, mirrors the rotation behavior for the selected objects.
- Returns:
None # This function does not return any value but snaps the rotation of selected objects.
Code Examples:
>>> as_SnapRotTo(toWorld=True, mirrBehaviour=False) # Snaps the rotation of selected objects to the world axis without mirroring behavior.
If no selectionIf selection is presentIf mirrBehaviour is TrueIf mirrBehaviour is FalseIf selection count is 2If selection count is 1If toWorld is TrueIf toWorld is FalseStart/ Check Selection/ Error: No Selection/ Check mirrBehaviour/ Check Selection Count/ Check toWorld/ Snap with Mirror Behaviour/ Adjust and Snap with MirrorEnd/ Snap to World Axis/ Snap Rotations- Flow Chart Description:
This flowchart illustrates the as_SnapRotTo function:
The function begins by checking if any objects are selected. If not, an error is displayed.
It then checks if the mirrBehaviour parameter is True. If so, it further checks the selection count.
For two selected objects, it snaps the rotation with mirror behavior. For one object, it adjusts and snaps with mirror behavior.
If mirrBehaviour is False, it checks if toWorld is True to snap the rotation to the world axis.
If toWorld is False, it snaps the rotations of the selected objects to the last selected object.
- HyperRig.as_SnapToComponents(self, components='vtx', **shArgs)#
[shArgs: ]
Purpose:
:: Snaps selected objects to specified components (vertices or edges) in Autodesk Maya.
This function is primarily used in modeling and rigging for precise positioning of objects relative to mesh components.
- Parameters:
components – <str> # Specifies the type of components to snap to, such as ‘vtx’ for vertices or ‘edge’ for edges.
- Returns:
None # This function does not return any value but snaps objects to the specified components.
Code Examples:
>>> as_SnapToComponents(components='vtx') # Snaps selected objects to vertices of a mesh.
If selection is presentIf no selectionIf 'vtx'If 'edge'Start/ Check Selection/ Check Components/ Error: No Selection/ Filter Vertices/ Filter Edges/ Snap to Vertices/ Snap to EdgesEnd- Flow Chart Description:
This flowchart illustrates the as_SnapToComponents function:
The process begins by checking if any objects are selected. If not, an error is displayed.
It then checks the components parameter to determine whether to snap to vertices (‘vtx’) or edges.
If ‘vtx’ is chosen, it filters out vertices from the selection and snaps the remaining objects to these vertices.
If ‘edge’ is chosen, it filters out edges from the selection and snaps the remaining objects to these edges.
- HyperRig.as_SnapToPosLocators(self, snapRot=1, snapPos=1, pivotSnap=0, toShapePos=0, **shArgs)#
[shArgs : ol=objList, sr=snapRot, sp=snapPos, ps=pivotSnap, ts=toShapePos]
Purpose:
:: Snaps selected objects to their corresponding position locators in Maya.
Ideal for repositioning objects back to saved locator positions.
Provides options for snapping rotation, position, and pivot.
Can snap to the position of the object’s shape instead of the locator.
- Parameters:
objList – <list> # List of objects to be snapped to their position locators.
snapRot – <int> # Whether to snap the object’s rotation (1) or not (0).
snapPos – <int> # Whether to snap the object’s position (1) or not (0).
pivotSnap – <int> # Whether to snap the object’s pivot to the locator’s position (1) or not (0).
toShapePos – <int> # Whether to snap to the object’s shape position (1) or the locator’s position (0).
- Returns:
None # This function does not return a value but snaps objects to their locators.
Code Examples:
>>> as_SnapToPosLocators(snapRot=1, snapPos=1, pivotSnap=0, toShapePos=0) # Snaps selected objects to their position locators, including rotation and position.
For Each ObjectIf ToShapePos is 1If ToShapePos is 0If Locator ExistsIf Locator Does Not ExistIf Missing List is Not EmptyIf Missing List is EmptySnap Object Based on SettingsStart/ Get Selected Objects/ Check Each Object/ Check ToShapePos/ Snap To Shape PositionEnd/ Check Locator Exists/ Snap Object/ Add to Missing List/ Check Missing List/ Error: Missing Objects/ Select Snapped Objects- Flow Chart Description:
This flowchart illustrates the as_SnapToPosLocators function:
Begins by obtaining a list of selected objects in the scene.
For each object, checks if it should snap to the shape position.
If toShapePos is set, the object’s pivot is snapped to its shape position.
If not, checks if a corresponding position locator exists.
If the locator exists, the object is snapped based on the provided settings (position, rotation, pivot snap).
If the locator does not exist, the object is added to a missing list.
At the end, checks if there are any objects in the missing list.
If there are missing objects, an error message is displayed and those objects are selected.
If all objects are successfully snapped, the snapped objects are selected.
- HyperRig.as_SuffixHI(self, selectedObjs=False, **shArgs)#
[shArgs : ol=objList, so=selectedObjs]
Purpose:
:: Adds a specified suffix to the hierarchy of selected objects in Maya.
Useful for organizing and categorizing objects in a scene based on their roles.
Facilitates bulk renaming for rigging or scene management purposes.
Allows for suffix customization to suit different naming conventions.
- Parameters:
objList – <list> # List of objects to append the suffix to.
selectedObjs – <bool, optional> # Whether to only append the suffix to selected objects in the hierarchy (True) or the entire hierarchy (False).
- Returns:
None # This function does not return a value but renames objects in the scene.
Code Examples:
>>> as_SuffixHI(objList=['obj1', 'obj2'], selectedObjs=True) # Appends the specified suffix to the selected objects in the hierarchy.
If First Object is JointIf First Object is Not JointIf OK is ClickedIf CancelledAppend Suffix to HierarchyStart/ Get Selected Objects/ Check First Object/ Prompt Suffix (_Jnt)/ Prompt Suffix (_Grp)/ Check Prompt Result/ Get Suffix Text/ Append Suffix/ Error: Action CancelledEnd- Flow Chart Description:
This flowchart illustrates the as_SuffixHI function:
Starts by obtaining a list of selected objects in the scene.
- Checks the type of the first object in the list.
If it’s a joint, prompts for a suffix with a default of ‘_Jnt’.
If it’s not a joint, prompts for a suffix with a default of ‘_Grp’.
- Checks the user’s response to the prompt.
If ‘OK’ is clicked, retrieves the entered suffix text.
If the action is cancelled, displays an error message and stops.
Appends the entered suffix to each object in the hierarchy based on the selected objects setting.
- HyperRig.as_ToggleCurvVis(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of NURBS curves in the current viewport in Autodesk Maya.
Useful for animators and riggers to quickly show or hide control curves in the viewport.
- Returns:
None # This function does not return any value but toggles the visibility of NURBS curves.
Code Examples:
>>> as_ToggleCurvVis() # Toggles the visibility of NURBS curves in the current viewport.
If a panel is focusedIf no panel focusedIf curves visibleIf curves not visibleStart/ Check Focused Panel/ Check Curves Visibility/ Error: No Panel Focused/ Hide Curves/ Show CurvesEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleCurvVis function:
The process starts by checking the currently focused panel in Autodesk Maya.
If a panel is focused, the function checks the visibility state of NURBS curves in that panel.
Depending on the current state, it either hides or shows the NURBS curves in the focused panel.
If no panel is focused, an error is displayed.
- HyperRig.as_ToggleDeformerVis(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of deformers in the current viewport in Autodesk Maya.
This function is helpful for riggers and animators to manage the display of various deformers in their workspace.
- Returns:
None # This function does not return any value but toggles the visibility of deformers.
Code Examples:
>>> as_ToggleDeformerVis() # Toggles the visibility of deformers in the current viewport.
Get the focused panelIf deformers visibleIf deformers not visibleStart/ Get Current Panel/ Check Deformer Visibility/ Turn Off Deformers/ Turn On DeformersEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleDeformerVis function:
The process begins with retrieving the currently focused panel in Maya.
The function then checks whether deformers are currently visible in the panel.
If deformers are visible, the function disables their visibility.
If deformers are not visible, the function enables their visibility.
- HyperRig.as_ToggleGlobalTest(self, globalCtrl=None, distValue=10000, transVal=True, rotVal=True, scaleVal=10, **shArgs)#
[shArgs: ]
Purpose:
:: Tests the influence of a global control on objects in a scene in Autodesk Maya, using extreme values.
This function is beneficial for rigging, allowing the user to test how global controls affect the scene.
- Parameters:
globalCtrl – <str> # The global control to test.
distValue – <float> # The distance value to use for the test.
transVal – <bool> # Whether to test translation values.
rotVal – <bool> # Whether to test rotation values.
scaleVal – <float> # The scale value to use for the test.
- Returns:
None # This function does not return any value but performs a global control test in the scene.
Code Examples:
>>> global_control = "Global_Ctrl" >>> distance_value = 10000 >>> as_ToggleGlobalTest(globalCtrl=global_control, distValue=distance_value, transVal=True, rotVal=True, scaleVal=10) # Tests the influence of the specified global control using extreme values.
If global control not providedIf global control providedIf not at extreme valuesIf at extreme valuesStart/ Check Global Control/ Determine Global Control/ Set Provided Global Control/ Check Control State/ Apply Extreme Values/ Reset to DefaultEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleGlobalTest function:
The process begins by checking if a global control is provided.
If not, the function determines the appropriate global control from the scene.
It then sets the global control, either the provided one or the determined one.
The function checks if the control is already at extreme values.
If not at extreme values, it applies extreme transformation values to test the control.
If already at extreme values, it resets the control to its default state.
- HyperRig.as_ToggleIkHandleVis(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of IK handles in the current viewport in Autodesk Maya.
Essential for riggers and animators to manage the display of IK handles during rigging and animation processes.
- Returns:
None # This function does not return any value but toggles the visibility of IK handles.
Code Examples:
>>> as_ToggleIkHandleVis() # Toggles the visibility of IK handles in the current viewport.
Get the focused panelIf IK handles visibleIf IK handles not visibleStart/ Get Current Panel/ Check IK Handle Visibility/ Turn Off IK Handles/ Turn On IK HandlesEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleIkHandleVis function:
The process begins with getting the currently focused panel in Maya.
It then checks if IK handles are currently visible in the panel.
If IK handles are visible, the function turns off their visibility.
If IK handles are not visible, the function turns on their visibility.
- HyperRig.as_ToggleJointVis(self, drawStyle=0, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of joints in the current viewport in Autodesk Maya, with an option for draw style.
Essential for riggers and animators to quickly view or hide joints in the scene.
- Parameters:
drawStyle – <int> # Specifies the draw style for joints. If non-zero, alters individual joint display.
- Returns:
None # This function does not return any value but toggles the visibility of joints.
Code Examples:
>>> draw_style = 0 >>> as_ToggleJointVis(drawStyle=draw_style) # Toggles the visibility of joints in the current viewport.
If Draw Style is SpecifiedFor Each Selected JointIf No Draw Style SpecifiedRetrieve Current PanelIf Joints VisibleIf Joints HiddenStart/ Check Draw Style/ Retrieve Selected Joints/ Adjust Joint Display/ Check Panel/ Query Joint Visibility/ Disable Joint Visibility/ Enable Joint VisibilityEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleJointVis function:
Begins by checking if a specific draw style for joints is specified.
If a draw style is specified, it retrieves the selected joints.
For each selected joint, adjusts its display based on the draw style.
If no draw style is specified, checks the current panel in Maya.
Queries the visibility status of joints in the viewport.
If joints are visible, their visibility is disabled.
If joints are hidden, their visibility is enabled.
The process concludes.
- HyperRig.as_ToggleLocatorVis(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of locators in the current viewport in Autodesk Maya.
Useful for scenes with numerous locators, allowing artists to manage their visibility efficiently.
- Returns:
None # This function does not return any value but toggles the visibility of locators.
Code Examples:
>>> as_ToggleLocatorVis() # Toggles the visibility of locators in the current viewport.
Get the focused panelIf locators visibleIf locators not visibleStart/ Get Current Panel/ Check Locator Visibility/ Turn Off Locators/ Turn On LocatorsEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleLocatorVis function:
The process starts by getting the current focused panel in Maya.
It then checks if locators are currently visible in the panel.
If locators are visible, the function turns off their visibility.
If locators are not visible, the function turns on their visibility.
- HyperRig.as_ToggleMeshVis(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of polygonal meshes in the current viewport in Autodesk Maya.
Beneficial for artists working with both NURBS and polygonal geometry, allowing for a cleaner workspace.
- Returns:
None # This function does not return any value but toggles the visibility of polygonal meshes.
Code Examples:
>>> as_ToggleMeshVis() # Toggles the visibility of polygonal meshes in the current viewport.
Retrieve Current PanelIf Meshes VisibleIf Meshes HiddenStart/ Check Panel/ Query Mesh Visibility/ Disable Mesh Visibility/ Enable Mesh VisibilityEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleMeshVis function:
The process begins by checking the currently focused panel in Maya.
It then queries the visibility status of polygonal meshes in the current viewport.
If meshes are visible, their visibility is disabled.
If meshes are hidden, their visibility is enabled.
The process concludes.
- HyperRig.as_TogglePaintSmooth(self, val=1, operation='smooth', **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the smoothing operation for the skin weight painting tool in Autodesk Maya.
This function enables or disables the smoothing operation, allowing for smoother transitions in skin weights.
- Parameters:
val – <float> # The value to set for the smoothing operation.
operation – <str> # The operation to perform: ‘smooth’.
- Returns:
None # This function does not return any value but toggles the smoothing operation for the weight painting tool.
Code Examples:
>>> value = 1.0 >>> operation = "smooth" >>> as_TogglePaintSmooth(value, operation) # Toggles the smoothing operation for the skin weight painting tool.
Start/ Open ArtPaint Skin Weights Tool Options/ Set 'Smooth' Operation/ Set Opacity for 'Smooth'/ Set Value for 'Smooth'End- Flow Chart Description:
This flowchart depicts the as_TogglePaintSmooth function:
The process starts by opening the ArtPaint Skin Weights Tool Options.
It sets the operation to ‘Smooth’.
Then, it adjusts the opacity to 1.0 for the smoothing operation.
The value specified in the parameter is set for the smoothing operation.
The process ends after setting up the smoothing operation for the skin weight painting tool.
- HyperRig.as_ToggleShelves(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of various UI elements in Autodesk Maya, such as shelves, toolboxes, and time sliders.
This function is a convenient tool for Maya users to quickly customize their workspace by showing or hiding UI elements.
- Returns:
None # This function does not return any value but toggles the visibility of various Maya UI elements.
Code Examples:
>>> as_ToggleShelves() # Toggles the visibility of Maya shelves, toolboxes, time sliders, etc.
Start/ Toggle Toolbox/ Toggle Shelf/ Toggle Time Slider/ Toggle Range Slider/ Toggle Command Line/ Toggle Help LineEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleShelves function:
The process starts with toggling the visibility of the Toolbox in Maya.
It then toggles the visibility of the Shelf.
Next, it toggles the Time Slider’s visibility.
Following this, the Range Slider is toggled.
The Command Line’s visibility is then toggled.
Finally, it toggles the Help Line’s visibility.
- HyperRig.as_ToggleSkin(self, skinMesh=None, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of the skin deformer (skinCluster) on selected mesh objects in Autodesk Maya.
This function is useful for animators and riggers to quickly enable or disable skin deformations on a mesh.
- Parameters:
skinMesh – <str/list> # The name of the mesh or a list of meshes whose skinCluster visibility will be toggled.
- Returns:
None # This function does not return any value but toggles the skinCluster visibility on the specified mesh(es).
Code Examples:
>>> mesh_name = "character_mesh" >>> as_ToggleSkin(mesh_name) # Toggles the skinCluster visibility on the specified mesh.
If skinMesh is not providedIf skinMesh is providedIf Envelope is 1If Envelope is 0StartCheck Skin MeshGet Selected Meshes/ Loop Through Meshes/ Get Skin Cluster/ Check Envelope/ Disable Skin Cluster/ Display 'Disabled' Message/ Enable Skin Cluster/ Display 'Enabled' MessageEnd- Flow Chart Description:
This flowchart illustrates the as_ToggleSkin function:
The process begins by checking if skinMesh is provided. If not, it obtains the selected meshes in Maya.
It then loops through each mesh in the provided list or selection.
For each mesh, the function retrieves the associated skinCluster.
It checks the skinCluster’s envelope attribute. If the envelope is set to 1 (enabled), it disables the skinCluster and displays a ‘Disabled’ message.
If the envelope is set to 0 (disabled), it enables the skinCluster and displays an ‘Enabled’ message.
- HyperRig.as_UpdateOptions_UI(self, action=1, **shArgs)#
[shArgs: ]
Purpose:
:: Updates options in the user interface of the as_HyperRig system in Autodesk Maya.
This function likely manages UI elements related to dynamic chain options, IK/FK setups, or other rigging components.
- Parameters:
action – <int> # The specific action or update to perform on the UI.
- Returns:
None # This function does not return any value but updates options in the as_HyperRig UI.
Code Examples:
>>> action_id = 1 >>> as_UpdateOptions_UI(action_id) # Updates specific options in the as_HyperRig UI.
If action is 1If action is 2Start/ Check Action/ Update IKFK Follows DynChain/ Update IKFK Type DynChainEnd- Flow Chart Description:
This flowchart illustrates the as_UpdateOptions_UI function:
The process starts by determining the action to be taken, based on the action parameter.
If action equals 1, the function updates the IK/FK follows dynamic chain options in the as_HyperRig UI.
If action equals 2, the function updates the IK/FK type for the dynamic chain in the as_HyperRig UI.
The function concludes after updating the specified UI options.
- HyperRig.as_UpdatePlacerJoints(self, **shArgs)#
[shArgs: ]
Purpose:
:: Updates placer joints based on selected objects or specified criteria in Autodesk Maya.
This function is likely used in rigging workflows to adjust joint placements or hierarchy based on new mesh configurations or rig updates.
- Returns:
None # This function does not return any value but updates placer joints based on the current selection or criteria.
Code Examples:
>>> as_UpdatePlacerJoints() # Updates placer joints based on the current selection in Maya.
Get selected objectsGet selected locatorsStart/ Check Selection/ Evaluate Mesh Selection/ Evaluate Locators Selection/ Update Placer JointsEnd- Flow Chart Description:
This flowchart illustrates the as_UpdatePlacerJoints function:
The process begins by checking the selection in Maya to identify the objects involved.
Meshes and locators are evaluated separately to determine their relevance to the placer joint update.
Once identified, placer joints are updated based on the selected mesh and locator objects.
The function concludes after updating placer joints based on the current selection or specified criteria.
- HyperRig.as_Update_BuildBodyModule(self, **shArgs)#
[shArgs: ]
Purpose:
:: Updates and configures various body modules in Autodesk Maya for character rigging.
This function dynamically adjusts the user interface and settings based on the selected module type.
It supports a wide range of modules like spine, arm, leg, hand, neck, head, eyes, tongue, quadruped legs, bird wing, feathers, FK chain, IK chain, IK FK chain, dynamic chain, insect leg, snake, temporary modules, toes, etc.
Each module type has its unique set of parameters and controls for customization.
- Returns:
None # This function does not return any value but updates the UI based on the selected module.
Code Examples:
>>> as_Update_BuildBodyModule() # Updates the UI for building various body modules in character rigging.
If Module is SpineIf Module is Biped ArmIf Module is Biped LegIf Module is Hand & FingersIf Module is NeckIf Module is HeadIf Module is EyesIf Module is TongueIf Module is Quad Fore LegIf Module is Quad Rear LegIf Module is Bird WingIf Module is Bird FeathersIf Module is FK ChainIf Module is IK ChainIf Module is IK FK ChainIf Module is Dynamic ChainIf Module is Insect LegIf Module is SnakeIf Module is TempIf Module is ToesStart/ Check Module/ Spine Setup/ Biped Arm Setup/ Biped Leg Setup/ Hand & Fingers Setup/ Neck Setup/ Head Setup/ Eyes Setup/ Tongue Setup/ Quad Fore Leg Setup/ Quad Rear Leg Setup/ Bird Wing Setup/ Bird Feathers Setup/ FK Chain Setup/ IK Chain Setup/ IK FK Chain Setup/ Dynamic Chain Setup/ Insect Leg Setup/ Snake Setup/ Temp Setup/ Toes Setup- Flow Chart Description:
This flowchart illustrates the as_Update_BuildBodyModule function:
Starts by checking the selected module type.
Based on the module type, it updates and configures the setup for various body modules such as spine, arm, leg, hand, neck, head, eyes, and more.
Each module has specific parameters and controls for customization.
Dynamically adjusts the user interface based on the selected module, supporting a wide range of modules with unique settings.
Completes the process of updating and configuring the selected body module.
- HyperRig.as_Update_BuildFaceModule(self, **shArgs)#
[shArgs: ]
Purpose:
:: Handles the dynamic updating and configuration of facial modules in Autodesk Maya for character rigging.
This function offers a diverse range of facial modules such as spine, biped arm, eyes, and others, each with specific parameters and settings.
Depending on the selected module, it dynamically changes the user interface and available options, allowing for precise and tailored rigging of facial features.
- Returns:
None # This function does not return any value but rather updates the UI based on the selected facial module.
Code Examples:
>>> as_Update_BuildFaceModule() # Adjusts the facial module configurations in the character rigging process.
If Module is SpineIf Module is Biped ArmIf Module is EyesStart/ Check Module/ Spine Setup/ Biped Arm Setup/ Eyes Setup/ Configure Spine Options/ Configure Biped Arm Options/ Configure Eyes Options- Flow Chart Description:
This flowchart illustrates the as_Update_BuildFaceModule function:
Starts by checking the selected facial module type.
Based on the module type, it updates and configures the setup for various facial modules such as spine, biped arm, and eyes.
Each module has specific parameters and controls for customization.
Dynamically adjusts the user interface based on the selected module, supporting a wide range of modules with unique settings.
Completes the process of updating and configuring the selected facial module.
- HyperRig.bs_DeleteTargets(self, **shArgs)#
[shArgs: ]
Purpose:
:: Deletes selected blend shape targets, allowing for the cleanup and optimization of blend shape setups.
Important for managing and maintaining blend shape setups, especially in complex character rigs.
Operates based on the currently selected blend shape targets.
- Param:
None # No explicit parameters are needed as the function operates based on the current selection of blend shape targets.
- Returns:
None # This function does not return any value but deletes the selected blend shape targets.
Code Examples:
>>> bs_DeleteTargets() # Deletes the currently selected blend shape targets.
If blend shape targets are selectedIf no targets selectedIf user confirms deletionIf user cancels actionGet base geometry of blend shapeDelete selected blend shape targetsStart/ Check Selection/ Confirm DeletionEnd/ Get Base Geometry/ Display Warning/ Delete Targets- Flow Chart Description:
This flowchart illustrates the bs_DeleteTargets function:
The process starts by checking if any blend shape targets are selected. If no targets are selected, the function ends.
If targets are selected, the function prompts the user to confirm the deletion.
If the user cancels the action, a warning is displayed, and the function ends.
If the user confirms, the function retrieves the base geometry of the blend shape.
The selected blend shape targets are then deleted.
- HyperRig.bs_GetAnimatedValues_BeyondRange(self, range=[0, 1], **shArgs)#
[shArgs: ]
Purpose:
:: Identifies blend shape target values that are animated beyond a specified range, aiding in debugging and optimization.
Useful in blend shape animation for identifying and correcting values that fall outside expected ranges.
Allows the user to specify a range for analysis.
- Parameters:
range – <list of float, optional> #Specifies the range within which the blend shape values should fall. Default is [0,1].
- Returns:
<list> #Returns a list of blend shape targets with values outside the specified range.
Code Examples:
>>> bs_GetAnimatedValues_BeyondRange([0,1]) # Identifies blend shape targets with animated values beyond the range of 0 to 1.
If meshes are selectedIf no meshes selectedGet blendShapes from selected meshesRetrieve animation rangeFor each blendShape targetGet value at current frameIf value beyond specified rangeStore blendShape and target detailsIf value within rangeProceed to next frameStart/ Check Selection/ Get BlendShapesEnd/ Get Animation Range/ Check Each Target/ Get Current Value/ Check Range/ Store Result- Flow Chart Description:
This flowchart illustrates the bs_GetAnimatedValues_BeyondRange function:
The process starts by checking if meshes are selected. If no meshes are selected, the function ends.
It retrieves blendShapes associated with the selected meshes.
The function then analyzes the animation range, checking each blendShape target at every frame.
For each target, the function checks if the value is beyond the specified range.
If a value is beyond the range, the blendShape and target details are stored for output.
The function concludes after checking all frames and targets, returning a list of targets with values beyond the specified range.
- HyperRig.bs_GetTargetIndex(self, **shArgs)#
[shArgs: ]
Purpose:
:: Retrieves the index of a blend shape target on the selected blend shape node in Autodesk Maya.
This function is useful for riggers and animators to identify the specific index of a blend shape target for scripting or debugging purposes.
- Returns:
<int> # Returns the index of the selected blend shape target.
Code Examples:
>>> bs_GetTargetIndex() # Retrieves the index of the selected blend shape target on the active blend shape node.
Get selected blend shape nodeRetrieve selected attributeDetermine index of blend shape targetShow index informationStart/ Check Selection/ Get Attribute/ Retrieve Index/ Display IndexEnd- Flow Chart Description:
This flowchart illustrates the bs_GetTargetIndex function:
The process begins with selecting a blend shape node in Maya.
The function retrieves the currently selected attribute in the channel box.
The index of the blend shape target is determined based on the attribute.
The index information is then displayed to the user.
The function concludes by returning the index of the selected blend shape target.
- HyperRig.bs_LockUnconnectedTargets(self, objList=None, blendShape=None, base=None, **shArgs)#
[shArgs: ]
Purpose:
:: Locks unconnected blend shape targets on selected objects in Autodesk Maya.
This function is used in blend shape rigging to lock targets that are not currently connected to any controllers or attributes.
- Parameters:
objList – <list> # List of objects to lock unconnected blend shape targets on.
blendShape – <str> # Name of the blend shape node to work with.
base – <str> # Base geometry connected to the blend shape.
- Returns:
<list> # Returns a list of locked targets.
Code Examples:
>>> objects = ["obj1", "obj2"] >>> blend_shape_node = "blendShape1" >>> base_geometry = "baseMesh" >>> bs_LockUnconnectedTargets(objects, blend_shape_node, base_geometry) # Locks unconnected blend shape targets on the specified objects.
Get selected objectsIterate over blend shapesLock unconnected targetsStart/ Check Selection/ Evaluate BlendShapes/ Lock TargetsEnd- Flow Chart Description:
This flowchart illustrates the bs_LockUnconnectedTargets function:
The process starts with a selection check in Maya, identifying objects involved in the operation.
It evaluates the blend shapes associated with the selected objects.
For each blend shape, the function iterates over targets, locking those which are unconnected.
The function concludes by returning a list of locked targets.
- HyperRig.bs_RemoveUnconnectedTargets(self, blendShape=None, base=None, **shArgs)#
[shArgs: ]
Purpose:
:: Removes unconnected blend shape targets from the specified blend shape node in Autodesk Maya.
This function is used in blend shape rigging to clean up unused or unconnected targets, optimizing the blend shape node.
- Parameters:
blendShape – <str> # Name of the blend shape node to remove targets from.
base – <str> # Base geometry connected to the blend shape.
- Returns:
<list> # Returns a list of removed targets.
Code Examples:
>>> blend_shape_node = "blendShape1" >>> base_geometry = "baseMesh" >>> bs_RemoveUnconnectedTargets(blend_shape_node, base_geometry) # Removes unconnected blend shape targets from the specified node.
Verify blend shape nodeRetrieve base geometryList of blend shape targetsVerify connections for each targetRemove unconnected targetsStart/ Check Blend Shape/ Get Base Geometry/ Get Target List/ Check Connections/ Delete Unconnected TargetsEnd- Flow Chart Description:
This flowchart illustrates the bs_RemoveUnconnectedTargets function:
The process begins by verifying the specified blend shape node.
It retrieves the base geometry associated with the blend shape node.
A list of blend shape targets is then generated.
The function checks for incoming connections to each blend shape target.
Unconnected targets are identified and removed from the blend shape node.
The function concludes by returning a list of removed targets.
- HyperRig.bs_RenameTarget(self, objList=None, **shArgs)#
[shArgs: ]
Purpose:
:: Renames blend shape targets based on user input, facilitating better organization and management in blend shape setups.
Essential for blend shape animation where clear naming conventions improve workflow efficiency.
The function prompts the user for the new name of the blend shape target.
- Parameters:
objList – <list, optional> #A list of objects whose blend shape targets are to be renamed. If not provided, uses the current selection.
- Returns:
None # This function does not return any value but renames blend shape targets based on user input.
Code Examples:
>>> bs_RenameTarget([object1, object2]) # Renames blend shape targets for the specified objects based on user input.
If objects are selectedIf no objects selectedPrompt for new namePrompt for new nameRename target based on inputIf action is cancelledStart/ Check Selection/ Get Input/ Prompt Input/ Rename BlendShape TargetEnd/ Cancel Action- Flow Chart Description:
This flowchart illustrates the bs_RenameTarget function:
The process starts by checking if objects are selected. If not, the function prompts for a new name directly.
If objects are selected, it checks if they are joints and prompts accordingly for a new name.
The blend shape target is then renamed based on the user input.
If the action is cancelled, the process ends without any changes.
The function concludes after renaming the blend shape target.
- HyperRig.bs_ToggleBlendShapes(self, action='toggle', **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the state (on/off) of blend shape nodes on selected objects in Autodesk Maya.
This function is useful for animators and riggers to quickly enable or disable blend shapes on a mesh.
- Parameters:
action – <str> # The action to perform: ‘toggle’, ‘on’, or ‘off’.
- Returns:
None # This function does not return any value but toggles the state of blend shape nodes on selected objects.
Code Examples:
>>> action = "toggle" >>> bs_ToggleBlendShapes(action) # Toggles the state of blend shape nodes on selected objects.
If objList is providedIf objList is not providedAction: toggleAction: onAction: offStart/ Check Objects/ Determine Action/ Select Objects/ Toggle Blend Shapes/ Enable Blend Shapes/ Disable Blend ShapesEnd- Flow Chart Description:
This flowchart illustrates the bs_ToggleBlendShapes function:
The process begins by checking if a list of objects (objList) is provided.
If objList is not provided, it selects objects in Maya.
It then determines the action to be taken based on the input parameter: ‘toggle’, ‘on’, or ‘off’.
Depending on the action, it toggles, enables, or disables blend shapes on the selected objects.
The function concludes after performing the specified action.
- HyperRig.bs_UnlockTargets(self, objList=None, **shArgs)#
[shArgs: ]
Purpose:
:: Unlocks blend shape targets on selected objects in Autodesk Maya.
This function is essential in blend shape animation and rigging, allowing for the adjustment of previously locked blend shape targets.
- Parameters:
objList – <list> # List of objects whose blend shape targets need to be unlocked.
- Returns:
None # This function does not return any value but unlocks blend shape targets on the specified objects.
Code Examples:
>>> objects = ["obj1", "obj2"] >>> bs_UnlockTargets(objects) # Unlocks blend shape targets on the specified objects.
- HyperRig.check4NonUniqueNames(self, selList=None, checkShapes=0, **shArgs)#
[shArgs : sl=selList, cs=checkShapes]
Purpose:
:: Checks the selected list of objects for non-unique names, essential for ensuring the integrity of the scene.
Identifies naming conflicts that can cause issues in scripts and rigging.
Facilitates a cleaner and more organized scene structure.
Prevents potential errors and confusion due to duplicate names.
- Parameters:
selList – <list, optional> # The list of objects to check for non-unique names. If not provided, uses the selected objects.
checkShapes – <bool, optional> # Whether to include shape nodes in the check.
- Returns:
None # This function does not return a value but identifies non-unique names.
Code Examples:
>>> check4NonUniqueNames(selList=['obj1', 'obj2'], checkShapes=False) # Checks the provided list of objects for non-unique names.
If Non-Unique Names FoundIf All Names are UniqueStart/ Select Objects/ Check Unique Names/ Mark Non-Unique/ Display Message: No Non-Unique Names/ Create Set for Non-UniqueEnd- Flow Chart Description:
This flowchart illustrates the check4NonUniqueNames function:
The process begins by selecting objects to check for non-unique names.
- Checks each object in the selection for unique naming.
If non-unique names are found, the objects are marked as non-unique.
If all names are unique, a message is displayed indicating no non-unique names.
Creates a set for objects with non-unique names for easy identification and correction.
Completes the process and ends.
- HyperRig.compareHI(self, srcHI=None, destHI=None, srcPrefix=None, destPrefix=None, **shArgs)#
[shArgs : ]
Purpose:
:: Compares two hierarchies in Maya and identifies non-matching nodes.
This function compares the source and destination hierarchies to find differences.
It is useful for ensuring rigging consistency and identifying discrepancies.
- Parameters:
srcHI – <str> #The source hierarchy for comparison.
destHI – <str> #The destination hierarchy for comparison.
srcPrefix – <str, optional> #Prefix in the source hierarchy for comparison.
destPrefix – <str, optional> #Prefix in the destination hierarchy for comparison.
- Returns:
<set> #A set of nodes that did not match between the two hierarchies.
Code Examples:
>>> srcHI = 'source_hierarchy' >>> destHI = 'destination_hierarchy' >>> compareHI(srcHI, destHI)
If srcHI and destHI are providedIf srcHI and destHI are not providedIf non-unique names existIf all names are uniqueStart/ Check Parameters/ Validate Hierarchies/ Get Current Selection/ Check Unique Names/ Select Non-Unique Nodes/ Adjust PrefixesEnd/ Compare Hierarchies/ Select Non-Matching Nodes- Flow Chart Description:
This flowchart outlines the compareHI function:
The process begins by checking if srcHI and destHI are provided.
If not provided, it retrieves the current selection for comparison.
The hierarchies are validated to ensure they exist.
Checks for unique names within the hierarchies. If non-unique names are found, it selects and highlights these nodes.
Adjusts prefixes in the hierarchies if specified.
Compares the hierarchies to identify non-matching nodes.
Selects and highlights the non-matching nodes in the Maya viewport.
- HyperRig.createEyeDeformSetup(self, srcPrfx=None, oppPrfx=None, lidCurv=None, eyesList=None, headMesh=None, upStreamJnt=None, mirrorSetup=True, oppSetup=False, **shArgs)#
[shArgs : sp=srcPrfx, op=oppPrfx, lc=lidCurv, el=eyesList, hm=headMesh, usj=upStreamJnt, ms=mirrorSetup, os=oppSetup]
Purpose:
:: Creates an eye deformation setup with lattice and wire deformers for detailed control over eye and eyelid movements.
Enhances the realism and flexibility of eye animations in character rigs.
Allows for precise control over eyelid deformation and eye mesh adjustments.
Supports both left and right side setups, with mirroring options for symmetrical characters.
- Parameters:
srcPrfx – <str> # Prefix for the source curve and controls.
oppPrfx – <str> # Prefix for the opposite side curve and controls.
lidCurv – <str> # The eyelid curve used for deformation.
eyesList – <list> # List of eye meshes to be deformed.
headMesh – <str> # The head or body mesh affected by the deformation.
upStreamJnt – <str> # The upstream joint to which control groups are constrained.
mirrorSetup – <bool> # Whether to mirror the setup to the opposite side.
oppSetup – <bool> # Whether to create the setup on the opposite side.
- Returns:
None # This function does not return a value but creates an eye deformation setup.
Code Examples:
>>> createEyeDeformSetup(srcPrfx='L', oppPrfx='R', lidCurv='L_EyeLid_Curv', eyesList=['L_Eye_BS', 'L_Eye_Iris_BS'], headMesh='Head_Mesh', upStreamJnt='Head_Jnt', mirrorSetup=True, oppSetup=False) # Creates an eye deformation setup for the left side with mirroring to the right side.
Args:
srcPrfx = Left Prefix of curves, .. oppPrfx = Right Prefix of curves, .. lidCurv = round curve to deform eye lids [Modify -> Convert -> Polygon Edges To Curve (degree-3)] eyesList = Eyes (blend Shapes) to be deformed by lattice ['L_Eye_BS', 'L_Eye_Iris_BS'] headMesh = bodyMesh / headMesh (blend Shape) to be deformed by lattice upStreamJnt =head joint [Constraining ('parent', 'scale') control groups to headJnt ] mirrorSetup =to mirror setup (to be used during first iteration) oppSetup = to create setup on RH side (Used during second iteration if mirrorSetup is True)
If Source Prefix GivenIf Source Prefix Not GivenIf Opposite Prefix GivenIf Opposite Prefix Not GivenIf Lid Curve GivenIf Lid Curve Not GivenIf Eyes List GivenIf Eyes List Not GivenIf Head Mesh GivenIf Head Mesh Not GivenIf Up Stream Joint GivenIf Up Stream Joint Not GivenIf Mirror Setup EnabledIf Mirror Setup Not EnabledStart/ Select Objects/ Check Source Prefix/ Check Opposite Prefix/ Error: No Source Prefix/ Check Lid Curve/ Error: No Opposite Prefix/ Check Eyes List/ Error: No Lid Curve/ Check Head Mesh/ Error: No Eyes List/ Check Up Stream Joint/ Error: No Head Mesh/ Create Eye Deform Setup/ Error: No Up Stream Joint/ Check Mirror Setup/ Mirror SetupEnd- Flow Chart Description:
This flowchart illustrates the createEyeDeformSetup function:
Begins by selecting objects for the setup.
Checks if the source prefix is provided. If not, displays an error message.
Checks for the opposite prefix. If not provided, displays an error message.
Verifies the existence of a lid curve. If absent, displays an error message.
Confirms the list of eye meshes. If not given, displays an error message.
Ensures the head mesh is specified. If not, displays an error message.
Checks if an upstream joint is provided. If absent, displays an error message.
Creates the eye deformation setup.
Checks if the mirror setup option is enabled. If so, mirrors the setup to the opposite side.
Completes the process and ends.
- HyperRig.createVisSwitch(self, otherAttrs=False, **shArgs)#
[shArgs : oa=otherAttrs]
Purpose:
:: Creates a visibility switch control for various components such as meshes and controllers.
Essential for managing scene complexity by toggling the visibility of different elements.
Enhances the animator’s workflow by providing quick access to hide or show components.
Customizable to include additional attributes like global scale or mesh smoothness.
- Parameters:
otherAttrs – <bool> # Whether to include additional attributes like global scale or mesh detail.
- Returns:
None # This function does not return a value but creates a visibility switch on the specified control.
Code Examples:
>>> createVisSwitch(otherAttrs=True) # Creates a visibility switch with additional attributes on the selected control.
- HyperRig.dynamicOptionsMenu(self, **shArgs)#
[shArgs: ]
Purpose:
:: Creates or updates the dynamic options menu for hair systems in the as_HyperRig UI.
This function manages the dynamic listing of available hair systems for user selection within as_HyperRig.
- Returns:
None # This function does not return any value but updates the hair systems options menu in the as_HyperRig UI.
Code Examples:
>>> dynamicOptionsMenu() # Updates the hair systems options menu in as_HyperRig.
- HyperRig.fixVtxList_MoreThan5Infs(self, vtxList=None, limitInfs=5, **shArgs)#
[shArgs : vl=vtxList, li=limitInfs]
Purpose:
:: Reduces the number of joint influences on vertices to a specified limit for better skinning quality.
Essential for optimizing skinning and improving deformation quality.
Reduces the complexity of skin weight painting by limiting the number of influences.
Helps in maintaining a cleaner and more manageable rigging setup.
- Parameters:
vtxList – <list> # The list of vertices to be fixed. If not provided, uses the selected vertices or mesh.
limitInfs – <int> # The maximum number of influences allowed on each vertex.
- Returns:
None # This function does not return a value but modifies the influences on the specified vertices.
Code Examples:
>>> fixVtxList_MoreThan5Infs(vtxList=['mesh.vtx[0]', 'mesh.vtx[1]'], limitInfs=5) # Limits the influences on the specified vertices to a maximum of 5.
If Vtx List ProvidedIf No Vtx List ProvidedStart/ Select Vertices/ Check Vtx List/ Process Vtx List/ Select Mesh/ Get Mesh Vertices/ Retrieve Skin Cluster/ Get Influences/ Set Max Influences/ Update Skin WeightsEnd- Flow Chart Description:
This flowchart illustrates the fixVtxList_MoreThan5Infs function:
Begins by selecting the vertices to be processed.
- Checks if a list of vertices is provided.
If a vertex list is provided, it processes the given list.
If no list is provided, it selects a mesh and retrieves all vertices.
Retrieves the skin cluster associated with the vertices.
Gathers all influencing joints for the vertices.
Limits the maximum number of influences per vertex to the specified limit.
Updates the skin weights according to the new influence limit.
Completes the process and ends.
- HyperRig.flipMesh_ForCorrectiveShape(self, **shArgs)#
[shArgs : sms=LMesh_Src, t=asVtx, rt=RMesh_Trgt]
Purpose:
:: Flips a mesh for creating symmetrical corrective shapes, often used in character rigging.
Facilitates the creation of symmetrical corrective shapes by mirroring one side of the mesh to the other.
Enhances the efficiency of the rigging process for symmetrical characters.
Reduces the time spent manually creating corrective shapes for both sides of a character.
- Parameters:
LMesh_Src – <str> # The source mesh to be flipped (typically the left side).
asVtx – <str> # A vertex or object on the target mesh where the flipped mesh will be aligned.
RMesh_Trgt – <str> # The target mesh to receive the flipped shape (typically the right side).
- Returns:
None # This function does not return a value but creates a flipped version of the source mesh on the target mesh.
Code Examples:
>>> flipMesh_ForCorrectiveShape(LMesh_Src='L_WingClose', asVtx='vertexOnR_WingClose', RMesh_Trgt='R_WingClose') # Flips the left wing mesh to the right wing mesh for corrective shape creation.
If Source and Target Meshes ValidIf Invalid SelectionStart/ Select Meshes/ Validate Selection/ Flip Mesh Process/ Error: Invalid Selection/ Align To Vertex/ Create Flipped ShapeEnd- Flow Chart Description:
This flowchart illustrates the flipMesh_ForCorrectiveShape function:
Starts with the selection of meshes involved in the flipping process.
- Validates the selection to ensure the source and target meshes are appropriate.
If the selection is valid, proceeds to flip the mesh.
If the selection is invalid, raises an error and ends the process.
Executes the mesh flipping process, aligning the flipped mesh to a specific vertex on the target mesh.
Creates the flipped shape on the target mesh.
Completes the process and ends.
- HyperRig.getConstraints(self, transform_node, constraint_type=None, **shArgs)#
[shArgs : tn=transform_node, ct=constraint_type]
Purpose:
:: Retrieves all constraint nodes associated with a specified transform node in Maya.
Useful for rigging and animation, allowing for efficient constraint management.
Supports filtering by specific constraint types, such as point, orient, or parent.
Facilitates the identification and manipulation of constraints in complex setups.
- Parameters:
transform_node – <str> # The transform node to search for constraints.
constraint_type – <str, optional> # Specific type of constraint to filter the search.
- Returns:
<list> # A list of constraint nodes associated with the transform node.
Code Examples:
>>> constraints = getConstraints(transform_node='characterCtrl', constraint_type='orient') # Retrieves all orient constraints associated with 'characterCtrl'.
If Specific Constraint Type GivenIf No Specific Type GivenStart/ Select Hierarchy/ Check Constraint Type/ Filter Constraints/ GetAll Constraints/ Return ConstraintsEnd- Flow Chart Description:
This flowchart illustrates the getConstraints function:
The function starts by selecting the entire hierarchy of the specified transform node.
- It checks if a specific constraint type is given.
If a specific constraint type is given, it filters the constraints to match the specified type.
If no specific constraint type is provided, it retrieves all constraint nodes.
Returns the list of retrieved constraint nodes.
Completes the process and ends.
- HyperRig.getCorrective_CVSI(self, keepHistory=0, useMayaCmd=1, **shArgs)#
[shArgs : sm=skinMesh, tm=trgtMesh, kh=keepHistory, umc=useMayaCmd]
Purpose:
:: Generates a corrective blend shape (CBS) by inverting the shape difference between the original and the corrected mesh.
Essential for creating corrective shapes in character rigs, especially for high-quality skin deformations.
Facilitates the process of generating inverse shapes for blend shape corrections.
Supports both native Maya commands and the CV Shape Inverter tool.
- Parameters:
skinMesh – <str> # The original skinned mesh to compare.
trgtMesh – <str> # The target mesh with the corrective shape.
keepHistory – <bool> # Determines whether to keep the history on the inverted shape (True) or delete it (False).
useMayaCmd – <bool> # Specifies whether to use Maya’s native commands (True) or the CV Shape Inverter tool (False).
- Returns:
<str> # The name of the newly created corrective blend shape.
Code Examples:
>>> getCorrective_CVSI(skinMesh='baseMesh', trgtMesh='correctedMesh', keepHistory=False, useMayaCmd=True) # Generates a corrective blend shape from the difference between 'baseMesh' and 'correctedMesh'.
If Two Meshes SelectedIf Not Two Meshes SelectedUsing Maya CmdUsing CV Shape InverterStart/ Select Meshes/ Check Selected Meshes/ Invert Shape/ Error: Incorrect Mesh Selection/ Maya Invert Shape/ CV Shape Inverter/ Rename Inverted Shape/ Finalize Corrective Blend ShapeEnd- Flow Chart Description:
This flowchart illustrates the getCorrective_CVSI function:
The process starts with selecting the original skinned mesh and the corrected target mesh.
- The function checks if two meshes are selected correctly.
If two meshes are selected, it proceeds to invert the shape.
If not, an error is raised for incorrect mesh selection.
Inverts the shape of the corrected mesh using either Maya commands or the CV Shape Inverter tool.
Renames the inverted shape to indicate it’s a corrective blend shape (CBS).
Finalizes the creation of the corrective blend shape and ends the process.
- HyperRig.getInfluencesFromVtx(self, **shArgs)#
[shArgs : ]
Purpose:
:: Retrieves the influencing joints of a selected vertex, typically for skinning purposes.
Useful in character rigging and skinning to analyze and adjust vertex influences.
Provides a quick method to select and view the joints influencing a particular vertex.
Enhances the process of skin weight painting by allowing easy access to influence data.
:param : # No arguments required.
- Returns:
None # This function does not return a value but selects the influencing joints of the chosen vertex.
Code Examples:
>>> getInfluencesFromVtx() # Selects joints influencing the currently selected vertex.
Start/ Select Vertex/ Get Skin Weights/ Retrieve Influencing Joints/ Select Influencing JointsEnd- Flow Chart Description:
This flowchart illustrates the getInfluencesFromVtx function:
The process begins by selecting a vertex on the mesh.
Retrieves the skin weights associated with the selected vertex.
Identifies the influencing joints based on the skin weight data.
Selects the influencing joints in the Maya scene.
Completes the process and ends.
- HyperRig.getModelFile_HR(self, **shArgs)#
[shArgs : sp=srcPath, df=destFile]
Purpose:
:: Opens a file dialog for selecting a high-resolution Maya model file.
Facilitates the selection of Maya files (.ma, .mb) directly from a user interface.
Streamlines the process of sourcing high-resolution model files for import or reference in Maya.
Automatically updates the specified text field with the selected file path.
- Parameters:
srcPath – <str> # The initial directory path to open the file dialog in.
destFile – <str> # The destination file path chosen by the user.
- Returns:
None # This function does not return a value but updates the UI text field with the selected file path.
Code Examples:
>>> getModelFile_HR() # Opens a file dialog for selecting a Maya model file and updates the UI text field.
Start/ Open File Dialog/ Update Text FieldEnd- Flow Chart Description:
This flowchart illustrates the getModelFile_HR function:
The process starts by opening a file dialog, allowing the user to select a Maya model file (.ma or .mb).
Once a file is selected, the function updates a UI text field with the chosen file path.
The process ends after updating the text field.
- HyperRig.getPosJoints(self, **shArgs)#
[shArgs : ]
Purpose:
:: Generates position joints for selected objects in Maya.
Useful in rigging for creating joints that match the position of selected objects.
Streamlines the process of joint creation in alignment with existing scene elements.
Can be used for various purposes like rigging, dynamics, or proxy setups.
:param : # No arguments required.
- Returns:
None # This function does not return a value but creates joints at the positions of selected objects.
Code Examples:
>>> getPosJoints() # Creates position joints for each selected object in Maya.
Start/ Select Objects/ Generate Position JointsEnd- Flow Chart Description:
This flowchart illustrates the getPosJoints function:
The process begins with the selection of objects in the Maya scene.
For each selected object, the function creates a joint positioned at the object’s location.
The process concludes after creating position joints for all selected objects.
- HyperRig.getPosLocators(self, makeChild=1, snapRot=0, hideLoc=1, oppAxis=None, **shArgs)#
[shArgs : ol=objList, mc=makeChild, sr=snapRot, hl=hideLoc, oa=oppAxis]
Purpose:
:: Generates position locators for selected objects in Maya.
Useful for tracking and saving the positions of objects in the scene.
Allows for creation of locators as children of the objects or as separate entities.
Can mirror locators across an axis for symmetrical setups.
- Parameters:
objList – <list> # List of objects to create position locators for.
makeChild – <int> # Whether to make the locator a child of the object (1) or not (0).
snapRot – <int> # Whether to snap the locator’s rotation to the object’s rotation (1) or not (0).
hideLoc – <int> # Whether to hide the locator (1) or keep it visible (0).
oppAxis – <str, optional> # Axis to mirror the locators, if required.
- Returns:
<list> # List of created position locators.
Code Examples:
>>> getPosLocators(makeChild=1, snapRot=1, hideLoc=0, oppAxis='x') # Creates position locators for selected objects, snapping rotation, and mirroring across the x-axis.
For Each Selected ObjectIf MakeChild is 1If MakeChild is 0If Mirror Axis is SpecifiedIf No Mirror AxisStart/ Get Selected Objects/ Generate Locators/ Create Position Locator/ Check Make Child/ Make Child of Object/ Add to Group/ Hide Locator/ Check Mirror Axis/ Mirror LocatorsEnd- Flow Chart Description:
This flowchart illustrates the getPosLocators function:
Begins by obtaining a list of selected objects in the scene.
For each selected object, a position locator is created and configured.
Checks if the locator should be made a child of the object.
If makeChild is set to 1, the locator is parented to the object.
If makeChild is 0, the locator is added to a group.
Determines if the locator should be hidden based on the hideLoc parameter.
Checks if there is a specified axis for mirroring the locators.
If an axis is provided, mirrors the locators across the specified axis.
Completes the process by selecting the created locators.
- HyperRig.getPoseReaderLoc(self, trgtDir='x', selectLoc=False, connect=False, getAngle=0, **shArgs)#
[shArgs : td=trgtDir, sl=selectLoc, cn=connect, ga=getAngle]
Purpose:
:: Creates and manages pose reader locators in Maya for rigging.
Essential for creating pose-based deformations or corrective shapes in character rigs.
Allows selection of existing pose locators or creation of new ones based on joint orientation.
Offers options to automatically connect pose readers and retrieve angle information.
- Parameters:
trgtDir – <str> # The target direction for the pose reader, e.g., ‘x’, ‘-x’.
selectLoc – <bool> # Determines whether to select an existing locator (True) or create a new one (False).
connect – <bool> # Whether to connect the pose reader locators automatically.
getAngle – <int> # Whether to retrieve the angle information from the pose reader.
- Returns:
None # This function does not return a value but creates or manipulates pose reader locators.
Code Examples:
>>> getPoseReaderLoc(trgtDir='x', selectLoc=False, connect=True, getAngle=1) # Creates and connects pose reader locators in the 'x' direction and retrieves angle information.
If Joints SelectedIf No Joints SelectedIf Connect Option SelectedIf Connect Option Not SelectedStart/ Select Joints/ Check Selection/ Create Base Locators/ Error: No Joints Selected/ Create Pose Locators/ Create Target Locators/ Connect Pose Reader/ Apply Pose ReaderEnd- Flow Chart Description:
This flowchart illustrates the getPoseReaderLoc function:
The function begins with selecting joints in the Maya scene.
- It checks if joints are selected:
If joints are selected, it proceeds to create base locators.
If no joints are selected, an error is raised.
Creates pose locators at the joint positions.
Generates target locators based on the joint hierarchy.
If the connect option is selected, it connects pose reader locators.
Applies the pose reader setup and completes the process.
- HyperRig.getSkinCluster02(self, meshTransform, **shArgs)#
[shArgs: ]
Purpose:
:: Retrieves the skin cluster associated with a given mesh transform node in Autodesk Maya.
This function is used in rigging and skinning workflows to access and manipulate skin cluster nodes attached to a mesh.
- Parameters:
meshTransform – <str> # The name of the mesh transform node.
- Returns:
<list> # Returns a list containing the name of the skin cluster and the MFnSkinCluster object.
Code Examples:
>>> mesh_transform = "character_mesh" >>> skin_cluster = getSkinCluster02(mesh_transform) # Retrieves the skin cluster associated with the specified mesh transform node.
Retrieve shape node from mesh transformIdentify connected SkinCluster nodeCalculate vertices count in shapeGenerate selection list for shape and SkinClusterRetrieve DAG path for shape and MObject for SkinClusterInstantiate MFnSkinCluster for SkinCluster nodeStart/ Get Shape Node/ Find SkinCluster/ Get Number of Vertices/ Create Selection List/ Get DAG Path and Skin Dependence/ Create MFnSkinClusterEnd- Flow Chart Description:
This flowchart illustrates the getSkinCluster02 function:
The process starts by retrieving the shape node from the given mesh transform.
It then identifies the connected SkinCluster node.
The number of vertices in the shape is calculated.
A selection list is created for both the shape and SkinCluster nodes.
The function retrieves the DAG path for the shape and the MObject for the SkinCluster.
An MFnSkinCluster object is instantiated for the SkinCluster node.
The function concludes by returning the name of the SkinCluster node and the MFnSkinCluster object.
- HyperRig.getSkinJnts(self, skinMesh, allInfs=False, **shArgs)#
[shArgs: ]
Purpose:
:: Retrieves the list of joints influencing a skinned mesh in Autodesk Maya.
This function is used in skinning workflows to obtain a list of joints that are influencing a specified skinned mesh.
- Parameters:
skinMesh – <str> # The name of the skinned mesh.
allInfs – <bool> # Determines whether to retrieve all influencing joints or only those with weights.
- Returns:
<list> # Returns a list of joints influencing the specified skinned mesh.
Code Examples:
>>> mesh_name = "character_mesh" >>> all_influences = True >>> skin_joints = getSkinJnts(mesh_name, all_influences) # Retrieves the list of joints influencing the specified skinned mesh.
If Skin Mesh ExistsIf No Skin MeshIf Skin Cluster ExistsIf No Skin ClusterIf All InfluencesIf Not All InfluencesStart/ Check Skin Mesh/ Retrieve Skin ClusterEnd/ Check All Influences/ Display Error/ Get All Influencing Joints/ Get Weighted Influencing Joints/ Return List of Joints- Flow Chart Description:
This flowchart illustrates the getSkinJnts function:
The process starts by checking if the specified skin mesh exists.
If the skin mesh exists, it retrieves the associated skin cluster.
If the skin cluster exists, it checks whether to retrieve all influencing joints or only those with weights.
Retrieves either all influencing joints or only the weighted influencing joints based on the allInfs parameter.
Returns the list of influencing joints.
If the skin cluster is not found, an error is displayed and the process ends.
- HyperRig.getVtxList_MoreThan5Infs(self, vtxList=None, numInfs=5, **shArgs)#
[shArgs : vl=vtxList, ni=numInfs]
Purpose:
:: Identifies vertices in a mesh that are influenced by more than a specified number of joints.
Aids in optimizing skinning by highlighting vertices with excessive joint influences.
Useful for cleaning up and improving the quality of skin deformations.
Helps maintain a manageable and efficient skinning setup, especially in complex rigs.
- Parameters:
vtxList – <list> # The list of vertices to check. If not provided, the function will use the selected vertices or mesh.
numInfs – <int> # The number of influences to check against (default is 5).
- Returns:
None # This function does not return a value but selects vertices with more than the specified number of influences.
Code Examples:
>>> getVtxList_MoreThan5Infs(vtxList=['mesh.vtx[0]', 'mesh.vtx[1]'], numInfs=5) # Selects vertices from the provided list that have more than 5 joint influences.
- HyperRig.importOrientJnts(self, useLocators=True, **shArgs)#
[shArgs: ]
Purpose:
:: Imports and orients joints based on locator positions in Autodesk Maya.
Used in rigging to orient joints accurately according to locator positions.
- Parameters:
useLocators – <bool> # Determines whether to use locators for joint orientation.
- Returns:
None # This function does not return any value but imports and orients joints.
Code Examples:
>>> use_locators = True >>> importOrientJnts(useLocators=use_locators) # Imports and orients joints based on locator positions.
Using LocatorsNot Using LocatorsStart/ Check Use Locators/ Import Positions as Locators/ Error: No Locators/ Select Joint Hierarchy/ For Each Joint in Hierarchy/ Snap Position to Locator/ Freeze Rotation Values/ Orient Joints to LocatorsEnd- Flow Chart Description:
This flowchart illustrates the importOrientJnts function:
The process begins by checking if locators are used for joint orientation.
If locators are used, positions are imported as locators.
If locators are not used, an error is displayed.
The joint hierarchy is selected for processing.
- For each joint in the hierarchy:
The joint’s position is snapped to its corresponding locator.
Rotation values are frozen to ensure proper orientation.
Joints are oriented based on the positions of their corresponding locators.
The process ends successfully after orienting all joints.
- HyperRig.keySelected(self, rangeList=[0, 90], **shArgs)#
[shArgs : rl=rangeList]
Purpose:
:: Sets keyframes on selected controllers within a specified range, useful in animation and rigging.
Automates the process of keying controllers, saving time and effort.
Allows for quick setup of animation tests and rig functionality checks.
Customizable range list facilitates flexibility in animation workflows.
- Parameters:
rangeList – <list> # The range of values for keying, default is [0, 90].
- Returns:
None # This function does not return a value but sets keyframes on selected controllers.
Code Examples:
>>> keySelected(rangeList=[0, 90]) # Sets keyframes on the selected controllers from 0 to 90.
If User Channels ExistIf No User ChannelsStart/ Select Controllers/ Retrieve User Channels/ Key Specific Channels/ Key All Channels/ Set Playback Options/ Set KeyframesEnd- Flow Chart Description:
This flowchart illustrates the keySelected function:
The process starts by selecting the controllers to keyframe.
- Retrieves user-defined channels from the Channel Box.
If specific channels are selected, keys are set for those channels.
If no specific channels are selected, keys are set for all available channels.
Sets playback options for the animation range.
Sets keyframes for the selected controllers within the specified range.
Completes the process and ends.
- HyperRig.message(self, messageTxt, **shArgs)#
[shArgs: ]
Purpose:
:: Displays a message to the user through a dialog window in Autodesk Maya.
Useful for providing feedback, warnings, or notifications to the user during scripting or tool usage.
- Parameters:
messageTxt – <str> # The message text to be displayed in the dialog window.
- Returns:
None # This function does not return any value but displays a message dialog.
Code Examples:
>>> message_text = "Operation completed successfully." >>> message(messageTxt=message_text) # Displays the specified message in a dialog window.
If message is providedStartCheck Message/ Show DialogEnd- Flow Chart Description:
This flowchart illustrates the message function:
The process begins by checking if a message text is provided.
If the message text is available, it displays the message in a dialog window to the user.
The function then concludes without returning any value.
- HyperRig.moCap_RebuildSourceAnim(self, useLocators=False, **shArgs)#
[shArgs: ]
Purpose:
:: Rebuilds source animation data for a motion capture rig in Autodesk Maya.
Utilized in motion capture workflows to refine or adjust original animation data.
- Parameters:
useLocators – <bool> # Determines whether to use locators for rebuilding the animation.
- Returns:
None # This function does not return any value but rebuilds source animation for a mocap rig.
Code Examples:
>>> use_locators = False >>> moCap_RebuildSourceAnim(useLocators=use_locators) # Rebuilds source animation data for a motion capture rig.
Start/ Select Top Node/ Get Joint List/ Start Joint Duplication/ For Each Joint/ Duplicate Joint/ Freeze Rotation/ Parent To Original Joint/ Constrain to Original Joint/ Add to Rebuild List/ End Joint Duplication/ Select Rebuild Joints/ Set Playback Range/ Bake ResultsEnd- Flow Chart Description:
This flowchart illustrates the moCap_RebuildSourceAnim function:
The process begins with selecting the top node in the hierarchy.
Retrieves a list of joints from the selected top node.
Starts duplication of each joint in the list.
For each joint, duplicates the joint and freezes its rotation.
Parents the duplicated joint to the original joint’s parent.
Constrains the duplicated joint to the original joint.
Adds the duplicated joint to a list for rebuilding.
Completes the joint duplication process.
Selects all joints in the rebuild list.
Sets the playback range for baking results.
Bakes the results for the rebuild joints within the defined playback range.
Ends the function after successfully baking the results.
- HyperRig.moCap_UpdateJnts(self, **shArgs)#
[shArgs: ]
Purpose:
:: Updates joint positions based on a source prefix in Autodesk Maya, typically used in motion capture.
Essential for aligning and updating joint positions in mocap rigs to match source data or reference.
- Parameters:
srcPrefix – <str> # The source prefix used to identify the original joints for alignment.
- Returns:
None # This function does not return any value but updates joint positions based on the source prefix.
Code Examples:
>>> source_prefix = "Src_" >>> moCap_UpdateJnts(srcPrefix=source_prefix) # Updates joint positions based on the specified source prefix.
If Target Joint ExistsIf Target Joint Does Not ExistStart/ Get Source Prefix/ Select Joints/ For Each Joint/ Check Target Joint Exists/ Snap Position/ Constrain to Parent/ Add to Missing List/ Display Warning/ Update CompleteEnd- Flow Chart Description:
This flowchart illustrates the moCap_UpdateJnts function:
Retrieves the source prefix from the Maya UI.
Selects joints for the update process.
Iterates through each selected joint.
Checks if the target joint exists based on the source prefix.
If the target joint exists, snaps the position of the mocap joint to the target joint.
Constrains the mocap joint to the parent of the target joint.
If the target joint does not exist, adds the mocap joint to a missing list.
Displays a warning if any joints are missing.
Completes the update process after all joints have been processed.
Ends the function.
- HyperRig.moCap_VFX2GameRig(self, trgtPrefix='Rebuild_', **shArgs)#
[shArgs: ]
Purpose:
:: Converts a motion capture rig for VFX to a game-ready rig in Autodesk Maya.
Ideal for adapting motion capture data from high-resolution VFX rigs to more optimized game rigs.
- Parameters:
trgtPrefix – <str> # Prefix used for naming the rebuilt joints and nodes in the game rig.
- Returns:
None # This function does not return any value but converts a VFX rig to a game-ready rig.
Code Examples:
>>> target_prefix = "Rebuild_" >>> moCap_VFX2GameRig(trgtPrefix=target_prefix) # Converts a VFX motion capture rig to a game-ready rig.
If Skin Joints ExistIf Mesh Is SkinnedIf Mesh Is Not SkinnedStart/ Select Top Group/ Get Mesh List/ Start Skin Joints Processing/ For Each Mesh in List/ Check Skin Joints/ Add to Skin Joints Set/ End Skin Joints Processing/ Select Skin Joints Set/ Start Rebuilding Joints/ For Each Joint in Set/ Duplicate and Position Joint/ Open Attributes/ Freeze Rotation/ Constrain to Original Joint/ End Rebuilding Joints/ Start Transferring Skin/ For Each Mesh in List/ Check If Skinned/ Transfer Skin Weights/ Reparent New Joints/ End Transferring SkinEnd- Flow Chart Description:
This flowchart illustrates the moCap_VFX2GameRig function:
Starts by selecting the top group in the hierarchy.
Retrieves a list of meshes in the group.
Processes each mesh to get skin joints and adds them to a skin joints set.
Selects the skin joints set and starts rebuilding joints for the game rig.
For each joint in the set, duplicates and positions the joint according to the original.
Opens attributes and freezes rotation for the new joints.
Constrains each new joint to its original counterpart.
Begins transferring skin weights from the original mesh to the new joints.
For each mesh, checks if it is skinned and transfers skin weights accordingly.
Reparents new joints to maintain hierarchy.
Concludes the skin transferring process and ends the function.
- HyperRig.moCap_defineSkeleton_HIK(self, **shArgs)#
[shArgs: ]
Purpose:
:: Defines a motion capture skeleton using HumanIK in Autodesk Maya.
Ideal for setting up motion capture data on a character rig.
- Returns:
None # This function does not return any value but sets up a HumanIK skeleton for motion capture.
Code Examples:
>>> moCap_defineSkeleton_HIK() # Defines a motion capture skeleton using HumanIK.
Skeleton ExistsSkeleton Does Not ExistHierarchy SelectedStart/ Check Skeleton Existence/ Define Skeleton with HumanIK/ Error: Skeleton Not Found/ Select Hierarchy of Joints/ Set Playback Options/ Reset Rotation Values/ Define HumanIK Skeleton/ Lock DefinitionEnd- Flow Chart Description:
This flowchart illustrates the moCap_defineSkeleton_HIK function:
The process begins by checking if a skeleton exists in the scene.
If no skeleton is found, an error message is displayed.
If a skeleton exists, the function defines the skeleton using HumanIK.
The hierarchy of joints is selected based on the top joint or group name.
Playback options are set to accommodate motion capture data.
Rotation values for all joints in the hierarchy are reset to zero.
The HumanIK skeleton is defined based on the selected hierarchy.
The HumanIK definition is locked, and the Character1 node is selected.
The process concludes successfully.
- HyperRig.moCap_fixElbowJnt(self, stJnt=None, skinMeshes=None, **shArgs)#
[shArgs: ]
Purpose:
:: Fixes elbow joint orientation in a motion capture rig in Autodesk Maya.
Used to correct common issues with elbow joint orientation in mocap rigs, ensuring accurate deformation.
- Parameters:
stJnt – <str> # The starting joint (usually shoulder) for the elbow correction.
skinMeshes – <list> # List of skinned meshes influenced by the elbow joint.
- Returns:
None # This function does not return any value but fixes the elbow joint orientation.
Code Examples:
>>> start_joint = "Shoulder_Jnt" >>> skinned_meshes = ["Arm_Mesh"] >>> moCap_fixElbowJnt(stJnt=start_joint, skinMeshes=skinned_meshes) # Fixes the elbow joint orientation for the specified start joint and skinned meshes.
If Start Joint ProvidedIf No Start Joint ProvidedSelect At Least One JointIf Skin Meshes ProvidedIf No Skin Meshes ProvidedSelect At Least One Skinned MeshStart/ Check Start Joint/ Use Provided Start Joint/ Select Start Joint/ Define Start Joint/ Check Skin Meshes/ Use Provided Skin Meshes/ Select Skin Meshes/ Define Skin Meshes/ Identify Elbow Joint/ Calculate Distances/ Determine Reference Location/ Orient Elbow Joint/ Duplicate Elbow Joint/ Transfer Skin Weights/ Reattach Child Joints/ Rename And Delete Original ElbowEnd- Flow Chart Description:
This flowchart illustrates the moCap_fixElbowJnt function:
Checks if a start joint is provided. If not, prompts to select a start joint.
Checks if skin meshes are provided. If not, prompts to select skin meshes.
Identifies the elbow and wrist joints based on the start joint.
Calculates distances between the start, elbow, and wrist joints.
Determines the reference location for elbow orientation.
Orients the elbow joint based on the reference location and joint axis.
Duplicates the elbow joint for maintaining the original orientation.
Transfers skin weights from the original elbow joint to the duplicate.
Reattaches child joints to the duplicated elbow joint.
Renames and deletes the original elbow joint, finalizing the correction.
Completes the elbow joint orientation correction process.
- HyperRig.moCap_manageEndJnts(self, action='add', removeInf=False, **shArgs)#
[shArgs: ]
Purpose:
:: Manages end joints in a motion capture rig in Autodesk Maya, such as adding, removing, or retrieving them.
Useful for optimizing mocap rigs by managing end joints, which often don’t contribute to deformation.
- Parameters:
action – <str> # Specifies the action to perform on end joints: ‘add’, ‘remove’, or ‘get’.
removeInf – <bool> # Determines whether to remove influences when removing end joints.
- Returns:
None or <list> # Returns a list of end joints if action is ‘get’, otherwise performs the specified action.
Code Examples:
>>> action = "add" >>> moCap_manageEndJnts(action=action, removeInf=False) # Manages end joints based on the specified action.
If Action is 'add'If Action is 'remove'If Action is 'get'If Skin Mesh ProvidedIf No Skin Mesh ProvidedIf Skin Mesh ProvidedIf No Skin Mesh ProvidedIf Remove InfluenceIf Not Remove InfluenceIf Skin Mesh ProvidedIf No Skin Mesh ProvidedStart/ Check Action/ Add End Joints/ Remove End Joints/ Get End Joints/ Check Skin Mesh/ Use Provided Skin Mesh/ Prompt For Skin Mesh/ Identify End Joints/ Add Non-Skin End JointsEnd/ Check Skin Mesh/ Use Provided Skin Mesh/ Prompt For Skin Mesh/ Identify End Joints/ Remove End Joints Action/ Remove Influence/ Check Skin Mesh/ Use Provided Skin Mesh/ Prompt For Skin Mesh/ Identify End Joints/ Retrieve Non-Skin End Joints- Flow Chart Description:
This flowchart illustrates the moCap_manageEndJnts function:
Checks the specified action (‘add’, ‘remove’, or ‘get’) for managing end joints.
- If action is ‘add’:
Checks if a skin mesh is provided or prompts for it.
Identifies end joints and adds non-skin end joints.
- If action is ‘remove’:
Checks if a skin mesh is provided or prompts for it.
Identifies end joints and performs removal action, with option to remove influences.
- If action is ‘get’:
Checks if a skin mesh is provided or prompts for it.
Identifies end joints and retrieves non-skin end joints.
Completes the management process for end joints based on the specified action.
- HyperRig.props_CreateRig(self, **shArgs)#
[shArgs: ]
Purpose:
:: Creates a basic rigging setup for prop assets in Maya.
This function is used in rigging workflows to quickly set up a rig for static or non-deformable prop assets.
- Returns:
None # This function does not return any value but creates a basic rigging setup for selected prop assets.
Code Examples:
>>> props_CreateRig() # Creates a rigging setup for the currently selected prop assets.
Selected Prop AssetsAsset is MeshAsset is Not MeshMesh Found in ChildrenNo Mesh in ChildrenAll Assets ProcessedStart/ Select Assets/ Create Hierarchy/ Create Joint/ Parent Joint to Group/ Loop Through Assets/ Apply Skin Cluster/ Check for Mesh in Children/ Apply Skin Cluster to Children/ Next Asset/ Create Visibility SwitchEnd- Flow Chart Description:
This flowchart illustrates the props_CreateRig function:
The process begins with selecting the prop assets in Maya.
A hierarchy is created to structure the rig components.
A joint, named ‘Prop_Jnt’, is created and parented to the ‘Joints_Grp’.
Each selected asset is processed. If it’s a mesh, a skin cluster is applied. If not, checks are made for mesh children and skin clusters applied accordingly.
A visibility switch is created for all processed assets and the ‘Global_Control’.
- HyperRig.refreshView(self, num, **shArgs)#
[shArgs: n=num]
Purpose:
:: Refreshes the Maya viewport a specified number of times.
Useful for updating the viewport to reflect changes in the scene, especially after running scripts or performing operations that alter the scene’s appearance.
- Parameters:
num – <int> # Number of times the Maya viewport will be refreshed.
- Returns:
None # This function does not return any value but refreshes the Maya viewport.
Code Examples:
>>> refresh_count = 5 >>> refreshView(refresh_count) # Refreshes the Maya viewport 5 times.
If shArgs providedIf shArgs not providedFor each refresh iterationLoop until num is reachedWhen num is reached or not providedStart/ Check Args/ Update Num/ Refresh Loop/ Do RefreshEnd- Flow Chart Description:
This flowchart illustrates the refreshView function:
The process starts by checking if shArgs are provided and updating the num parameter as necessary.
A loop is initiated to refresh the Maya viewport the specified number of times.
The function concludes after completing the specified number of refresh iterations or if no number is provided.
- HyperRig.removeExpressions(self, keyWords=[], **shArgs)#
[shArgs : ]
Purpose:
:: Removes specific expression nodes from a Maya scene.
This function targets and deletes expression nodes that match the given keywords.
Useful for cleaning up scenes from potentially harmful or unwanted expressions.
Argument | Description :param keyWords: <list> #List of keywords to identify the expressions to be removed.
- Returns:
None #No return value, it removes specified expression nodes from the scene.
Code Examples:
>>> keyWords = ['rotate', 'translate'] >>> removeExpressions(keyWords)
If keywords providedIf no keywords providedStart/ Check Keywords/ Get Expression Nodes by Keywords/ Get All Expression Nodes/ Delete Nodes/ Display InformationEnd- Flow Chart Description:
This flowchart outlines the removeExpressions function:
The process starts by checking if any keyWords are provided.
If keyWords are provided, it retrieves expression nodes that match these keywords.
If no keyWords are provided, it fetches all expression nodes in the scene.
These expression nodes are then deleted from the scene.
Finally, information about the removed expression nodes is displayed.
- HyperRig.removeVirusNodes(self, removeAll=False, **shArgs)#
[shArgs : ]
Purpose:
:: Removes potentially harmful or unwanted script nodes from a Maya scene.
This function is designed to remove script nodes that may contain harmful scripts or unwanted elements.
It has an option to remove all script nodes or only those containing specific keywords.
- Parameters:
removeAll – <bool> #Flag to remove all script nodes if set to True.
- Returns:
None #No return value, it removes specified script nodes from the scene.
Code Examples:
>>> removeAll = True >>> removeVirusNodes(removeAll)
If removeAll is TrueIf removeAll is FalseStart/ Check Remove All Flag/ Get All Script Nodes/ Get Script Nodes by Keywords/ Delete Nodes/ Display InformationEnd- Flow Chart Description:
This flowchart depicts the removeVirusNodes function:
The process begins with checking the removeAll flag.
If removeAll is True, it retrieves all script nodes in the scene.
If removeAll is False, it fetches script nodes based on specific keywords like ‘gene’ and ‘vaccine’.
These script nodes are then deleted from the scene.
Finally, information about the removed script nodes is displayed.
- HyperRig.remove_ToesTemplate(self, **shArgs)#
[shArgs : ]
Purpose:
:: Removes toe templates from a foot rig in Autodesk Maya.
This function deletes toe templates based on the specified foot name prefix.
It is used to clean up or modify existing toe rig setups.
- Parameters:
toesPrefix – <str> #Prefix for the foot name from which toe templates are removed.
- Returns:
None #No return value, it removes toe templates from the specified foot rig.
Code Examples:
>>> toesPrefix = 'Foot' >>> remove_ToesTemplate()
If toesPrefix is providedIf toesPrefix is not providedIf toe curves existIf toe curves do not existStart/ Check Foot Prefix/ Get Toe ControlsEnd/ Check Curves Existence/ Delete Toe Curves/ Delete Toe Controls/ Delete Toe Bones- Flow Chart Description:
This flowchart illustrates the remove_ToesTemplate function:
The process starts by checking if a toesPrefix is provided.
Retrieves control nodes related to toes based on the prefix.
Checks if toe curves exist for the specified prefix.
If curves exist, it deletes the toe curves, controls, and bones associated with the toes.
The process ends once all the toe-related nodes are removed.
- HyperRig.renameShapesHR(self, selList=None, renameOrigNodes=False, **shArgs)#
[shArgs : sl=selList, ron=renameOrigNodes]
Purpose:
:: Renames shape nodes to match their respective transform nodes, simplifying scene hierarchy and readability.
Essential for maintaining a clear and organized scene, especially in complex rigs.
Helps in easily identifying corresponding shape nodes for transforms.
Can optionally rename original nodes, ensuring consistency throughout the hierarchy.
- Parameters:
selList – <list, optional> # The list of objects whose shape nodes are to be renamed. If not provided, uses the selected objects.
renameOrigNodes – <bool> # Whether to also rename the original nodes.
- Returns:
None # This function does not return a value but renames shape nodes.
Code Examples:
>>> renameShapesHR(selList=['obj1', 'obj2'], renameOrigNodes=True) # Renames shape nodes and original nodes of the specified objects.
If Renaming Original NodesIf Not Renaming Original NodesStart/ Select Objects/ Rename Shapes/ Rename Original Nodes/ Rename Shape NodesEnd- Flow Chart Description:
This flowchart illustrates the renameShapesHR function:
The process starts by selecting objects for renaming shape nodes.
- Checks if the option to rename original nodes is enabled.
If enabled, renames both original and shape nodes to match the transform nodes.
If not enabled, only renames shape nodes to match their corresponding transform nodes.
Completes the renaming process and ends.
- HyperRig.selectCVs(self, **shArgs)#
[shArgs: ]
Purpose:
:: Selects the control vertices (CVs) of the currently selected NURBS curves or surfaces in Maya.
This function is commonly used in rigging and animation workflows for fine-tuning curve or surface shapes.
- Returns:
None # This function does not return any value but selects CVs of the selected NURBS curves or surfaces.
Code Examples:
>>> selectCVs() # Selects the CVs of currently selected NURBS curves or surfaces.
For each selected NURBSRetrieve CVs of each NURBSStore all CVs in listStartGet Selected NURBSGet CVs/ Store CVs/ Select CVsEnd- Flow Chart Description:
This flowchart illustrates the selectCVs function:
The process begins by obtaining all currently selected NURBS curves or surfaces.
For each selected NURBS, control vertices (CVs) are retrieved.
The CVs of all selected NURBS are stored in a list.
Finally, all the CVs in the list are selected, enabling further manipulations or adjustments.
- HyperRig.shiftCtrlShapes(self, shiftType='r', valList=[0, 90, 0], **shArgs)#
[shArgs: st=shiftType, vl=valList]
Purpose:
:: Shifts the control shapes of the selected controls in Maya based on specified parameters.
Ideal for adjusting control shapes in rigging, without affecting their functionality.
- Parameters:
shiftType – <str> # Type of shift operation, e.g., ‘r’ for rotation.
valList – <list> # Values for the shift operation, e.g., [0, 90, 0] for rotation.
- Returns:
None # This function does not return any value but shifts control shapes.
Code Examples:
>>> shift_type = 'r' >>> values = [0, 90, 0] >>> shiftCtrlShapes(shift_type, values) # Rotates the control shapes of selected controls by 90 degrees around the Y-axis.
shArgs providedshArgs not providedStart/ Check shArgs/ Update Arguments/ Get Selection/ Shift ControlsEnd- Flow Chart Description:
This flowchart illustrates the shiftCtrlShapes function:
The process starts by checking if shArgs are provided and updates arguments if necessary.
If shArgs are not provided, the function retrieves the current selection of controls.
It then shifts the control shapes based on the specified shift type (e.g., rotation) and values (e.g., [0, 90, 0]).
- HyperRig.transfer_SDKs(self, src=None, dest=None, **shArgs)#
[shArgs: s=src, d=dest]
Purpose:
:: Transfers Set Driven Key (SDK) animations from a source control to a destination control in Maya.
This function is useful in rigging workflows when needing to replicate SDK animations across multiple controls.
- Parameters:
src – <str/PyNode> # The source control with existing SDK animations.
dest – <str/PyNode> # The destination control where SDK animations will be transferred.
- Returns:
None # This function does not return any value but transfers SDK animations.
Code Examples:
>>> source_ctrl = "sourceControl" >>> destination_ctrl = "destinationControl" >>> transfer_SDKs(source_ctrl, destination_ctrl) # Transfers SDKs from 'sourceControl' to 'destinationControl'.
shArgs providedshArgs not providedStart/ Check shArgs/ Update Arguments/ Select Nodes/ Transfer SDKsEnd- Flow Chart Description:
This flowchart illustrates the transfer_SDKs function:
The process begins by checking if shArgs are provided and updates arguments if necessary.
If shArgs are not provided, the function requires the user to select the source and destination nodes.
SDK animations are then transferred from the source control to the destination control.
- HyperRig.tyrePressureCtrl(self, divCount=10, selList=None, bsGrp='BlendShapes_Grp', **shArgs)#
[shArgs: dc=divCount, sl=selList, bg=bsGrp]
Purpose:
:: Creates a tyre pressure control system in Maya using lattice deformers and blend shapes.
Useful in rigging vehicles or objects with tyres that need to simulate pressure or deformation effects.
- Parameters:
divCount – <int> # Division count for the lattice deformer.
selList – <list> # List of objects to apply the tyre pressure control system.
bsGrp – <str> # Name of the blend shape group.
- Returns:
None # This function does not return any value but sets up a tyre pressure control system.
Code Examples:
>>> division_count = 10 >>> selected_objects = ['tyre1', 'tyre2'] >>> blend_shape_group = 'BlendShapes_Group' >>> tyrePressureCtrl(division_count, selected_objects, blend_shape_group) # Sets up a tyre pressure control system for 'tyre1' and 'tyre2'.
shArgs providedshArgs not providedStart/ Check shArgs/ Update Arguments/ Select Nodes/ Setup Tyre Pressure ControlEnd- Flow Chart Description:
This flowchart illustrates the tyrePressureCtrl function:
Begins by checking if shArgs are provided and updates the arguments accordingly.
If shArgs are not provided, the user is required to select the animation control and the mesh for the tyre pressure system.
The process then sets up a tyre pressure control system using lattice deformers and blend shapes.
- HyperRig.update_ClusterInfo_FL(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of the Cluster Information frame layout in the as_HyperRig UI.
This function is used to dynamically adjust the UI based on user interaction, specifically for displaying or hiding cluster information.
- Returns:
None # This function does not return any value but updates the UI layout of as_HyperRig.
Code Examples:
>>> update_ClusterInfo_FL() # Toggles the visibility of the Cluster Information section in the as_HyperRig UI.
If FrameLayout is collapsedIf FrameLayout is expandedStartQuery FrameLayout State/ Expand FrameLayout/ Update Window Size/ Collapse FrameLayout/ Update Window SizeEnd- Flow Chart Description:
This flowchart illustrates the update_ClusterInfo_FL function:
The function begins by querying the current state of the Cluster Information frame layout in the as_HyperRig UI.
If the frame layout is collapsed, it is expanded and the window size is updated accordingly.
If the frame layout is already expanded, it is collapsed, and the window size is adjusted to reflect the change.
- HyperRig.update_CreateClust_FL(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility and adjusts the size of the Create Cluster frame layout in the as_HyperRig UI.
This function is used to dynamically adjust the UI based on user interaction, specifically for the Create Cluster section.
- Returns:
None # This function does not return any value but updates the UI layout of as_HyperRig.
Code Examples:
>>> update_CreateClust_FL() # Toggles the visibility and size of the Create Cluster section in the as_HyperRig UI.
If FrameLayout is collapsedIf FrameLayout is expandedStartQuery FrameLayout State/ Expand FrameLayout/ Update Window Size/ Collapse FrameLayout/ Update Window SizeEnd- Flow Chart Description:
This flowchart illustrates the update_CreateClust_FL function:
The function starts by checking the state of the Create Cluster frame layout in the as_HyperRig UI.
If the frame layout is collapsed, it is expanded and the window size is adjusted downwards.
Conversely, if the frame layout is expanded, it is collapsed, resulting in an upward adjustment of the window size.
- HyperRig.update_EditClust_FL(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility and adjusts the size of the Edit Cluster frame layout in the as_HyperRig UI.
This function is used to dynamically adjust the UI based on user interaction, specifically for the Edit Cluster section.
- Returns:
None # This function does not return any value but updates the UI layout of as_HyperRig.
Code Examples:
>>> update_EditClust_FL() # Toggles the visibility and size of the Edit Cluster section in the as_HyperRig UI.
If FrameLayout is collapsedIf FrameLayout is expandedStartQuery FrameLayout State/ Expand FrameLayout/ Update Window Size/ Collapse FrameLayout/ Update Window SizeEnd- Flow Chart Description:
This flowchart illustrates the update_EditClust_FL function:
The function begins by querying the state of the Edit Cluster frame layout in the as_HyperRig UI.
If the frame layout is collapsed, it is expanded, and the window size is adjusted accordingly.
If the frame layout is expanded, it is collapsed, leading to a corresponding adjustment in the window size.
- HyperRig.update_HairSystems(self, optionMenu, **shArgs)#
[shArgs: om=optionMenu]
Purpose:
:: Updates the hair systems list in the specified options menu within the as_HyperRig UI.
Used to refresh the list of hair systems available for selection, ensuring the UI reflects the current scene state.
- Parameters:
optionMenu – <str> # Name of the option menu to update with hair system names.
- Returns:
None # This function does not return any value but updates the specified option menu with current hair systems.
Code Examples:
>>> option_menu_name = "hairSystemsMenu" >>> update_HairSystems(option_menu_name) # Updates the specified hair systems menu with the latest hair systems in the scene.
Option Menu ExistsNo Option MenuHair Systems AvailableNo Hair SystemsStart/ Check Option Menu/ List Hair SystemsEnd/ Get Menu Items/ Check Hair Systems/ Loop Through Hair Systems/ Add Menu Item- Flow Chart Description:
This flowchart illustrates the update_HairSystems function:
The function begins by checking if the specified option menu exists in the UI.
If the option menu is found, it lists all hair systems available in the Maya scene.
The menu items in the option menu are then retrieved.
The function checks if there are any hair systems available.
For each hair system not already in the menu, a new menu item is added.
The process ends after updating the option menu with all current hair systems.
- HyperRig.update_RigInfo_FL(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of the Rig Information frame layout in the as_HyperRig UI.
This function is used to dynamically adjust the UI based on user interaction, specifically for displaying or hiding rig information.
- Returns:
None # This function does not return any value but updates the UI layout of as_HyperRig.
Code Examples:
>>> update_RigInfo_FL() # Toggles the visibility of the Rig Information section in the as_HyperRig UI.
Check if FrameLayout is ClosedCheck if FrameLayout is OpenUpdate UI LayoutStart/ Get FrameLayout State/ Open FrameLayout/ Close FrameLayout/ Update UI Layout/ End- Flow Chart Description:
This flowchart illustrates the update_RigInfo_FL function:
Checks the current state of the Rig Information frame layout.
If the frame layout is closed, it opens it and updates the UI layout accordingly.
If the frame layout is open, it closes it and updates the UI layout accordingly.
Ends the process.
- HyperRig.update_WorkboxPaint_FL(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility and adjusts the size of the Workbox Paint frame layout in the as_HyperRig UI.
This function is utilized to dynamically adjust the UI based on user interaction, specifically for the Workbox Paint section.
- Returns:
None # This function does not return any value but updates the UI layout of as_HyperRig.
Code Examples:
>>> update_WorkboxPaint_FL() # Toggles the visibility and size of the Workbox Paint section in the as_HyperRig UI.
Check if FrameLayout is ClosedCheck if FrameLayout is OpenUpdate UI LayoutStart/ Get FrameLayout State/ Open FrameLayout/ Close FrameLayout/ Update UI Layout/ End- Flow Chart Description:
This flowchart outlines the update_WorkboxPaint_FL function:
Checks the current state of the Workbox Paint frame layout.
If the frame layout is closed, it opens it and adjusts the UI layout accordingly.
If the frame layout is open, it closes it and adjusts the UI layout accordingly.
Ends the process.
- HyperRig.update_meshInfo_FL(self, **shArgs)#
[shArgs: ]
Purpose:
:: Toggles the visibility of the Mesh Information frame layout in the as_HyperRig UI.
This function is used to dynamically adjust the UI based on user interaction, specifically for displaying or hiding mesh information.
- Returns:
None # This function does not return any value but updates the UI layout of as_HyperRig.
Code Examples:
>>> update_meshInfo_FL() # Toggles the visibility of the Mesh Information section in the as_HyperRig UI.
If FrameLayout is collapsedIf FrameLayout is expandedStartQuery FrameLayout State/ Expand FrameLayout/ Update Window Size/ Collapse FrameLayout/ Update Window SizeEnd- Flow Chart Description:
This flowchart illustrates the update_meshInfo_FL function:
The function starts by checking the current state of the Mesh Information frame layout in the as_HyperRig UI.
If the frame layout is collapsed, the function expands it and adjusts the window size to accommodate the change.
Conversely, if the frame layout is expanded, it collapses the layout and modifies the window size accordingly.