Plots the shapes for objects with shape animations.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:

For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.

For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

Scripting Syntax

PlotShape( [InputObj], [Name], [StartFrame], [EndFrame], [StepFrame], [ApplyKeys], [Mode], [Content], [RefMode], [SingleSource], [KeyList], [ClipList] );


Parameter Type Description
InputObj String List of objects whose shapes are plotted.

Default Value: Current Selection

Name String Prefix for shape source names.
StartFrame Double First frame to plot
EndFrame Double Last frame to plot
StepFrame Double Step between each keys
ApplyKeys Boolean True to apply the plotted keys to the object
Mode siShapeInstanceMode Determines how the shape is to be instantiated.

Default Value: siShapeBlendedWeightMode

Content siShapeContent Determines which deformations should get stored in the shape.

Default Value: siShapeContentUseConstructionMode

RefMode siShapeReferenceMode The reference mode of the shape key created

Default Value: siShapeLocalReferenceMode

SingleSource Boolean If true, the deformation will be stored into a single shape source.

Default Value: True

KeyList XSICollection List of created shape keys
ClipList XSICollection List of created shape clips


VBScript Example

' This example creates an animated deformation (twist on a torus).
' Then, it replaces the animation by 4 shapes, placed at regular
' intervals. The twist op is completely replaced by shapes,
' with a similar result.
' The shapes created by the plotting operation are written to the log.
' Set up a twist deformation on a torus
NewScene , false
CreatePrim "Torus", "MeshSurface"
SetValue "torus.polymsh.geom.subdivu", 24
SetValue "torus.polymsh.geom.subdivu", 40
SetValue "torus.polymsh.geom.subdivv", 24
ApplyOp "Twist", "torus", 3, siPersistentOperation
SaveKey "torus.polymsh.twistop.angle", 1, 90
SetValue "PlayControl.Key", 50
SetValue "PlayControl.Current", 50
SetValue "torus.polymsh.twistop.angle", -90
SaveKey "torus.polymsh.twistop.angle", 50, -90
SetValue "PlayControl.Current", 1
' Plot the animation in shapes, from frame 0 to 50, in steps of 10 frames
Dim CreatedClips, CreatedShapes
PlotShape "torus", "twisted", 1, 50, 10, True, siShapeMixedWeightMode, siShapeContentAllDeforms, _ 
        siShapeAbsoluteReferenceMode, false, CreatedShapes, CreatedClips
' We can now delete the twist, and we will still have a similar result from the 5 shapes
DeleteObj "torus.polymsh.twistop"
for i = 0 to CreatedClips.Count-1
        Application.LogMessage "Created shape: " & CreatedShapes(i)
'This example outputs the following information to the Script Editor in Softimage: 
''INFO : Created shape: torus.polymsh.cls.twisted.twisted1
'INFO : Created shape: torus.polymsh.cls.twisted.twisted2
'INFO : Created shape: torus.polymsh.cls.twisted.twisted3
'INFO : Created shape: torus.polymsh.cls.twisted.twisted4
'INFO : Created shape: torus.polymsh.cls.twisted.twisted5