v4.0
ボーンの長さ全体にわたって回転のヌルを作成します。エンベロープのデフォーマとして使用すると、ボーンの長さ全体に均等にツイストを分散し、より自然なスキンのデフォーメーションを実現できます。
上腕の分割と前腕の分割では、開始と終端の回転は別々の方法で決定されます(「MakeForearmRoll」を参照)。 上腕の回転分割では、スピンなしの上腕のローカル回転が開始の回転となり、スピンありの回転が終了の回転となります。 回転分割は、開始と終端の間で補完されます。 前腕の回転の場合には、前腕の回転からスピンを除いたもの(上腕の回転から計算されます)が回転の開始の回転として使用され、終了の回転はスピンありの次のボーン(手首)の回転となります。
| oBicepRoll = MakeBicepRoll( Bicep, [Prefix], [NbDivisions] ); | 
BicepRoll JScript オブジェクトを戻します。
| パラメータ | タイプ | 説明 | 
|---|---|---|
| Bicep | 文字列 | 回転分割の開始および終了の回転に使用されるチェイン エレメント。 | 
| Prefix | 文字列 | 回転分割の名前に付加されるプリフィックス。 | 
| NbDivisions | Integer | 回転分割の数。 値がゼロの場合には、回転は作成されません。 デフォルト値: 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" |