v4.0
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" |