In this section, I will try to share tools and plug-ins for maya , in hope to start a collective effort to complement maya default tool-set.

Feedback are more than welcomed : don’t hesitate to ask questions or request additional features   ( I will be more than happy to try my best to reply but keep in mind that nothing  comparable to a full blown commercial support can be provided )

Toggle Node

Toggle Node version 0.1 ( remove ‘.pdf’ from name then extract in a plugin folder )

A dependency node that output a list of value based on an active index attribute.

Its purpose is to simplify a graph network by enabling user to toggle the state of a large number of elements. All elements will be set to false except for the active index.

Typical  use :
Space switching, visibility toggle etc..

Usage Notes:

import maya.cmds as cmds
tglNode = cmds.createNode('toggle')

# Just a little trick to have a correct number of output when the node is not connected
cmds.addAttr(tglNode, ln='refresh',k=True)
cmds.connectAttr('%s.outState[0]'% tglNode,'%s.refresh'%tglNode)

blendQueue Node

blendQueue Node version 0.1 ( remove ‘.pdf’ from name   )

A dependency node providing the core functionality of maya pairBlend node but accepts an unlimited number of driver as input.

Its purpose is to simplify a graph network by blending an entire chain or hierarchy inside one node. An additional sequential queue mode is provided to cope with hierarchy used in simulation

Typical  use :
Ik/Fk chain blending, rest pose blending for simulation

(Above: a cleaner node network: notice also the correct type of attributes with no intermediate conversion node )

Usage Notes:

import maya.cmds as cmds

def linkChain (fkList, ikList, boundList, queueNode):
    AttributesA = ["input1_Translate","input1_Rotate","outTranslate"]
    AttributesB = ["input2_Translate","input2_Rotate","outRotate"]

    if len(fkList) != len(ikList) and len(ikList) != len(boundList):
        return None
        listLength = len(fkList)
        for k in range(listLength):


# create 3 list(with the same number of element) with the name of a chain element
# invoke the function as follow:
QuNode = cmds.createNode('blendQueue')

# select all chain element then
fkList =, tr=True,dag=True,ap=True,l=True)

#repeat for the other two
ikList =, tr=True,dag=True,ap=True,l=True)

boundList =, tr=True,dag=True,ap=True,l=True)
linkChain (fkList, ikList, boundList, QuNode)

Installation :

( and AEblendQueueTemplate.mel are the only files needed to use this node )

Rotation order are not supported( not yet but can be easily added ).

Quatermain Node

Quatermain Node version 0.1 ( remove ‘.pdf’ from name then extract in a plugin folder )

A dependency node that behaves like a quaternion based aim constraint and output rotation from an input target position..

Typical use :
Bending limbs, flipping less rigs, torsion extraction..

Usage Notes:

import maya.cmds as cmds
QuatNode = cmds.createNode('quatermainNode')

# connect your target position to the targetPosition attribute
# by default this node rest pose is at 1,0,0 : it use the x axis to extract a quaternion

#AimGrp --> change by the your driven object name

Side Notes:

The same behavior can be achieved with a regular aim constraint :

Just choose “None” as worldUpType.( thanks to tech-artist forum post for the tip )


6 comments on “Download

  1. Hey really cool stuff, wanted to try it out, but i cant download the files, could you perhaps make it avaliable again? 🙂

    • Sure which files are we talking about? on the big white zip icon if you save as the pdf file and rename it as .zip normally you will have a valid archive.

      Let me see if i can save them in github that migh be easier ( though to be honnest those nodes are nothing special just me playing around with API in order to learn core concepts)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s