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