v4.0
キャラクタ リギング
既存のスパインの上のシャドウの階層(チェインまたはヌルの階層)をトレースします。 シャドウ オブジェクトが作成され、スパインの各椎にポーズで拘束されます。
oShadow = MakeShadowSpine( Spline, Base, Vertebra, TopVertebra, ShadowParent, [ChestTop], [IconScale], [ShadowType], [ShadowCharacterSetName] ); |
Shadow JScript オブジェクトを戻します。
パラメータ | タイプ | 詳細 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Spline | 文字列 | トレースするスパインのスプライン オブジェクト。 | ||||||||||
Base | 文字列 | トレースするスパインのベース(ヒップ)オブジェクト。 | ||||||||||
Vertebra | 文字列 | トレースするスパインの椎のコレクション。 | ||||||||||
TopVertebra | 文字列 | トレースするスパインの最上部の椎のオブジェクト(胸)。 | ||||||||||
ShadowParent | 文字列 | 新しいシャドウ階層の親。 | ||||||||||
ChestTop | 文字列 | (オプション)トレースするスパインの胸の最上部のオブジェクト。 空の場合には、スパインがこのオプションなしで作成されていると想定します。 | ||||||||||
IconScale | ダブル | スパインのスケール値。 シャドウ スケルトンのアイコンの大きさを調整します。
デフォルト値: 1.0 |
||||||||||
ShadowType | Integer | 描画するシャドウ トレーシングのタイプ。 わかりやすくするため、デフォルトのリグ ジェネレータでは、シャドウ タイプのユーザ
インターフェイスのオプションの番号が横に表示されます。 このオプションではボックス
シャドウはトレースできませんが、コンポーネントとしては実行可能です。ボックス
シャドウは各コンポーネントの体積を仮定する必要があるためです。
デフォルト値: 1
|
||||||||||
ShadowCharacterSetName | 文字列 | このチェインで使用する必要があるキャラクタ セットの名前。
デフォルト値: "" |
/* Make a spine with 3 vertebrae, then attach a skeleton shadow to it */ var Base = GetPrim("Null", "Base"); var Top = GetPrim("Null", "Top"); var Depth = GetPrim("Null", "Depth"); var TopDepth= GetPrim("Null", "TopDepth"); /* Make Spine */ var lXfm = XSIMath.CreateTransform(); lXfm.SetTranslationFromValues(0,0,0); Base.Kinematics.Global.Transform = lXfm; lXfm.SetTranslationFromValues(0,8,0); Top.Kinematics.Global.Transform = lXfm; lXfm.SetTranslationFromValues(0,2,0); Depth.Kinematics.Global.Transform = lXfm; lXfm.SetTranslationFromValues(0,6,0); TopDepth.Kinematics.Global.Transform = lXfm; var Spine = MakeSpine( ActiveSceneRoot, //model ActiveSceneRoot, //parent 3, //number of vertebrae 0, //quat spine with polygon vertebrae false, //non-stretchy Base, Top, Depth,TopDepth); /* Make Shadow */ var ShadowSpine = MakeShadowSpine(Spine.Curve, Spine.base, Spine.Vertebra, Spine.TopVertebra, ActiveSceneRoot,Spine.chestTop); DumpShadowSpine(ShadowSpine); function DumpShadowSpine(inShadowSpine) { logmessage ("Data in the returned spine object:"); logmessage ("---------------------------------"); logmessage ("Spline : " + inShadowSpine.Spline); logmessage ("TopVertebra : " + inShadowSpine.TopVertebra ); logmessage ("Scale : " + inShadowSpine.Scale); logmessage ("Parent : " + inShadowSpine.Parent); logmessage ("#ShadowObj : " + inShadowSpine.Shadows.count); for(var b=0;b<inShadowSpine.Shadows.count;b++) {logmessage (" Shadow" + b + ": " + inShadowSpine.Shadows(b));} logmessage ("#EnvelopeObj: " + inShadowSpine. Envelope.count); for(var b=0;b<inShadowSpine.Envelope.count;b++) {logmessage (" EnvelopeObj" + b + ": " + inShadowSpine.Envelope(b));} logmessage ("#Vertebrae : " + inShadowSpine.Vertebra.count); for(var b=0;b<inShadowSpine.Vertebra.count;b++) {logmessage (" Vertebra" + b + ": " + inShadowSpine.Vertebra(b));} logmessage ("#UpVectors : " + inShadowSpine.UpVectors.count); for(var b=0;b<inShadowSpine.UpVectors.count;b++) {logmessage (" UpVector" + b + ": " + inShadowSpine.UpVectors(b));} } //results from running this script: //INFO : "Data in the returned spine object:" //INFO : "---------------------------------" //INFO : "Spline : crvlist" //INFO : "TopVertebra : TopVertebra" //INFO : "Scale : 1" //INFO : "Parent : Scene_Root" //INFO : "#ShadowObj : 6" //INFO : " Shadow0: SpineRoot" //INFO : " Shadow1: Spine1" //INFO : " Shadow2: Spine2" //INFO : " Shadow3: Spine3" //INFO : " Shadow4: Chest" //INFO : " Shadow5: ChestEffector" //INFO : "#EnvelopeObj: 0" //INFO : "#Vertebrae : 3" //INFO : " Vertebra0: Vertebra" //INFO : " Vertebra1: Vertebra1" //INFO : " Vertebra2: Vertebra2" //INFO : "#UpVectors : 4" //INFO : " UpVector0: Shadow_upVa" //INFO : " UpVector1: Shadow_upVa1" //INFO : " UpVector2: Shadow_upVa2" //INFO : " UpVector3: Shadow_upVa3" |