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

asNode (Video Tutorial)-- One python node for most of the Rigging Process in Maya
– Updated with Quick Example
[video=vimeo;118924262]https://vimeo.com/118924262[/video]

Download:

asNode along with example code as shown in video is 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
2015.02.07 – Updated the method ‘asN.jntOrient’ and added new methods : ‘asN.get_2PosExtn’ and ‘asN.get_2PosVect’
And added quick practial 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