Viewing entries tagged
Maya Rigging

Comment

asNode (Part 01) -- One node for most of the Rigging Work in Maya

Download:
---------------
Available for free download here :
http://www.creativecrash.com/maya/script/asnode-one-node-for-most-of-the-general-process-in-maya-rigging
Purpose:
------------
This node is the key module in maya rigging process. One node for the most of the rigging process.
asNode is still going to include many general methods required for rigging / animation process. 
It played key role in hyper skinning system as shown in below video:
asNode was developed with the inspiration from PyNode in PyMel, But with extended support to Rigging process.
And this doesn't depend on PyNode in PyMel. Its purely depends only on Maya api and maya.cmds.
Features:
---------
1. One node for most of the general process in Maya Rigging
2. asNode was developed with the inspiration from PyNode in PyMel
3. It has extensive support to Rigging and  General Pipeline.
4. Doesn't depend on any external modules like PyMel
5. Purely depends on maya.cmds and maya python api
6. Increase programming speed in rigging & pipeline upto 3-4 times
7. A Node with true Object Oriented Programming (OOP)
8. Auto completion list varies with change in node type 
9. Tight Integration With All Auto Rig tools like (as_EasyBird, as_EasyRig, as_EasyQuad etc.)
Updates:
----------
2014.09.08 -- Updated asNode.rar with help file on all methods by adding 'asNode.pypredef'. Open it with wordpad
2014.09.21 -- Test files are added in asNode.rar for asN.addChild, asN.mConstrain etc
2015.02.05 -- Auto completion methods will update and change according the selection type of object
2015.02.06 -- Fixed the method : asN.jntOrient and added new methods : asN.get_2PosExtn, asN.get_2PosVect.
                   And added new example maya files
Future Updates:
---------------------
1. More rigging and pipeline related methods will be added to asNode
Usage:
--------
Apply asNode on any maya node and then start using following methods:
[ '_selected', 'addAttr', 'addAttrDivider', 'addChild', 'addPrefix', 'addSuffix', 'applyCtrlColor', 'asObj', 'attr', 'capitalize', 'center', 
'centerPivot', 'child', 'connectAttr', 'connectionInfo', 'connections', 'constrainTo', 'contains', 'count', 'decode', 'delete', 'deleteAttr',
 'deleteHistory', 'deleteKey', 'deleteNode', 'deselect', 'disconnectAttr', 'distanceTo', 'dupeNVersionUp', 'duplicate', 'encode',
 'endswith', 'expandtabs', 'extendToParent', 'extendToShape', 'extractNum', 'find', 'format', 'freeze', 'fullName', 'getAttr', 
'getChildren', 'getDirPos', 'getDirVect', 'getFaceList', 'getInputs', 'getNearestVtx_OnMesh', 'getOutputs', 'getPos', 'getPosJnt',
 'getPosLoc', 'getPos_Old', 'getPos_Vtx', 'getRot', 'getShape', 'getSibIndex', 'getVtxList', 'grpIt', 'grpIt_Old', 'hasAttr', 
'hasAttrLocked', 'hasChild', 'hasParent', 'hasShape', 'hasUniqueName', 'hide', 'index', 'intersects', 'isChildOf', 'isCurv', 
'isJnt', 'isLastJnt', 'isLoc', 'isMesh', 'isNodeType', 'isParentOf', 'isShape', 'isSkinMesh', 'isTrans', 'isalnum', 'isalpha', 'isdecimal', 
'isdigit', 'islower', 'isnumeric', 'isspace', 'istitle', 'isupper', 'jntAxis', 'jntDist', 'jntOrient', 'jntOrientTo', 'jntRadius', 'join',
 'listConstraints', 'listHistory', 'listLockedAttrs', 'listRelatives', 'ljust', 'lockAttrs', 'longName', 'longestObj', 'lower', 'lstrip', 
'mConstrain', 'mDistance_BB', 'mDistance_Vtx', 'moveAnimTo', 'moveAnimToGrp', 'moveValuesFromGrps', 'moveValuesToGrp', 
'name', 'nearestObj', 'nearestPointOn', 'nextSeriesNode', 'nextUniqueName', 'nextVar', 'nodeType', 'numChildren', 'obj', 
 'openAttrs', 'parent', 'parentTo', 'partition', 
'pickWalkDown', 'pickWalkLeft', 'pickWalkRight', 'pickWalkUp', 'prefixHI', 'rename', 'reorderDeformers', 'replace', 'reverseConnect',
 'rfind', 'rindex', 'rjust', 'root', 'rotateBy', 'rpartition', 'rsplit', 'rstrip', 'scaleBy', 'searchReplaceAll', 'select', 'selectHI', 
'selectSeries', 'selectSiblings', 'setAttr', 'setName', 'setPos', 'setRot', 'setSibIndex', 'shape', 'shapeCtrl', 'shortName', 'show', 
'snapPivTo', 'snapPosTo', 'snapRotTo', 'snapShpTo', 'split', 'splitlines', 'startswith', 'strip', 'stripNum', 'swapcase', 'template',
 'title', 'transferAnimTo', 'transferAnimToGrp', 'translate', 'translateBy', 'unfreezeRotation', 'unfreezeTrans', 'unparent', 'untemplate']
Testing the asNode:
---------------------------
create two spheres named 'pSphere1' and 'pSphere2'
And then, Run these commands from python window
from asNode import *
p2 =asNode('pSphere2')
p2.select()
p2.snapPosTo([5,0,0])
asN =asNode('pSphere1')
#_ That's it, then start using:
asN.snapPivTo(p2)   #_ Now pSphere1's pivot is at 'pSphere2'
or 
Create any maya poly object or locator then try this command
from asNode import *
node =asN._selected()[0]   #_ asN is short form for selecting selected objects..
node.rename('Ball')            #_ Rename to 'Ball'
node.addSuffix('_Sph')       #_ Now it adds '_Sph' suffix to the ball, But still node is updated with all these changes

Download:---------------Available for free download here :http://www.creativecrash.com/maya/script/asnode-one-node-for-most-of-the-general-process-in-maya-rigging
Purpose:------------This node is the key module in maya rigging process. One node for the most of the rigging process.asNode is still going to include many general methods required for rigging / animation process. It played key role in hyper skinning system as shown in below video:asNode was developed with the inspiration from PyNode in PyMel, But with extended support to Rigging process.And this doesn't depend on PyNode in PyMel. Its purely depends only on Maya api and maya.cmds.
Features:---------1. One node for most of the general process in Maya Rigging2. asNode was developed with the inspiration from PyNode in PyMel3. It has extensive support to Rigging and  General Pipeline.4. Doesn't depend on any external modules like PyMel5. Purely depends on maya.cmds and maya python api6. Increase programming speed in rigging & pipeline upto 3-4 times7. A Node with true Object Oriented Programming (OOP)8. Auto completion list varies with change in node type 9. Tight Integration With All Auto Rig tools like (as_EasyBird, as_EasyRig, as_EasyQuad etc.)
Updates:----------2014.09.08 -- Updated asNode.rar with help file on all methods by adding 'asNode.pypredef'. Open it with wordpad2014.09.21 -- Test files are added in asNode.rar for asN.addChild, asN.mConstrain etc2015.02.05 -- Auto completion methods will update and change according the selection type of object2015.02.06 -- Fixed the method : asN.jntOrient and added new methods : asN.get_2PosExtn, asN.get_2PosVect.                   And added new example maya files
Future Updates:---------------------1. More rigging and pipeline related methods will be added to asNode
Usage:--------Apply asNode on any maya node and then start using following methods:
[ '_selected', 'addAttr', 'addAttrDivider', 'addChild', 'addPrefix', 'addSuffix', 'applyCtrlColor', 'asObj', 'attr', 'capitalize', 'center', 'centerPivot', 'child', 'connectAttr', 'connectionInfo', 'connections', 'constrainTo', 'contains', 'count', 'decode', 'delete', 'deleteAttr', 'deleteHistory', 'deleteKey', 'deleteNode', 'deselect', 'disconnectAttr', 'distanceTo', 'dupeNVersionUp', 'duplicate', 'encode', 'endswith', 'expandtabs', 'extendToParent', 'extendToShape', 'extractNum', 'find', 'format', 'freeze', 'fullName', 'getAttr', 'getChildren', 'getDirPos', 'getDirVect', 'getFaceList', 'getInputs', 'getNearestVtx_OnMesh', 'getOutputs', 'getPos', 'getPosJnt', 'getPosLoc', 'getPos_Old', 'getPos_Vtx', 'getRot', 'getShape', 'getSibIndex', 'getVtxList', 'grpIt', 'grpIt_Old', 'hasAttr', 'hasAttrLocked', 'hasChild', 'hasParent', 'hasShape', 'hasUniqueName', 'hide', 'index', 'intersects', 'isChildOf', 'isCurv', 'isJnt', 'isLastJnt', 'isLoc', 'isMesh', 'isNodeType', 'isParentOf', 'isShape', 'isSkinMesh', 'isTrans', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'islower', 'isnumeric', 'isspace', 'istitle', 'isupper', 'jntAxis', 'jntDist', 'jntOrient', 'jntOrientTo', 'jntRadius', 'join', 'listConstraints', 'listHistory', 'listLockedAttrs', 'listRelatives', 'ljust', 'lockAttrs', 'longName', 'longestObj', 'lower', 'lstrip', 'mConstrain', 'mDistance_BB', 'mDistance_Vtx', 'moveAnimTo', 'moveAnimToGrp', 'moveValuesFromGrps', 'moveValuesToGrp', 'name', 'nearestObj', 'nearestPointOn', 'nextSeriesNode', 'nextUniqueName', 'nextVar', 'nodeType', 'numChildren', 'obj',  'openAttrs', 'parent', 'parentTo', 'partition', 'pickWalkDown', 'pickWalkLeft', 'pickWalkRight', 'pickWalkUp', 'prefixHI', 'rename', 'reorderDeformers', 'replace', 'reverseConnect', 'rfind', 'rindex', 'rjust', 'root', 'rotateBy', 'rpartition', 'rsplit', 'rstrip', 'scaleBy', 'searchReplaceAll', 'select', 'selectHI', 'selectSeries', 'selectSiblings', 'setAttr', 'setName', 'setPos', 'setRot', 'setSibIndex', 'shape', 'shapeCtrl', 'shortName', 'show', 'snapPivTo', 'snapPosTo', 'snapRotTo', 'snapShpTo', 'split', 'splitlines', 'startswith', 'strip', 'stripNum', 'swapcase', 'template', 'title', 'transferAnimTo', 'transferAnimToGrp', 'translate', 'translateBy', 'unfreezeRotation', 'unfreezeTrans', 'unparent', 'untemplate']
Testing the asNode:---------------------------create two spheres named 'pSphere1' and 'pSphere2'And then, Run these commands from python window
from asNode import *p2 =asNode('pSphere2')p2.select()p2.snapPosTo([5,0,0])asN =asNode('pSphere1')
#_ That's it, then start using:asN.snapPivTo(p2)   #_ Now pSphere1's pivot is at 'pSphere2'
or 
Create any maya poly object or locator then try this commandfrom asNode import *node =asN._selected()[0]   #_ asN is short form for selecting selected objects..node.rename('Ball')            #_ Rename to 'Ball'node.addSuffix('_Sph')       #_ Now it adds '_Sph' suffix to the ball, But still node is updated with all these changes

Comment

Comment

Python Scripting : IK to FK snapping, part 3 (Maya/Rigging)

zeth willie will take you through This three parter. . . a trilogy, about the basics of setting up an IK/FK snapping script that will correctly position your IK control and pole vector based on the rotations of your FK arm. A little bit of math, some elbow grease and a winning attitude are you need! And some python scripting. And some secret nodes. And a bunch of other stuff too. . .

Part 1 - covers the basics of what it is, why we'd bother and some basics of vector math that we'll need.
Part 2 - covers the hows and whys of writing the basic version of the python script.
Part 3 - covers using funky, cool message attributes to enhance the functionality of the script, etc.

Comment

Comment

Python Scripting : IK to FK snapping, part 2 (Maya/Rigging)

zeth willie will take you through This three parter. . . a trilogy, about the basics of setting up an IK/FK snapping script that will correctly position your IK control and pole vector based on the rotations of your FK arm. A little bit of math, some elbow grease and a winning attitude are you need! And some python scripting. And some secret nodes. And a bunch of other stuff too. . .

Part 1 - covers the basics of what it is, why we'd bother and some basics of vector math that we'll need.
Part 2 - covers the hows and whys of writing the basic version of the python script.
Part 3 - covers using funky, cool message attributes to enhance the functionality of the script, etc.

Comment

Comment

Python Scripting : IK to FK snapping, part 1 (Maya/Rigging)

zeth willie  will take you through This three parter. . . a trilogy, about the basics of setting up an IK/FK snapping script that will correctly position your IK control and pole vector based on the rotations of your FK arm. A little bit of math, some elbow grease and a winning attitude are you need! And some python scripting. And some secret nodes. And a bunch of other stuff too. . .

Part 1 - covers the basics of what it is, why we'd bother and some basics of vector math that we'll need.
Part 2 - covers the hows and whys of writing the basic version of the python script.
Part 3 - covers using funky, cool message attributes to enhance the functionality of the script, etc.

Comment