poseDeformer - Pose Space Deformer Maya Plugin by Michael B. Comet Copyright ©2004,2005 Michael B. Comet This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA For information on poseDeformer contact: Michael B. Comet - [email protected] or visit http://www.comet-cartooons.com/toons/
DESCRIPTION:
This plug-in provides a new deformer that lets you do pose space deformation in Maya. It works in conjunction with the poseReader plug-in also provided. This is similar but not quite the same as using blendshapes.
The main differences between this and regular blendShapes:
Since the deformer must store data in a pose space, the basic MEL script setup requires Maya Skin to be applied to the geometry first, so it can read what joints are used on the geometry. Also because data is stored as offsets, and because it is in pose space, calculation for generating a target is slower than a blendshape, and when it is done the target is deleted. However you can alwawys go back to a pose, and then edit the shape easily with the UI again at a later time to make tweaks. Finally, the poseReader node is used to drive the weight of each pose target automatically as the joint(s) moves into the pose.
REQUIREMENTS:
This recompiled plugin requires a Windows version of Maya 6.0. Source code is also provided for other platforms.
INSTALL:
USAGE:
ADVANCED TIPS:
In addition this can also be useful if you want to use different poseDeformers for various levels of detail on your object. For example if it is a poly object, you can skin it and set up some poseDeformer targets. Then you could apply a polySmooth node to make it higher res. Then you could add a second new poseDeformer on top of that, and then sculpt and create even newer higher res pose targets with that deformer for things like wrinkles and so on.
With normalize, any poseReader weights that overlap and are greater than one are normalized back to one. For example if you have 3 poses overlapped and the output weights then become 0.5, 0.8, 0.4 (which total 1.7 ) then if set to normalize mode, the deformer will work as if the actual weights were instead set to 0.29, 0.47, 0.23 (which totals 1).
Because it will simply look at ALL input pose weights, this method would require you to use separte poseDeformer nodes for each section of the body. For example if you did not, then if a pose for the leg was at 1.0 and a pose for the arm was also at 1.0, the deformer would simply normalize both to 0.5 and you would not end up getting a full pose for either even though technically they aren't overalapping.
The Preferred mode is "RBF-LUFactorize". This is similar to normalize, but internally uses matrix math to properly drive up the closest pose and only blends in poses within a certain range of the current one. This makes the normalization much much more accurate and effective. The "avgPoseSepRBF" controls how close other poses have to be to blend in together. A small value means the poses will pop from one to another, larger values will be smoother, but too large means if you are on an exact pose, there is still a chance other ones will also be normalized in.
The best technique is to set up your poses, you can even set the cone angles to full 180 degrees max if desired. Then set the RBF width just high enough to the point where you get smooth interpolation. Another trick with this is as a first first step, create a "pose" that is in the default shape with no point changes, and no joint motion. This way when you are back at the rest state, there is something there that the deformer can blend to that is actually the default pose.
Note that once again since the RBF method is similar to the normalize mode, you will still need separate deformers for each part of the body.
If you are looking for more help, you can also check out a very nice page Matt Estela
put together at:
http://www.tokeru.com/twiki/bin/view/Main/MayaRigging