Hi All!

Thanks for the responses.  These are great ideas, but not what I am
looking for.  There are a number of ways to get this effect done, and
in fact, I already had 2 different ones before posting - what I really
*want*, isn't a way to get it done, so much as to learn specifically
how to use this line:

outFnMesh.setPoints( outPoints, om.MSpace.kWorld )

So that it doesn't give me this:

// Error: (kInvalidParameter): Must have a DAG path to do world space
transforms


By accepting a "space" at all, it just seems like there is probably a
way already built in to MFnMesh.setPoints to do this that doesn't
involved manually math-ing away the destination world matrix.  Right?





On Jun 12, 11:45 pm, Nicolas Combecave <zezebubulon...@gmail.com>
wrote:
> Hello Jason,
>
> I don't know if you need to implement your own deformer for that, or if it's
> part of something more complex, but I think that the effect you're after is
> like what a blendShape does, with attribute "origin" is set to world...
>
> Nicolas
>
> On Sat, Jun 13, 2009 at 8:21 AM, Paul Molodowitch <elron...@gmail.com>wrote:
>
>
>
> > I suspect that you would have to have the worldMatrix fed in as an
> > additional input attribute.
>
> > The basic problem, though, is that 'worldSpace' is always relative,
> > and I'm not sure what you want it relative to.  Since it seems like
> > you want this shape "echoed" in multiple spots in the dagTree, each
> > eventual "output" destination in the dag would have to feed this node
> > it's world matrix (or, more likely, it's inverse world matrix) into
> > some sort of 'destinationWorldMatrices' multi attribute, and then read
> > out the shape node from a corresponding plug in a 'outputShapes' multi
> > plug.
>
> > If this doesn't make sense, I can offer a fuller description...
>
> > - Paul
>
> > On Fri, Jun 12, 2009 at 3:20 PM, jasonosipa<jason.os...@gmail.com> wrote:
>
> > > Hi guys!
>
> > > I'm trying to push the global vert positions of one mesh to that of
> > > another.  Essentially, no matter what I do with either transform, I
> > > want the shape on the second to always look exactly the same as that
> > > of the first (in world space).  That's it.  Another way to describe it
> > > would be to say - I just want the two objects to be the same, all the
> > > time.  I'm getting stumped though, in that it seems I need a dag path
> > > for world space output, and I'm not sure how to get that given the
> > > inputs/outputs I'm working with.  Any ideas?  Thanks in advance! -J.
>
> > > class noMovey( omMPx.MPxNode ):
>
> > >  aInShape  = om.MObject()
> > >  aOutShape = om.MObject()
>
> > >  def __init__ ( self ) :
> > >    omMPx.MPxNode.__init__( self )
>
> > >  def compute( self, plug, data ):
>
> > >    inMesh    = data.inputValue( noMovey.aInShape ).asMesh()
> > >    inFnMesh  = om.MFnMesh( inMesh )
> > >    ins       = om.MPointArray()
> > >    inFnMesh.getPoints( ins, om.MSpace.kWorld )
>
> > >    outPoints = om.MPointArray( ins )
>
> > >    outFnMeshData = om.MFnMeshData()
> > >    outMeshData   = outFnMeshData.create()
> > >    outFnMesh     = om.MFnMesh()
> > >    outFnMesh.copy( inMesh, outMeshData )
>
> > >    outFnMesh.setPoints( outPoints, om.MSpace.kWorld )  # Maya no
> > > likey
>
> > >    data.outputValue( noMovey.aOutShape ).setMObject( outMeshData )
> > >    data.setClean( noMovey.aOutShape )
>
>
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/python_inside_maya
-~----------~----~----~----~------~----~------~--~---

Reply via email to