MakeShadowChain

導入

v4.0

カテゴリ

キャラクタ リギング

詳細

既存のチェインの上の新しいシャドウの階層(チェインまたはヌルの階層)をトレースします。 シャドウ オブジェクトは、元のオブジェクトにポーズで拘束されます。

スクリプト構文

oShadow = MakeShadowChain( Chain, ShadowParent, [SI3DStyleChain], [IconScale], [ShadowType], [ShadowCharacterSetName] );

戻り値

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

パラメータ

パラメータ タイプ 詳細
Chain 文字列 トレースするチェイン オブジェクトのコレクション。 GetSkeletonコマンドによって定義される順序と同じ順序にする必要があります。
ShadowParent 文字列 新しいシャドウ階層の親となるオブジェクト。
SI3DStyleChain ブール True の場合は SI|3D チェインを描画し、False の場合は標準の Softimage チェインを描画します。

デフォルト値: False

IconScale ダブル スケルトン アイコンのスケール。

デフォルト値: 1.0

ShadowType Integer 描画するシャドウ トレーシングのタイプ。 わかりやすくするため、デフォルトのリグ ジェネレータでは、シャドウ タイプのユーザ インターフェイスのオプションの番号が横に表示されます。 このオプションではボックス シャドウはトレースできませんが、コンポーネントとしては実行可能です。ボックス シャドウは各コンポーネントの体積を仮定する必要があるためです。

デフォルト値: 0

指定可能な値:

説明:

0 スケルトンのシャドウリグ
1 ヌルのシャドウリグ
ShadowCharacterSetName 文字列 このチェインで使用する必要があるシャドウ キャラクタ セットの名前。カスタム プロパティ セットに保存されて使用されます。

デフォルト値: ""

JScript の例

/*
        This script creates an arm, then creates two shadow 
        chains over top of it. The first uses nulls the other
        uses a chain.
*/
var guidecoll = new ActiveXObject("XSI.Collection");
guidecoll.Add( GetPrim("Null", "ShoulderGuide") ); 
guidecoll.Add( GetPrim("Null", "ElbowGuide") ); 
guidecoll.Add( GetPrim("Null", "HandGuide") ); 
var lXfm = guidecoll(0).Kinematics.Global.Transform
var lPos = XSIMath.CreateVector3();
/*
        Right Arm
*/
lXfm.SetTranslationFromValues(0,0,0);
guidecoll(0).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(4,0,-2);
guidecoll(1).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(8,0,0);
guidecoll(2).Kinematics.Global.Transform = lXfm;
var RArm = MakeArm(ActiveSceneRoot, guidecoll, "R",null, 0,0,0,null ,null, 0);
/*
        Add a chain shadow
*/
//NULL shadow
var shadow = MakeShadowChain( GetSkeleton(RArm.Root), ActiveSceneRoot,0,1.0,1);
//BONE shadow
shadow = MakeShadowChain( GetSkeleton(RArm.Root), ActiveSceneRoot,0,2.0,0);
DumpShadow( shadow );
function DumpShadow( inShadow )
{
logmessage ("Data in the returned shadow object:");
logmessage ("-----------------------------------");
        logmessage ("ShadowParent : " + inShadow.Root);
logmessage ("SI3DStyle    : " + inShadow.Eff);
logmessage ("#ShadowObject: " + inShadow.Shadows.count);
        for(var b=0;b<inShadow.Shadows.count;b++)
        {logmessage (" ShadowObj" +  b + "  : " + inShadow.Shadows(b));}
        logmessage ("#ShadowEnds  : " + inShadow.ShadowEnds.count);
        for(var b=0;b<inShadow.ShadowEnds.count;b++)
        {logmessage (" ShadowEnd" + b + "  : " + inShadow.ShadowEnds(b));}
        logmessage ("Scale        : " + inShadow.Scale);
logmessage ("Hidden       : " + inShadow.Hidden);
logmessage ("Envelope     : " + inShadow.Envelope);
logmessage ("ShadowModel  : " + inShadow.ShadowModel);
}
//results from running this script:
//INFO : "Data in the returned shadow object:"
//INFO : "-----------------------------------"
//INFO : "ShadowParent : RRoot1"
//INFO : "SI3DStyle    : undefined"
//INFO : "#ShadowObject: 4"
//INFO : " ShadowObj0  : RRoot1"
//INFO : " ShadowObj1  : RBicep1"
//INFO : " ShadowObj2  : RForearm1"
//INFO : " ShadowObj3  : eff"
//INFO : "#ShadowEnds  : 1"
//INFO : " ShadowEnd0  : RRoot1"
//INFO : "Scale        : 1"
//INFO : "Hidden       : RRoot1"
//INFO : "Envelope     : RBicep1,RForearm1"
//INFO : "ShadowModel  : Scene_Root"

関連項目

MakeShadowSpine