Here on a simple scene it works ok...(cylinder enveloped to a 2-bone chain)
logmessage (selection(0).envelopes(0).deformers.getAsText()) // INFO : cylinder,bone,bone1,eff funny thing is the cylinder itself got logged, also the effector that was not picked as deformer. 2012/12/18 Adam Sale <[email protected]> > 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**** >> >> ** ** >> >> ** ** >> >> ** ** >> > >

