v4.0
既存のチェインの上の新しいシャドウの階層(チェインまたはヌルの階層)をトレースします。 シャドウ オブジェクトは、元のオブジェクトにポーズで拘束されます。
oShadow = MakeShadowChain( Chain, ShadowParent, [SI3DStyleChain], [IconScale], [ShadowType], [ShadowCharacterSetName] ); |
Shadow JScript オブジェクトを戻します。
| パラメータ | タイプ | 説明 | ||||||
|---|---|---|---|---|---|---|---|---|
| Chain | 文字列 | トレースするチェイン オブジェクトのコレクション。 GetSkeleton コマンドによって定義される順序と同じ順序にする必要があります。 | ||||||
| ShadowParent | 文字列 | 新しいシャドウ階層の親となるオブジェクト。 | ||||||
| SI3DStyleChain | Boolean |
True の場合は SI|3D チェインを描画し、False の場合は標準の Softimage チェインを描画します。 デフォルト値: False |
||||||
| IconScale | Double |
スケルトン アイコンのスケール。 デフォルト値: 1.0 |
||||||
| ShadowType | Integer |
描画するシャドウ トレーシングのタイプ。 わかりやすくするため、デフォルトのリグ ジェネレータでは、シャドウ タイプのユーザ インターフェイスのオプションの番号が横に表示されます。 このオプションではボックス シャドウはトレースできませんが、コンポーネントとしては実行可能です。ボックス シャドウは各コンポーネントの体積を仮定する必要があるためです。
デフォルト値: 0
|
||||||
| ShadowCharacterSetName | 文字列 |
このチェインで使用する必要があるシャドウ キャラクタ セットの名前。カスタム プロパティ セットに保存されて使用されます。 デフォルト値: "" |
/*
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" |