MakeDogLeg

導入

v4.0

詳細

アップベクタコントロールオブジェクトを持つ3ボーンの脚および3ボーンの足のリグを作成します(「MakeFoot」を参照)。 脚と足のボーンは 9 つまたはそれ以上のガイド オブジェクトのコレクションから作成されます(ガイドの要件は、下記の GuideObjectCollection パラメータを参照してください)。

MakeDogLeg は、必要に応じて大腿部に回転分割を追加することができます。 回転分割は、隣接するボーンとの回転の差異をボーンの長さ全体に分散させるために使用します。 エンベロープのデフォーマとして使用すると、ボーンの長さ全体に均等にツイストを分散し、より自然なスキンのデフォーメーションを実現できます。 回転分割は、MakeBicepRollコマンドを使用して、別途追加することもできます。

必要に応じて、脚にシャドウ リグをアタッチすることができます。 シャドウ オブジェクトは脚の各チェイン エレメントに対して作成され、シャドウ ボーンは実際の脚のボーンにポーズで拘束されます。 シャドウ リグはリグのアニメーションをプロットする際に使用できます。

スクリプト構文

oDogLeg = MakeDogLeg( Model, Parent, FootParent, GuideObjectCollection, [ShortPrefix], [FullPrefix], Sliders, [NbThighDivisions], [ShadowType], [ShadowParent] );

戻り値

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

パラメータ

パラメータ タイプ 説明
Model 文字列 ドッグ レッグが所属するモデル。
Parent 文字列 ドッグ レッグ ルートの親。
FootParent 文字列 ドッグ レッグの足のコントロールの親。
GuideObjectCollection 文字列 脚を作成するときに検索する 9 つ以上のオブジェクトのリスト。Femur、Tibia、Metarsal、Middle Pivot、Right Pivot、Left Pivot に加えて、足の開始位置からつま先までつながっているオブジェクトが 3 つ以上必要です(すなわち、足には少なくとも 2 ボーンのチェインが必要です)。 その他のアイテムを脚全体の長さに加えることができます。
ShortPrefix 文字列 新しいリグに使用する短い名前(通常は「L」または「R」)。 プリフィックスが指定されない場合は、その入力を求めるダイアログ ボックスが表示されます。
FullPrefix 文字列 新しいリグに使用する長い名前(通常は「Left」または「Right」)。 プリフィックスが指定されない場合は、その入力を求めるダイアログ ボックスが表示されます。
Sliders 文字列 ドッグ レッグ パラメータのスライダ PPG。 何も指定しないと、スライダ ページが作成されます。
NbThighDivisions Integer 上部脚の回転分割の数。 値がゼロの場合には、回転は作成されません。

デフォルト値: 3

ShadowType Integer ドッグ レッグにアタッチするシャドウ リグのタイプ。 シャドウ リグは、アニメーションを転送または再マップするために使用します。

デフォルト値: 0

指定可能な値:

説明:

0 影無し
1 SI|3Dスケルトンのシャドウリグ
2 XSIスケルトンのシャドウリグ
3 ヌルのシャドウリグ
4 ボックスのシャドウリグ
ShadowParent 文字列 シャドウ リグ階層の親。 空の場合には、シャドウ リグは作成されません。

JScript の例

/*

	This script creates a dog leg using a collection

	of nulls as the guide objects. 

*/

var guidecoll = new ActiveXObject("XSI.Collection");

guidecoll.Add( GetPrim("Null", "Guide_Femur") ); 

guidecoll.Add( GetPrim("Null", "Guide_Tibia") ); 

guidecoll.Add( GetPrim("Null", "Guide_Metarsal") ); 

guidecoll.Add( GetPrim("Null", "Guide_MiddlePivot") ); 

guidecoll.Add( GetPrim("Null", "Guide_RightPivot") ); 

guidecoll.Add( GetPrim("Null", "Guide_LeftPivot") ); 

guidecoll.Add( GetPrim("Null", "Guide_Ankle") ); 

guidecoll.Add( GetPrim("Null", "Guide_Foot") ); 

guidecoll.Add( GetPrim("Null", "Guide_Toe") ); 

var lXfm = guidecoll(0).Kinematics.Global.Transform

var lNull = GetPrim("Null", "Legs");

/*

	Left Leg

*/

//Leg

lXfm.SetTranslationFromValues(1,11,-0.5);

guidecoll(0).Kinematics.Global.Transform = lXfm;

lXfm.SetTranslationFromValues(1.5,7.5,0.5);

guidecoll(1).Kinematics.Global.Transform = lXfm;

lXfm.SetTranslationFromValues(2,4,-1);

guidecoll(2).Kinematics.Global.Transform = lXfm;

//Pivots

lXfm.SetTranslationFromValues(2,0,-0.5);

guidecoll(3).Kinematics.Global.Transform = lXfm;

lXfm.SetTranslationFromValues(2.5,0,-0.5);

guidecoll(4).Kinematics.Global.Transform = lXfm;

lXfm.SetTranslationFromValues(1.5,0,-0.5);

guidecoll(5).Kinematics.Global.Transform = lXfm;

//Foot

lXfm.SetTranslationFromValues(2,1,0.25);

guidecoll(6).Kinematics.Global.Transform = lXfm;

lXfm.SetTranslationFromValues(2,0.5,1);

guidecoll(7).Kinematics.Global.Transform = lXfm;

lXfm.SetTranslationFromValues(2,0,2);

guidecoll(8).Kinematics.Global.Transform = lXfm;

var LLeg= MakeDogLeg(lNull,

			GetPrim("Null", "LLegParent"),

			GetPrim("Null", "LFootParent"),

			guidecoll, "L", "Left" );

DumpLeg(LLeg);

function DumpLeg(inLeg)

{

	logmessage ("Data in the returned leg:");

	logmessage ("------------------------");

	logmessage ("Root        : " + inLeg.Root);

	logmessage ("Foot Root   : " + inLeg.Foot.Root);

	logmessage ("UpVector    : " + inLeg.Knee);

	logmessage ("Tarsus      : " + inLeg.Tarsus);

	logmessage ("BaseGuide   : " + inLeg.Foot.BaseGuide);

	logmessage ("UpVector    : " + inLeg.UpVec);

	logmessage ("Skeleton    : " + inLeg.Skel);

	logmessage ("Hidden      : " + inLeg.Hidden);

	logmessage ("Envelope    : " + inLeg.Envelope);

	logmessage ("ShadowsStart: " + inLeg.ShadowStart);

	logmessage ("ShadowsEnds : " + inLeg.ShadowEnds);

	logmessage ("Shadows     : " + inLeg.Shadows);

}

//results from running this script:

//INFO : Data in the returned leg:

//INFO : ------------------------

//INFO : Root        : LLegRoot

//INFO : Foot Root   : LFootRoot

//INFO : UpVector    : LkneeGuide

//INFO : Tarsus      : LtarsusGuide

//INFO : BaseGuide   : LFootGuide3

//INFO : UpVector    : LUpVector

//INFO : Skeleton    : LLegRoot,LFemur,LTibia,LMetarsal,LLegEff

//INFO : Hidden      : LLegRoot,LLegEff,LUpVectorParent,LkneeGuide,LtarsusGuide,lastboneUpV,baseNull

//INFO : Envelope    : LTibia,LMetarsal,LBicepRoll1,LBicepRoll2,LBicepRoll3,LBicepRoll_4

//INFO : ShadowsStart: undefined

//INFO : ShadowsEnds : undefined

//INFO : Shadows     : undefined

関連項目

MakeLeg MakeArm MakeThighSlide MakeFoot