yep yep. There's actually an MfnBlendshapeDeformer class that I can
use to set the values between 0 and 1. But I'm not finding one to
effect the individual weights of the components. It should be possible
considering you can paint the weights and edit them in the component
editor. I would imagine they added some way to do this  through API,
but maybe not. I might have to do this the old fashion way.

Brandon L. Harris

On Jan 26, 12:28 pm, Adam Mechtley <[email protected]> wrote:
> Oh woops; I'm sorry you were asking about individual vertices—this is just
> for the weight of the whole shape
>
> On Tue, Jan 26, 2010 at 12:27 PM, Adam Mechtley 
> <[email protected]>wrote:
>
> > This was an example from an Autodesk training course I attended, so I
> > presume it's the "best" way to do it
>
> > blendShapeNode = OM.MObject()
> > selList = OM.MSelectionList()
>
> > try:
> >     # Get the selected blendShape node
> >     OM.MGlobal.getActiveSelectionList(selList)
>
> >     if(selList.length() !=0 ):
> >         selList.getDependNode(0,blendShapeNode)
>
> >         fnDep = OM.MFnDependencyNode(blendShapeNode)
>
> >         # Verify that the node is a Blend Shape
> >         if (blendShapeNode.apiType() == OM.MFn.kBlendShape ):
> >             attrName = "weight";
> >             weightArrayPlug = fnDep.findPlug(attrName)
>
> >             # Find out if this plug is a multi plug
> >             if(weightArrayPlug.isArray()):
> >                 # Get the name of the plug and print it
> >                 plugName = weightArrayPlug.name()
> >                 print("Plug %s is an array plug." % plugName)
>
> >                 # Find how many elements are in this multi plug
> >                 numberOfElem = weightArrayPlug.numElements()
> >                 print("This plug has %i elements." % numberOfElem)
>
> >                 # Traverse all the element plugs
> >                 for j in range( 0, numberOfElem ):
>
> >                     elementPlug = weightArrayPlug.elementByPhysicalIndex(j)
>
> >                     # Print out the element plug's physical index and
> > logical index
> >                     print "Physical index: %i; Logical index: %i" % (j,
> > elementPlug.logicalIndex())
>
> >                     # Print out the value in every element plug
> >                     # NOTE: There is no script support for MPlug.getValue()
> >                     valueElem = elementPlug.asDouble()
> >                     print("The value in this element plug is %f" %
> > valueElem)
> > except:
> >     print("Failed to get selection list")
> >     raise
>
> > On Tue, Jan 26, 2010 at 12:13 PM, Brandon Harris 
> > <[email protected]>wrote:
>
> >> Forgot to post. I'm meaning in API. I know how to do this in Mel.
>
> >> On Jan 26, 12:13 pm, Brandon Harris <[email protected]> wrote:
> >> > I'm still looking, but thought I would ask here, is there a way to
> >> > grab blendshape weights for individual vertices.
>
> >> --
> >>http://groups.google.com/group/python_inside_maya
>
>

-- 
http://groups.google.com/group/python_inside_maya

Reply via email to