(Maya C++ API)
wrapX
uvBlendShape
makeCorrShape
mirrorMesh
drawText
skinWeightsIO
transferVertices
MotionEqualizer
wrapXDeformer (for Maya 2016/2015/2014 64Bit)

wrap-Deformer with paintable weights, very fast, adjacent points and weights are calculated only once, when deformer is created and connected
Use like this:
    deformer -type wrapX driven;
    connectAttr -f driverShape.outMesh wrapX1.inMesh;
    connectAttr -f preShape.outMesh wrapX1.preMesh;
if the driver is deformer-driven, the Origshape can be used as pre-Shape

Download wrapX.rar
uvBlendShapeDeformer (for Maya 2015/2016 64Bit)

uv-based BlendShape-Deformer. Topology is irrelevant
  • in relative mode(absolute=off) it can be used to transfer facial expressions from one character to another.
  • in absolute mode(absolute=on) it tries to imitate the shape of the driving geometry.
  • same Topo mode can be used, if both geometries have the same topology, but are shaped differently. In that case the point numberings are directly mapped to each other and it's not uv-based. It's also for transferring facials because only offsets are transferred - absolute=off.
    (absolute=on makes no sense in that case, because it would have just the same effect as outMesh->inMesh)
Use like this:
    deformer -type uvBlendShape driven;
    connectAttr -f driverShape.outMesh uvBlendShape1.inMesh;
    connectAttr -f preShape.outMesh uvBlendShape1.preMesh;
if the driver is deformer-driven, the Origshape can be used as pre-Shape

Download uvBlendShape.rar
makeCorrShape (for Maya 2013 64Bit)

Creates a corrective blendShape based on a sculpted duplicate of the deformed mesh
This can be applied as a blendShape at the front of the deformation chain
Use like this:
  • select -r sculpt ;
  • select -add skinned ;
  • select -addFirst skinCluster1 ;
  • execute command

Download makeCorrShape.rar
mirrorMesh (for Maya 2008 32Bit)

Mirrors or reflects a mesh at the YZ Plane according to a symmetrical reference mesh.
Is a must-have for blendShape-modeling
  • select reference Mesh (should be symmetrical)
  • shift select target Mesh
  • execute Command
  • tolerance is the tolerance used to find symmetrical point pairs
    (0.01 should be a good starting point)
  • mirrorInverse (-i) is either 0 (-X to +X) or 1 (+X to -X), default is 0
    This Flag lets you specify the direction of the mirroring
  • mode is either 0 (mirror) or 1 (reflect)
Example: mirrorMesh -m 0 -i 1 -t .01;

no Flags means tolerance of 0.01 and mirror mode and -X to +X

Or source mirrorMeshUI.mel and type mirrorMeshUI.


Download mirrorMesh.rar
drawText (for Maya 2008 32Bit)

Alternative to Annotation Node with a couple more options
Draws text in the Viewport.
  • round rounds the inputValue to the given number of digits
  • display either text or value or both or none
  • variable display color
  • text is left aligned unlike text in the annotation node

Download drawText.mll
skinWeightsIO (for Maya 2008 Ext.2 32Bit)

Import/Export of skinCluster-Weights. Writes out ASCII-File

Works now also on vertex-selection. Means you can export/import only a certain area of your character. When you import, it imports only the vertices, that you previously saved to the file.

  • select the Mesh or Vertices
  • select skinCluster in channelBox
  • type skinWeightsIO -path -mode 0 (0 is write, 1 for read)
Example: skinWeightsIO -p "D:/stuff/test.txt" -m 1;

Or source skinWeightsIOUI.mel and type skinWeightsIOUI.

It reads the weights by name, not by index.
That means, the order, in which the influences are bound before importing, can differ from the one before exporting.
That means you exoprt, detach, change joint-hierarchy, import again, still working. that way you can also swap weights: export, change joint-names, import, change joint-names again, done!

skinWeightsIO is being used by LUMA PICTURES

Download skinWeightsIO.rar
transferVertices (for Maya 2008 32Bit)

Copies vertex position of the the selected source object to selected destination vertices.
  • select vertices you want to be moved
  • ctrl-select the object from which you want to copy the vertex position in the outliner
  • type transferVertices -m 1
    (the m-parameter determines how much you want make the vertices go in the desired direction (e.g. -m 0.5 makes them go only halfway)
  • type just transferVertices and m will be 1 (default)
Both Objects should have the same topology. (Since this tool is mostly used for blendShapes, that'll be the case anyway).

Example (setup the scene, two spheres with same topology, one is deformed):

$src = `polySphere -r 1 -sx 100 -sy 100 -ax 0 1 0 -cuv 2 -ch 1`;
$dest = `duplicate -rr $src[0]`;
move -r -os -wd 5 0 0 $dest[0];
setAttr ($src[0] + ".scaleY") 3;
makeIdentity -apply true -t 0 -r 0 -s 1 -n 0 $src[0];
select -r ($dest[0] + ".vtx[0:3000]");
select -tgl $src[0];

Now execute the command:

transferVertices -m .5

Or source transferVerticesUI.mel and type transferVerticesUI.

Download transferVertices.rar
MotionEqualizer - Revisited

Here's the PlugIn-Version of Motion Equalizer for Maya 8.5.
About 20 times faster!

  • unpack rar-file
  • copy motionEqualizerUI.mel to your scripts-directory
  • copy motionEqualizer.mll to your plugIn-directory
  • restart maya
  • open walk.ma
  • type motionEqualizerUI
  • select one or more Objects, that has animation on it (i.e. LThigh10)
  • select the attributes, you want to have affected in the channelBox
    (i.e. rx, ry, rz)
  • adjust the equalizer-slider-values
  • press process
The Motion-Equalizer is a graphic equalizer for motion. It is displayed like an equalizer in an audioamplifier, where the amplitude (gain) of each frequency band can be individually adjusted via a slider before summing all the bands together again to obtain the final motion. The tool splits the motion signal into five frequency bands, which then can be seperately raised or lowered. This has the effect, that the motion is also splitted into its characteristics. For example, the jitter is mostly to be found in the high frequency bands (band 1 or 2), so it can be eliminated by setting those high frequency bands to zero. Increasing the high frequency band adds a nervous twitch to the movement. It has normally a very low amplitude. Increasing the middle frequencies results in a smoothed but exaggerated motion. Increasing the low frequencies generates an attenuated constrained motion. They have usually the highest amplitude.

Original-Signal

Band 1

Band 2

Band 3

Band 4

Band 5
Download MotionEqualizer