weightDriver

The weightDriver node offers two modes for creating driving relationships.

Vector Angle is a cone based pose reader to avoid rotational issues due to Euler rotations. While simple rotation dependencies can be mostly solved with expressions or set driven keys more elaborate setups are bound to fail when two or more axes are involved. A vector angle reader is usually a good and inexpensive solution in these cases.

For more complex setups the RBF mode (Radial Basis Function) delivers the best way of interpolating an arbitrary number of values based on any number of poses. This way it’s possible to basically drive anything from anything. A common application for a RBF solver is the blending of corrective shapes or blend shapes in general. Especially when it comes to problematic areas like the shoulder, wrist or hip area. The RBF mode can easily blend between different corrective shapes based on the orientation of the joint.

weightDriver is under the terms of the MIT License

Version 4 Update – Breaking Changes

weightDriver has been updated to version 4. This breaks compatibility with existing setups because new attributes have been added and some old have been removed.

Version 4 includes some improvements to the underlying RBF calculation and has new and more common attributes found in other solvers. This means that the RBF interpolation type and radius control is more flexible to suit various needs.

When comparing with the previous version of the weightDriver node the results can slightly differ and adjustments may be necessary.

All files of the toolset are combined as a module. This allows for an easy installation and keeps all necessary files in one location.

To install unzip the download and drag the provided dragDropInstaller.py in the main Maya window. Depending on the type of chosen installation all files will be created and placed automatically. Also a log file will be created documenting the installation.

If you need help during the installation see the included installation guide which can also be opened from the installer window.

After the installation restart Maya. Load the weightDriver plug-in from the plug-in manager.

weightDriverEditRBF

This command automatically loads the plug-in and opens the Weight Driver Editor

createNode weightDriver

Creates a new weightDriver node manually.

In order to make the node work correctly you need to establish two connections.

The first tells the node the reference point for the vector calculation and is usually the transform node of the weightDriver shape node. The second connection comes from the node which serves as the target point for the vector, such as a locator, joint or other node.

  • connect the weightDriver transform node worldMatrix to the weightDriverShape readerMatrix
    (depending on the editor you use you might have to display hidden attributes in oder to see the reader and driver inputs)
  • create a locator and connect the locator transform node worldMatrix attribute to the weightDriverShape driverMatrix
  • with both connections established the weightDriver node now displays the driver name and weight, which is the outWeight attribute you can now connect to any attribute you want to drive, for example a blend shape channel.

For an explanation of all weightDriver attributes please refer to the SHAPES User Guide.

In most cases using the designated editor to create or edit a RBF setup is sufficient and the preferred way.
However, in some cases it might be necessary to manually setup the weightDriver in RBF mode.
In general, the following should be considered:

  • Rest Poses

Rest poses, if needed, should come first in the post list.

The reason for this is that Maya stores sparse arrays for it’s attributes, which means that if an
array attribute contains a zero, it won’t get stored in the file. Rest poses often have many zeros
and thus aren’t stored correctly. This can cause false RBF behavior when loading a scene file.
If a pose, with zero values for the input and pose values is placed at the end of the pose list
the weight driver is unable to tell how many poses there are when loading a scene file.

  • Successive Pose IDs

When connecting attributes manually without the Weight Driver Editor all connections should
be made in successive order, starting at index 0. Indices should not be skipped.
When using the editor, this is not an issue, because even if poses get deleted the resulting setup
will always have the poses in successive order.

Again, this has to do with Maya’s sparse arrays. Manually skipping one or more indices can lead
to a false RBF behavior.