MakeSpine

導入

v4.0

カテゴリ

キャラクタ リギング

詳細

胸のコントロール、ヒップのコントロール、胸のデプス、ヒップのデプスの 4 つのオブジェクトから、クォータニオンまたはスケルトンのスパインを作成します。 4 つのオブジェクトは、トレースする椎に沿った 4 ポイントのベジェ カーブを定義します。 スケルトン スパインでは椎はボーンで、クォータニオン スパインでは椎はインプリシットまたはポリゴンの立方体です。 クォータニオン スパインでは、これら 4 つのオブジェクトはスパインのカーブも制御します(各オブジェクトがカーブのコントロール ポイントの 1 つを制御します)。

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

スクリプト構文

oSpine = MakeSpine( Model, Parent, [NbVertebrae], [SpineType], [Stretchy], SpineBaseObject, SpineTopObject, [BottomDepthObject], [TopDepthObject], [ChestTop], Sliders, [ShadowType], [ShadowParent], [VertebraeName], [CharacterSetName], [ShadowCharacterSetName] );

戻り値

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

パラメータ

パラメータ タイプ 詳細
Model 文字列 スパインが所属するモデル。
Parent 文字列 スパインの親となるオブジェクト。
NbVertebrae Integer スパイン上の椎の数。

デフォルト値: 3

SpineType Integer スパインのタイプと使用するコントロール オブジェクト。

デフォルト値: 0

指定可能な値:

説明:

0 ポリゴンの分割があるクォータニオンのスパインを作成します。
1 インプリシットの分割があるクォータニオンのスパインを作成します。
2 スケルトンスパインを作成します。
Stretchy ブール 長さを固定しない、ストレッチ可能なスパインを作成します。

デフォルト値: True

SpineBaseObject 文字列 スパインの最下部。スパインのパス上で y+ をポイントするオブジェクトです。
SpineTopObject 文字列 スパインの最上部。カーブから y+ をポイントするオブジェクトです。
BottomDepthObject 文字列 スパインを貫く 4 ポイントのベジェの終点。 空の場合には、自動的に計算されます。
TopDepthObject 文字列 スパインを貫く 4 ポイントのベジェの終点。 空の場合には、自動的に計算されます。
ChestTop 文字列 (オプション)胸の終端の最上部。 値を入力すると、スパインの最上部をリファレンスのみとして使用し、spineTop から chestTop のアイコンを構築します。 空の場合には、スパインの上部にはアイコンが作成されず、インプリシットの立方体のみが使用されます。
Sliders 文字列 スパイン パラメータを配置するスライダの PPG。 何も指定しないと、スパイン カーブにスライダ ページが追加されます。
ShadowType Integer スパインにアタッチするシャドウ リグのタイプ。 シャドウ リグは、アニメーションを転送または再マップするために使用します。

デフォルト値: 0

指定可能な値:

説明:

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

デフォルト値: ""

CharacterSetName 文字列 このチェインで使用する必要があるキャラクタ セットの名前。カスタム プロパティ セットに保存されて使用されます。

デフォルト値: ""

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

デフォルト値: ""

JScript の例

/*
        Makes a spine with 3 vertebrae
*/
var Base        = GetPrim("Null", "Base"); 
var Top         = GetPrim("Null", "Top"); 
var Depth       = GetPrim("Null", "Depth"); 
var TopDepth= GetPrim("Null", "TopDepth"); 
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);
DumpSpine(Spine);
function DumpSpine(inSpine)
{
        logmessage ("Data in the returned spine object:");
        logmessage ("----------------------------------");
        logmessage ("Curve       : " + inSpine.Curve);
        logmessage ("TopVertebra : " + inSpine.TopVertebra);
        if(inSpine.Shadows)
        {
                logmessage ("#ShadowObj  : " + inSpine.Shadows.count);
                for(var b=0; inSpine.Shadows && b<inSpine.Shadows.count;b++)
                        {logmessage ("  Shadow" + b + ": " + inSpine.Shadows(b));}
        }
                logmessage ("#ShadowObj  : " + 0);
        logmessage ("#EnvelopeObj: " + inSpine.Envelope.count);
        for(var b=0;b<inSpine.Envelope.count;b++)
                {logmessage ("  EnvelopeObj" + b + ": " + inSpine.Envelope(b));}
        logmessage ("#Vertebrae  : " + inSpine.Vertebra.count);
        for(var b=0;b<inSpine.Vertebra.count;b++)
                {logmessage ("  Vertebra" + b + ": " + inSpine.Vertebra(b));}
}
//result of running this script
//INFO : "Data in the returned spine object:"
//INFO : "----------------------------------"
//INFO : "Curve       : crvlist2"
//INFO : "TopVertebra : TopVertebra2"
//INFO : "#ShadowObj  : 0"
//INFO : "#EnvelopeObj: 4"
//INFO : "  EnvelopeObj0: TopVertebra2"
//INFO : "  EnvelopeObj1: Vertebra6"
//INFO : "  EnvelopeObj2: Vertebra7"
//INFO : "  EnvelopeObj3: Vertebra8"
//INFO : "#Vertebrae  : 3"
//INFO : "  Vertebra0: Vertebra6"
//INFO : "  Vertebra1: Vertebra7"
//INFO : "  Vertebra2: Vertebra8"

関連項目

MakeShadowSpine MakeTorso MakeHead MakeHip