envelope > Select deformer from envelope?
On Mon, Dec 17, 2012 at 10:26 PM, Matt Lind <[email protected]>wrote: > We are trying to upgrade from Softimage 7.5 to Softimage 2013 SP1 and ran > into a speed bump during testing.**** > > ** ** > > Our workflow for character work is to create a master character rig which > contains the skeleton and body (flesh) geometry. We use separate models > for clothing and other accessories which the character needs to wear. This > means the clothing geometry is enveloped to deformers in the master > character rig. When a clothing model is imported into a scene, if the > deformers are present (e.g. master character rig is in the scene) they > activate and deform as expected. If the deformers are not present, then > the geometry sits still in the default rest pose as if no envelope existed. > This workflow has been working for the past 5 years.**** > > ** ** > > When these scenes and models are imported into Softimage 2013 SP1, the > envelopes stop working, and sometimes Softimage crashes. When clothing > geometry is inspected in the weights editor, the deformer names are > displayed as “invalid”.**** > > ** ** > > Digging into the SDK I got some basics. For each enveloped piece of > clothing geometry:**** > > ** ** > > X3DObject.Envelopes(0) returns valid envelope**** > > Envelope.Weights.Array returns valid envelope weight data.**** > > Envelope.Deformers throws ‘invalid pointer’ error, or returns an empty > collection of deformers.**** > > ** ** > > In essence, I have the weight values and the number of deformers in the > envelope, but not the names of the deformers mapped to the weight values. > I need the deformer names.**** > > ** ** > > I have worked around the problem in Softimage 7.5 by using > Envelope.GetDeformerWeights( SceneObject ) and testing with every object in > the scene. I record each object which does not throw an error as well as > the returned deformer weight data. The end result is a collection of > deformers and envelope data to rebuild the envelope. I remove the original > envelope and replace it with a new one using the accumulated data. Works > well.**** > > ** ** > > When I try this technique in Softimage 2013 SP1, > Envelope.GetDeformerWeights() throws an ‘invalid argument specified’ error > on every object in the scene – including the true deformers of the envelope > (in controlled tests).**** > > ** ** > > How can I determine which deformers an envelope is looking for so the > envelope can be rebuilt?**** > > ** ** > > Matt**** > > ** ** > > ** ** > > ** ** >

