v4.0
character rigging
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 // |