v5.0
Copies the shape and envelope animation from the generator
operator inputs to the generated object. This includes the
installation of the envelope and shape combiner operators on the
generated primitive, and the copy of shape animation (tracks and
clips).
If the generator is connected over the modeling marker, it will be
reconnected automatically in modeling construction mode.
If none of the input primitives' envelope weight properties and
shape key properties were transfered before the command was
executed, the command will automatically transfer them all before
copying the animation. However, if only some of input primitives'
envelope weight properties or shape key properties were transfered
before the command was executed, then the decision to transfer or
not the remaining ones will depend on the
TransferRemainingShapesAndEnvelopes argument.
CopyAnimationAcrossGenerator( Operator, [ReadPosition], [TransferRemainingShapesAndEnvelopes] ); |
Parameter | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Operator | String | Specifies the generator operator to modify | ||||||||
ReadPosition | siConstructionMode | Specifies which construction stack to read from.
Default Value: siConstructionModeModeling |
||||||||
TransferRemainingShapesAndEnvelopes | Integer | What to do with any transfered shapes and/or envelope weight
properties when the command will reconnect the generator over the
primary shape/animation construction mode. It is usually preferred
to undo these transfers, since otherwise there could be a double
deformation (the envelope is applied to the input and the generated
object).
Default Value: 2
|
/* This example creates 2 spheres with animation (shapes and envelopes), merges them and manually transfers only one of the envelopes. Then, using CopyAnimationAcrossGenerator, it copies the animation with TransferRemainingShapesAndEnvelopes = 1, and then TransferRemainingShapesAndEnvelopes = 0. */ NewScene(null, null); //Create an enveloped sphere that has an applied shape key Sphere1 = CreatePrim("Sphere", "MeshSurface", null, null); NullPrim1 = GetPrim("Null", null, null, null); SetSelFilter("Vertex"); SelectGeometryComponents("sphere.pnt[44-50]"); Translate(null, 0, 0, -4.83347471775276, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 1); StoreShapeKey("sphere.pnt[44-50]", "", siShapeObjectReferenceMode, 1, 0, 0, siShapeContentPrimaryShape); ApplyFlexEnv(Sphere1 + ";" + NullPrim1, false, 2); SelectObj(NullPrim1, null, true); Translate(null, -3.20599401067148, 0, 0, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 0); //Create a second enveloped sphere Sphere2 = CreatePrim("Sphere", "MeshSurface", null, null); NullPrim2 = GetPrim("Null", null, null, null); ApplyFlexEnv(Sphere2 + ";" + NullPrim2, false, 2); SelectObj(NullPrim2, null, null); Translate(null, 6.77561899920499, 0, -1.00435838290967, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 2); //Generate a new object from the merge of the two spheres SetValue("Context.constructionmode", 0, null); ApplyGenOp("MeshMerge", "", Sphere1 + "," + Sphere2, 3, siPersistentOperation, siKeepGenOpInputs, null); Translate(null, 5.54342092599887, 0, 8.39090426346892, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 2); //Transfer manually only one of the envelope weight props of the input spheres TransferClusterPropertiesAcrossGenOp("polymsh.polymsh.mergemesh", "polymsh", "sphere.polymsh.cls.EnvelopWeightCls.Envelope_Weights", "Envelope_Weights", true); //Copy the animation without transfering the envelope weight props that were not transfered CopyAnimationAcrossGenerator("polymsh.polymsh.mergemesh", 0, 1 /*don't transfer remaining envelopes*/); //Copy the animation and transfer the envelope weight props that were not transfered CopyAnimationAcrossGenerator("polymsh.polymsh.mergemesh", 0, 0 /*transfer remaining envelopes*/); |
TransferPropertiesAcrossGenOp TransferPropertiesAcrossGenOp TransferClusterPropertiesAcrossGenOp TransferAllPropertiesAcrossGenOp