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