Pages

Friday, May 4, 2012

na_space v1.0.0 and na_snap v1.0.0



//////////////////////////////////////////////////used for ommitting name spaces
eval( "source \"naOmmitNameSpace.mel\";" );
eval( "source \"naGeneral.mel\";" );

renameCurveObjects();
renameGroupObjects();
renameMeshObjects();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for getting fk and ik chains to communicate with result chain
eval( "source \"fk_IK_pick.mel\";" );
eval( "source \"fk_ik_pickUI.mel\";" );
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
//name joint, name fk then ik, then animator control, animator attribute, prefix for blend node
fk_ik_pickUI();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for segmenting joint chains
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_segment.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
//num segments, start joint, end joint, prefix for newly created joints
na_segmentUI();
//////////////////////////////////////////////////



//////////////////////////////////////////////////used for adding geometry to joints
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_segment.mel\";" );
eval( "source \"na_hierarchy.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
//root joint of straight joint chain
na_addGeoSinglePlaneUI();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for stretching
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"na_sdkGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_hierarchy.mel\";" );
eval( "source \"na_stretchIK.mel\";" );
eval( "source \"na_stretchIK_UI.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
//root joint, distance node, distance attribute, translate or scale stretching
na_stretchIK_UI();
//////////////////////////////////////////////////




//////////////////////////////////////////////////used for finger rigging
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_sdkGeneral.mel\";" );
eval( "source \"na_connect.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
//
eval( "source \"na_dupDrivenKey.mel\";" );
eval( "source \"na_dupDrivenKeyUI.mel\";" );
//
//joint, to anim, to attribute, from anim, from attr
na_dupDrivenKeyUI();
//////////////////////////////////////////////////



//////////////////////////////////////////////////used for adding float attribute
eval( "source \"na_ui.mel\";" );
//
eval( "source \"na_addAttribute.mel\";" );
eval( "source \"na_addAttributeUI.mel\";" );
//
//attribute(s), animator control(s)
na_addAttributeUI();
//////////////////////////////////////////////////



//////////////////////////////////////////////////used for fk stretching
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"na_hierarchy.mel\";" );
eval( "source \"na_sdkGeneral.mel\";" );
eval( "source \"na_addAttribute.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
//
eval( "source \"na_stretchFK.mel\";" );
//
//joint range, stretch axis, option to stretch geometry, name for tool created stretch attr
na_stretchFK_UI()
//////////////////////////////////////////////////




//////////////////////////////////////////////////used for adding half way joints
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_hierarchy.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
//
eval( "source \"na_segment.mel\";" );
//
//start joint (like a root of hierarchy) end joint (doesn't have to be the end of hierarchy) , suffix (for created names)
na_insertHalfWayJointUI();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for ik fk matching between objects
eval( "source \"na_ui.mel\";" );
eval( "source \"naGeneral.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
eval( "source \"na_connect.mel\";" );
eval( "source \"na_snap.mel\";" );
eval( "source \"na_snapMake_UI.mel\";" );
//anim, duped anim where to move to , int array at most 3 elements of 1 translate, 2 rotate, 3 scale
na_snapMake_UI();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for having space options for poses (no ui yet)
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
eval( "source \"na_connect.mel\";" );
eval( "source \"na_space.mel\";" );
//translation enum in1X, rotation in1Y, naSpace attr in1Z, pointCnt in2X, orCnt in2Y
//na_space();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for ik fk matching between attributes with computation
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
eval( "source \"na_connect.mel\";" );
eval( "source \"na_ui.mel\";" );
eval( "source \"na_snapAttr.mel\";" );
eval( "source \"na_snapAttrMake_UI.mel\";" );
eval( "source \"na_snap.mel\";" );
//anim, attributes, end point that move with attr one per attr, goal point one per attr
na_snapAttrMake_UI();
//////////////////////////////////////////////////


//////////////////////////////////////////////////used for ik fk matching between attributes without computation
eval( "source \"naGeneral.mel\";" );
eval( "source \"naMath.mel\";" );
eval( "source \"na_assertGeneral.mel\";" );
eval( "source \"na_connect.mel\";" );
eval( "source \"na_ui.mel\";" );
eval( "source \"na_snapAttr.mel\";" );
eval( "source \"na_snapSimpleAttrMake_UI.mel\";" );
eval( "source \"na_snap.mel\";" );
//anim, attributes, goal objects, goal plugs
na_snapSimpleAttrMake_UI()
//////////////////////////////////////////////////



Hi,
To use any of these tools download all the
scripts you see appearing in between \" \" and put them in your default Maya script directory. Also you may not need all these scripts for a given tool.

na_assertGeneral.mel v1.0.0 na_assertGeneral.mel
na_connect.mel v1.0.0 na_connect.mel
na_dupDrivenKey.mel v1.0.0 na_dupDrivenKey.mel
na_dupDrivenKeyUI.mel v1.0.0 na_dupDrivenKeyUI.mel
na_hierarchy.mel v1.0.1 na_hierarchy.mel
na_insertHalfWayJointUI.mel v1.0.0 na_insertHalfWayJointUI.mel
na_sdkGeneral.mel v 1.0.1 na_sdkGeneral.mel
na_segment.mel v1.0.1 na_segment.mel
na_snap.mel v1.0.0 na_snap.mel
na_snapAttrMake_UI.mel v1.0.0na_snapAttrMake_UI.mel
na_snapMake_UI.mel v1.0.0na_snapMake_UI.mel
na_snapAttr.mel v1.0.1na_snapAttr.mel
na_snapSimpleAttrMake_UI.mel v1.0.0na_snapSimpleAttrMake_UI.mel
na_space.mel v1.0.0na_space.mel
na_stretchFK.mel v1.0.0na_stretchFK.mel
na_stretchFK_UI.mel v1.0.0na_stretchFK_UI.mel
na_stretchIK.mel v1.0.1na_stretchIK.mel
na_stretchIK_UI.mel v1.0.1na_stretchIK_UI.mel
na_ui.mel v1.0.1na_ui.mel
naGeneral.mel v1.0.2naGeneral.mel
naMath.mel v1.0.1naMath.mel
naOmmitNameSpace.mel v1.0.1naOmmitNameSpace.mel




Also this might be a little helpful for function finding although it is unfinished na_manual v1.pdf

If you find any bugs using these I would appreciate your feedback.
Regards,
Nate


Inspired by Jason Schleifer's Animator Friendly Rigging (jasonschleifer dot com)
Inspired by Hunt & Thomas The Pragmatic Programmer
Inspired by Steve Mcconell's Code Complete 2