v4.0
character rigging
Creates roll nulls along the length of a bone. When used as
deformers on an envelope they evenly distribute twist along the
length of a bone giving a more natural skin deformation.
The start and end rotations are determined differently for a bicep
division than a forearm division (MakeForearmRoll). In a bicep roll
division, the bicep's local rotation without spin is the start
rotation, while its rotation with spin is used for the end
rotation. Roll divisions are then interpolated between start and
end. In the case of forearm roll, the forearm's rotation minus spin
(calculated using the bicep's rotation) is used as the starting
rotation, while the end rotation is the next bone's rotation
(wrist) including spin.
oBicepRoll = MakeBicepRoll( Bicep, [Prefix], [NbDivisions] ); |
Returns a BicepRoll JScript object.
Parameter | Type | Description |
---|---|---|
Bicep | String | The chain element used for the start and end rotations of the roll division. |
Prefix | String | Prefix added to the name of the roll divisions. |
NbDivisions | Integer | The number of roll divisions. If the value is zero no roll is
created.
Default Value: 3 |
/* This script creates 3 roll divisions on a bone */ var lPosStart = XSIMath.CreateVector3(); var lPosEnd = XSIMath.CreateVector3(); lPosStart.Set(0,0,0); lPosEnd.Set(-5,0,0); var Chain = ActiveSceneRoot.Add2DChain(lPosStart, lPosEnd); var BicepRoll = MakeBicepRoll(Chain.Bones(0), "L"); DumpBicepRoll (BicepRoll ); function DumpBicepRoll (inBicepRoll) { logmessage ("Data in the returned bicep roll object:"); logmessage ("---------------------------------------"); logmessage ("#Divisions: " + inBicepRoll.Nb); if(inBicepRoll.Nb > 0) { for(var b=0;b<inBicepRoll.Divisions.count;b++) {logmessage (" RollDiv" + b + ": " + inBicepRoll.Divisions(b));} } } //results from running this script //INFO : "Data in the returned bicep roll object:" //INFO : "---------------------------------------" //INFO : "#Divisions: 3" //INFO : " RollDiv0: LBicepRoll1" //INFO : " RollDiv1: LBicepRoll2" //INFO : " RollDiv2: LBicepRoll3" //INFO : " RollDiv3: LBicepRoll_4" |