v4.0
Creates a tail rig from a collection of guide objects, or a guide curve. A tail (light green chain)
is controlled by a set of one-bone control chains (dark green). The control chain roots (cubes) can
be manipulated for animation control of the rig, while the control chain effectors (hidden) are
connected to springs for a dyanmics effect. The number of guide objects / curve control points
determines the number of control chains, while the NbTailBones argument determines the number of
bones in the tail.
Optionally a shadow rig can be attached to the tail. Shadow objects will be created for each chain
element in the tail, and pose constrained to the tail objects. Shadow rigs can be used to plot
animation off of a rig.
oTail = MakeTail( Parent, GuideObjectCollection, [NbTailBones], [ShadowType], [ShadowParent], [CharacterSetName], [ShadowCharacterSetName] ); |
Returns a Tail JScript object.
Parameter | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parent | String | The object to which the new tail will be parented. If null, the scene root will be used. | ||||||||||||
GuideObjectCollection | String | A collection of guide objects or a curve used to create the tail. At least three guide objects are required, or if a curve is used the curve must have at least three control points. | ||||||||||||
NbTailBones | Integer |
The number of bones on the tracing chain. Default Value: 2 |
||||||||||||
ShadowType | Integer |
The type of shadow rig to attach. Shadow rigs can be used to transfer or remap animation. Default Value: 0
|
||||||||||||
ShadowParent | String | Parent of the shadow rig hiearchy. If empty, no shadow rig is generated. | ||||||||||||
CharacterSetName | String |
The name of the character set that should be used for this chain; it gets stored in a Custom PSet for use. Default Value: "" |
||||||||||||
ShadowCharacterSetName | String |
The name of the shadow character set that should be used for this chain. Default Value: "" |
/* This example creates a 10-bone tail with a box shadow. */ var guidecoll = new ActiveXObject("XSI.Collection"); var lXfm = XSIMath.CreateTransform(); for(var i=0;i<5;i++) { guidecoll.Add( GetPrim("Null", "Guide_Tail") ); lXfm.SetTranslationFromValues(2*i,0,0); guidecoll(i).Kinematics.Global.Transform = lXfm; } var tail = MakeTail(null, //Parent (if null uses scene root) guidecoll, //Guide Objects 10, //Nb Tail Bones 4, //Shadow type (4=box shadow) ActiveSceneRoot); //Shadow parent DumpTail(tail); function DumpTail(inTail) { logmessage ("Data in the tail object:"); logmessage ("------------------------"); logmessage ("Nb Points : " + inTail.nbPoints); logmessage ("Control Chains: " + inTail.ControlChains); logmessage ("Control Root : " + inTail.Root); logmessage ("Trace Chain : " + inTail.TraceChain); logmessage ("Trace Root : " + inTail.TraceRoot); logmessage ("Hidden : " + inTail.Hidden); logmessage ("Envelope : " + inTail.Envelope); logmessage ("Shadow Start : " + inTail.ShadowStart); logmessage ("Shadow Ends : " + inTail.ShadowEnds); logmessage ("Shadow Objects: " + inTail.Shadows); } // // Output from running this example: // //INFO : Data in the tail object: //INFO : ------------------------ //INFO : Nb Points : 5 //INFO : Control Chains: root,bone,eff,root1,bone1,eff1,root2,bone2,eff2,root3,bone3,eff3 //INFO : Control Root : root //INFO : Trace Chain : root4,Tail1,Tail2,Tail3,Tail4,Tail5,Tail6,Tail7,Tail8,Tail9,Tail10,Tail11 //INFO : Trace Root : root4 //INFO : Hidden : eff,eff1,eff2,eff3 //INFO : Envelope : Tail1,Tail2,Tail3,Tail4,Tail5,Tail6,Tail7,Tail8,Tail9,Tail10,Tail11 //INFO : Shadow Start : Tail12 //INFO : Shadow Ends : Tail21 //INFO : Shadow Objects: Tail12,Tail13,Tail14,Tail15,Tail16,Tail17,Tail18,Tail19,Tail20,Tail21 // |