MakeBicepRoll

導入

v4.0

詳細

ボーンの長さ全体にわたって回転のヌルを作成します。エンベロープのデフォーマとして使用すると、ボーンの長さ全体に均等にツイストを分散し、より自然なスキンのデフォーメーションを実現できます。

上腕の分割と前腕の分割では、開始と終端の回転は別々の方法で決定されます(「MakeForearmRoll」を参照)。 上腕の回転分割では、スピンなしの上腕のローカル回転が開始の回転となり、スピンありの回転が終了の回転となります。 回転分割は、開始と終端の間で補完されます。 前腕の回転の場合には、前腕の回転からスピンを除いたもの(上腕の回転から計算されます)が回転の開始の回転として使用され、終了の回転はスピンありの次のボーン(手首)の回転となります。

スクリプト構文

oBicepRoll = MakeBicepRoll( Bicep, [Prefix], [NbDivisions] );

戻り値

BicepRoll JScript オブジェクトを戻します。

パラメータ

パラメータ タイプ 説明
Bicep 文字列 回転分割の開始および終了の回転に使用されるチェイン エレメント。
Prefix 文字列 回転分割の名前に付加されるプリフィックス。
NbDivisions Integer 回転分割の数。 値がゼロの場合には、回転は作成されません。

デフォルト値: 3

JScript の例

/*

	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"

関連項目

MakeForearmRoll MakeArm