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
|
||||||||||||
ShadowParent | 文字列 | シャドウ リグ階層の親。 空の場合には、シャドウ リグは作成されません。 |
/* 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 |