class MFnBlendShapeDeformer

Jump to documentation

: public MFnDependencyNode blend shape deformer function set (OpenMayaAnim) (OpenMayaAnim.py)

Inheritance:

MFnBlendShapeDeformer < MFnDependencyNode < MFnBase

public members:

MFnBlendShapeDeformer ()
MFnBlendShapeDeformer ( MObject & object, MStatus * ReturnStatus = NULL )
virtual ~MFnBlendShapeDeformer ()
virtual MFn::Type type () const
enum Origin
kLocalOrigin
kWorldOrigin
enum HistoryLocation
kFrontOfChain
kNormal
MObject create ( MObject baseObject, Origin originSpace = kLocalOrigin , MStatus * ReturnStatus = NULL )
MObject create ( const MObjectArray & baseObjects, Origin originSpace = kLocalOrigin , HistoryLocation = kNormal , MStatus * ReturnStatus = NULL )
MStatus addBaseObject ( MObject & object )
MStatus getBaseObjects ( MObjectArray & objects ) const
MStatus addTarget ( const MObject & baseObject, int weightIndex, const MObject & newTarget, double fullWeight )
MStatus removeTarget ( const MObject & baseObject, int weightIndex, const MObject & target, double fullWeight )
MStatus getTargets ( MObject baseObject, int weightIndex, MObjectArray & targetObjects ) const
unsigned int numWeights ( MStatus * ReturnStatus = NULL ) const
MStatus weightIndexList ( MIntArray & indexList ) const
MStatus targetItemIndexList ( unsigned int targetIndex, MObject baseObject, MIntArray & inbetweens ) const
float weight ( unsigned int index, MStatus * ReturnStatus = NULL ) const
MStatus setWeight ( unsigned int index, float weight )
float envelope ( MStatus * ReturnStatus = NULL ) const
MStatus setEnvelope ( float envelope )
Origin origin ( MStatus * ReturnStatus = NULL ) const
MStatus setOrigin ( Origin space )
MFnBlendShapeDeformer ( const MObject & object, MStatus * ReturnStatus = NULL )

Inherited from MFnDependencyNode:

public members:

virtual MFn::Type type () const
enum MAttrClass
kGlobalDynamicAttr
kLocalDynamicAttr
MObject create ( const MTypeId & typeId , MStatus * ReturnStatus = NULL )
MObject create ( const MTypeId & typeId , const MString & name , MStatus * ReturnStatus = NULL )
MObject create ( const MString & type , MStatus * ReturnStatus = NULL )
MObject create ( const MString & type , const MString & name , MStatus * ReturnStatus = NULL )
MTypeId typeId ( MStatus * ReturnStatus = NULL ) const
MString typeName ( MStatus * ReturnStatus = NULL ) const
MString name ( MStatus * ReturnStatus = NULL ) const
MString setName ( const MString & name , MStatus * ReturnStatus = NULL )
MStatus getConnections ( MPlugArray & array ) const
unsigned int attributeCount ( MStatus * ReturnStatus=NULL) const
MObject attribute ( unsigned int index, MStatus * ReturnStatus=NULL) const
MObject reorderedAttribute ( unsigned int index, MStatus * ReturnStatus=NULL) const
MObject attribute ( const MString & attrName, MStatus * ReturnStatus=NULL) const
MAttrClass attributeClass ( const MObject & attr, MStatus * ReturnStatus=NULL) const
MStatus getAffectedAttributes ( const MObject & attr, MObjectArray & affectedAttributes ) const
MStatus getAffectedByAttributes ( const MObject & attr, MObjectArray & affectedByAttributes ) const
MPlug findPlug ( const MObject & attr, bool wantNetworkedPlug, MStatus * ReturnStatus=NULL) const
MPlug findPlug ( const MString & attrName, bool wantNetworkedPlug, MStatus * ReturnStatus=NULL) const
MPlug findPlug ( const MObject & attr, MStatus * ReturnStatus=NULL) const
MPlug findPlug ( const MString & attrName, MStatus * ReturnStatus=NULL) const
MStatus addAttribute ( const MObject & attr, MAttrClass type = kLocalDynamicAttr )
MStatus removeAttribute ( const MObject & attr, MAttrClass type = kLocalDynamicAttr )
MPxNode * userNode ( MStatus * ReturnStatus=NULL ) const
bool isFromReferencedFile ( MStatus * ReturnStatus=NULL) const
bool isShared ( MStatus * ReturnStatus=NULL) const
bool hasUniqueName ( MStatus * ReturnStatus=NULL) const
MString parentNamespace ( MStatus * ReturnStatus=NULL) const
bool isLocked ( MStatus * ReturnStatus=NULL) const
MStatus setLocked ( bool locked )
static MString classification ( const MString & nodeTypeName )
bool isNewAttribute ( const MObject & attr, MStatus * ReturnStatus=NULL) const
static unsigned int allocateFlag ( const MString pluginName, MStatus * ReturnStatus=NULL )
static MStatus deallocateFlag (const MString pluginName, unsigned int flag)
static MStatus deallocateAllFlags (const MString pluginName)
MStatus setFlag (unsigned int flag, bool state)
bool isFlagSet (unsigned int flag, MStatus * ReturnStatus=NULL) const
bool isDefaultNode ( MStatus * ReturnStatus=NULL) const
MStatus setDoNotWrite ( bool flag )
bool canBeWritten ( MStatus * ReturnStatus=NULL) const
bool hasAttribute (const MString & name , MStatus * ReturnStatus=NULL) const
MObject getAliasAttr (bool force, MStatus * ReturnStatus=NULL)
bool setAlias (const MString & alias,const MString & name , const MPlug & plug, bool add=true, MStatus * ReturnStatus=NULL)
bool findAlias (const MString & alias, MObject & attrObj, MStatus * ReturnStatus=NULL) const
bool getAliasList ( MStringArray & strArray, MStatus * ReturnStatus=NULL)
MString plugsAlias (const MPlug & plug, MStatus * ReturnStatus=NULL)
public
bool getPlugsAlias (const MPlug & plug, MString & aliasName, MStatus * ReturnStatus=NULL)

Inherited from MFnBase:

public members:

virtual MFn::Type type () const
bool hasObj ( MFn::Type ) const
bool hasObj ( const MObject & ) const
MObject object ( MStatus * ReturnStatus = NULL ) const
virtual MStatus setObject ( MObject & object )
virtual MStatus setObject ( const MObject & object )

Documentation

Function set for blend shape deformer
Description

MFnBlendShapeDeformer is the function set for blend shape deformers. A blend shape deformer takes a base shape (polygonal surface, curve, surface, or lattice) and blends it with other target shapes based on weight values.

The blend shape deformer is actually a small network of dependency nodes in the dependency graph. This function set is provided to make manipulation of the network easier. The main deformer node should be given to this function set as its object.

There are three parts to a blend shape deformer. There are the base objects, the target objects, and the weight values.

The base objects are the shapes that are to be deformed. There must be at least one base object. The base objects will change form as the targets and deformation parameters are modified.

Each base object has a list of target objects that affect its shape. Each target is associated with one of the the deformer's weight values. When the weight value increases, the target has more influence on the base shape.

There is just one array of weight values between all of the base objects and targets. So, it is possible for targets of different base objects to share the same weight index. When the weight value changes, it will affect all of the base objects that have targets using that weight value.

It is also possible to chain together target shapes so that a base object will deform through each shape one at a time as the weight value increases. This is done by adding multiple targets to a base shape using the same weight index for all of them. When each target is added, a weight value is specified at which that target will be in full effect. Give each target a different full weight value.

For example, one could take a sphere and make it blend into a cone and then into a cylinder. One way to do this is to make sphere the base shape. Then, add the cone as a target for the sphere at weight index 0 with a full effect weight of 0.5. Next, add the cylinder as a second target for the sphere also at weight index 0, but with a full effect weight of 1.0. Now, as the weight goes from 0 to 1, the base shape will start as a sphere, morph into a cone, and then into a cylinder.

It is not necessary for the base shape and its targets to have identical vertex/CV counts, but the blend will be more effective if they do.

Functions

MFnBlendShapeDeformer:: MFnBlendShapeDeformer ()

Description

Default class constructor. The function set is not attached to an MObject.

MFnBlendShapeDeformer:: MFnBlendShapeDeformer ( MObject & object, MStatus * ReturnStatus )

Description

Class constructor that initializes the function set to the given MObject.

Arguments

  • object the MObject to attach the function set to
  • ReturnStatus the return status
    • MS::kSuccess if the function set is successfully attached
    • MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject

MFnBlendShapeDeformer:: MFnBlendShapeDeformer ( const MObject & object, MStatus * ReturnStatus )

Description

Class constructor that initializes the function set to the given constant MObject.

Arguments

  • object the const MObject to attach the function set to
  • ReturnStatus the return status
    • MS::kSuccess if the function set is successfully attached
    • MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject

MFnBlendShapeDeformer:: ~MFnBlendShapeDeformer ()

Description

The class destructor.

MFn::Type MFnBlendShapeDeformer:: type () const

Description

Return the type of this function set.

Return Value

  • the constant MFn::kBlendShape

MObject MFnBlendShapeDeformer:: create ( MObject baseObject, Origin originSpace, MStatus * ReturnStatus )
Description

Creates a new blend shape deformer in the dependency graph with the specified shape as the baseObject.

Arguments

  • baseObject a base object for the deformer
  • originSpace origin about which to deform
  • ReturnStatus return status

Return Value

  • a handle to the new deformer

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object is null or is not of the correct type
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kInsufficientMemory out of memory
  • MS::kFailure unexpected failure

MObject MFnBlendShapeDeformer:: create ( const MObjectArray & baseObjects, Origin originSpace, HistoryLocation historyLoc, MStatus * ReturnStatus )
Description

Creates a new blend shape deformer in the dependency graph. This method differs from the other MFnBlendShapeDeformer::create in that it allows multiple base shapes to be supplied at create time and it allows the use of the front-of-chain history location, which puts the blendShape ahead of other deformers such as skinning deformers.

Arguments

  • baseObjects base object(s) for the deformer
  • originSpace origin about which to deform
  • historyLoc where in the shape's history to place the deformer
  • ReturnStatus return status

Return Value

  • a handle to the new deformer

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object is not of the correct type
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kInsufficientMemory out of memory
  • MS::kFailure unexpected failure

MStatus MFnBlendShapeDeformer:: addBaseObject ( MObject & object )
Description

Adds a new base object to the deformer. This object will be deformed as targets are added for it and the deformation parameters change.

Arguments

  • object new base object

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object is null or is not of the correct type
  • MS::kInsufficientMemory out of memory
  • MS::kFailure this function set does not have a valid attribute object

MStatus MFnBlendShapeDeformer:: getBaseObjects ( MObjectArray & objects ) const
Description

Get a list of all of the base objects for this deformer. The objects returned will be the deformed versions of the base objects.

Arguments

  • objects storage for the array of base objects

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object is null or is not of the correct type
  • MS::kInsufficientMemory out of memory
  • MS::kFailure this function set does not have a valid attribute object

MStatus MFnBlendShapeDeformer:: addTarget ( const MObject & baseObject, int weightIndex, const MObject & newTarget, double fullWeight )
Description

Adds a new target object for the given base object. The weight index says which of the deformer's weight values will control this target's affects on the base object. The full weight argument determines at what weight the target is in full effect. If a base object has no other targets and the weight is set to the 'full weight', then the base object will look just like the target object.

Arguments

  • baseObject base object for the target
  • weightIndex weight index to use for target's effect
  • newTarget new target object for the given base
  • fullWeight weight value at which the target is in full effect

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object or target object is null or is not of the correct type
  • MS::kInsufficientMemory out of memory
  • MS::kFailure this function set does not have a valid attribute object

MStatus MFnBlendShapeDeformer:: removeTarget ( const MObject & baseObject, int weightIndex, const MObject & target, double fullWeight )
Description

Remove a target object for the given base object. The weight index specifies the index at which target is connected. The full weight argument specifies at what weight the target is in full effect.

Arguments

  • baseObject base object for the target
  • weightIndex weight index corresponding to the target
  • target target object for the given base to be removed
  • fullWeight weight value at which the target is in full effect

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object or target object is null or is not of the correct type
  • MS::kInsufficientMemory out of memory
  • MS::kFailure this function set does not have a valid attribute object

MStatus MFnBlendShapeDeformer:: getTargets ( MObject baseObject, int weightIndex, MObjectArray & targetObjects ) const
Description

Get a list of all of the target objects for the given base object that affect it based on the given weight index.

Arguments

  • baseObject The base shape of interest.
  • weightIndex The index of the weight attribute. Since the weight indices may be sparse, the weightIndexList method should be used to find the weight indices used by a given blendShape.
  • targetObjects Storage for the returned array of target objects.

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter base object is null or is not of the correct type, or the weightIndex is invalid.
  • MS::kInsufficientMemory out of memory
  • MS::kFailure this function set does not have a valid attribute object

unsigned int MFnBlendShapeDeformer:: numWeights ( MStatus * ReturnStatus ) const
Description

Return the number of weight values that this blend shape deformer has. The number of weight values is equal to the number of targets. Targets are either shapes in the dag or baked data on the blendShape node (when a target shape is deleted).

Arguments

  • ReturnStatus return status

Return Value

  • the number of weight indices

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MStatus MFnBlendShapeDeformer:: weightIndexList ( MIntArray & indexList ) const
Description

Return the array index numbers corresponding to the targets. The resulting index list will be the length of MFnBlendShape::numWeights. This method exists because the indices of the targets can be sparse. For example, if a target has been removed using Deform -> Edit BlendShape -> Remove.

Arguments

  • indexList the array index numbers for the blendShape targets

Return Value

  • the return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MStatus MFnBlendShapeDeformer:: targetItemIndexList ( unsigned int targetIndex, MObject baseObject, MIntArray & inbetweens ) const
Description

Return the "inputTargetItem" array indices for the specified target. The "inputTargetItem" array indices correspond to the weight where the targets take affect according to the formula: index = wt * 1000 + 5000. For example, if you have only a single target, and no in-betweens, the index will typically be 6000 since the default weight for the initial target is 1.0.

Arguments

  • inbetweenIndexList array index values of the inbetweens

Return Value

  • ReturnStatus return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object
  • MS::kInvalidIndex no target exists at the specified target index

float MFnBlendShapeDeformer:: weight ( unsigned int index, MStatus * ReturnStatus ) const
Description

Get the weight value at the given index. To be valid, a weight value should only be requested at index values returned by MFnBlendShapeDeformer::weightIndexList.

Arguments

  • index index of weight value
  • ReturnStatus return status

Return Value

  • the weight value

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter the weightIndex is invalid.
  • MS::kFailure function set does not have a valid object

MStatus MFnBlendShapeDeformer:: setWeight ( unsigned int index, float weight )
Description

Set the weight value at the given index.

Arguments

  • index index of weight value
  • weight new weight value

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter the weightIndex is invalid.
  • MS::kFailure function set does not have a valid object

float MFnBlendShapeDeformer:: envelope ( MStatus * ReturnStatus ) const
Description

Gets the envelope value of the deformer.

The envelope is a global scale factor that is applied to all of the weight values in the deformer. The envelope can be used increase or decrease the effects of all of the targets at the same time.

Arguments

  • index return status

Return Value

  • envelope value

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MStatus MFnBlendShapeDeformer:: setEnvelope ( float envelope )
Description

Sets the envelope value of the deformer.

The envelope is a global scale factor that is applied to all of the weight values in the deformer. The envelope can be used increase or decrease the effects of all of the targets at the same time.

Arguments

  • envelope envelope value

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MFnBlendShapeDeformer::Origin MFnBlendShapeDeformer:: origin ( MStatus * ReturnStatus ) const
Description

Gets the origin space. It defines the point around which the differences in the geometry are calculated.

Arguments

  • ReturnStatus return status

Return Value

  • the origin space

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MStatus MFnBlendShapeDeformer:: setOrigin ( Origin space )
Description

Sets the origin space. It defines the point around which the differences in the geometry are calculated.

Arguments

  • space origin space

Return Value

  • the origin space

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MPoint MFnBlendShapeDeformer:: userOrigin ( MStatus * ReturnStatus ) const
Description

Gets the user defined origin point. This point is only used if the origin is set to kUserOrigin.

Arguments

  • ReturnStatus return status

Return Value

  • user defined origin point

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

MStatus MFnBlendShapeDeformer:: setUserOrigin ( MPoint origin )
Description

Sets the user defined origin point. This point is only used if the origin is set to kUserOrigin.

Arguments

  • origin origin point

Return Value

  • return status

Status Codes

  • MS::kSuccess operation successful
  • MS::kFailure function set does not have a valid object

This class has no child classes.


Autodesk® Maya® 2008 © 1997-2007 Autodesk, Inc. All rights reserved. doc++ Copyright