v1.0
Removes deformers from an envelope. Every point in an envelope
is assigned to one or more deformers. For each point, weights
control the relative influence of its deformers.
Deformers are the objects that control the shape of the envelope.
You pick the deformers when you first create an envelope
deformation, but you can still add and remove deformers later if
necessary.
Although it is common to use skeletons as deformers, you can
actually use any object. The geometry of a deformer does not matter
because the points of the envelope are assigned to its center.
(Bones are the exception--points are deformed by the whole length
of a bone.)
Whether you use a cube, a sphere, or a null, all transformations of
the surrounding envelope are relative in size, orientation, and
position to the deformer's center, not its shape. Nulls and
implicit objects are good choices because they do not render.
RemoveFlexEnvDeformer( [ConnectionSet], [Interactive] ); |
Parameter | Type | Description |
---|---|---|
ConnectionSet | ConnectionSet | Specifies the envelope and the deformer objects to remove.
Default Value:
Currently selected objects are used as the main group. |
Interactive | Boolean | True to prompt user to pick objects.
Default Value: False |
'This example builds an envelope made of 2 skeleton objects on a sphere 'and a cylinder. Then, it removes individual deformers from the cylinder, 'and all envelope components from the shere. ' 'The deformers removed from the cylinder are outputted in the log. NewScene Set Sphere = CreatePrim("Sphere", "MeshSurface") Set Cylinder = CreatePrim("Cylinder", "MeshSurface") SetValue Cylinder & ".polymsh.geom.subdivu", 16 SetValue Cylinder & ".polymsh.geom.subdivv", 16 SetValue Cylinder & ".cylinder.height", 7.325 Create2DSkeleton 0.1, 0.7, 0, 0, 3.6, 0, 0, 0, 0, 4 Create2DSkeleton 0.0, -0.3, 0, -0.2, -3.6, 0, 0, 0, 0, 4 ApplyFlexEnv Sphere & "," & Cylinder & ";bone1,bone", False Translate "eff", 2.5, -2.0, 0, siRelative, siView, siObj, siXYZ Translate "eff1", 3.7, 1.8, 0, siRelative, siView, siObj, siXYZ SelectDeformersFromEnvelope Cylinder Set Bones = SIFilter(, "Chain_Element") 'Remove 1 by 1 all deformers of the cylinder. 'However, the envelope and the envelope weight property remain. For i = 0 to Bones.Count - 1 logmessage "Removing " & Bones(i) & " from the deformers of " & Cylinder RemoveFlexEnvDeformer Cylinder & ";" & Bones(i) next 'Call RemoveFlexEnv: removes deformers of the sphere. 'The envelope and the envelope weight property are removed too. RemoveFlexEnv Sphere 'This example outputs the following: ' 'INFO : "Removing bone1 from the deformers of cylinder" 'INFO : "Removing bone from the deformers of cylinder" 'INFO : "Removing eff1 from the deformers of cylinder" 'INFO : "Removing eff from the deformers of cylinder" |