asNode (Part 01)

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

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
Your collection is already set up for you with fields and content. Add your own, or import content from a CSV file. Add fields for any type of content you want to display, such as rich text, images, videos and more. You can also collect and store information from your site visitors using input elements like custom forms and fields.

Be sure to click Sync after making changes in a collection, so visitors can see your newest content on your live site. Preview your site to check that all your elements are displaying content from the right collection fields.