MakeFoot

Introduced

4.0

Description

Creates a rigged three bone foot. The foot rig is created from a collection of 6 or more guide objects (see the GuideObjectCollection parameter below for guide requirements).

The rig created by MakeFoot contains a foot control and roll control. It can optionally create a distribution control, typically used for the dog leg IK distribution. This IK distribution control is created by default by MakeDogLeg.

Optionally a shadow rig can be attached to the foot. Shadow objects are created for each chain element in the foot, and shadow bones are pose-constrained to the acutal foot bones. Shadow rigs can be used to plot animation off of a rig.

Scripting Syntax

MakeFoot( Model, Parent, [ShortPrefix], [FullPrefix], GuideObjectCollection, Sliders, [Extension], [ShadowType], [ShadowParent], [ThreeBoneToe] )

Parameters

Parameter

Type

Description

Model

String

The model that the foot will belong to.

Parent

String

The parent of the foot controls

ShortPrefix

String

The short name (typically "L" or "R") to be used in the new rig. If the prefix is not given a dialog box appears prompting for one.

FullPrefix

String

The long name (typically "Left" or "Right") to be used in the new rig. If the prefix is not given a dialog box appears prompting for one.

GuideObjectCollection

String

A list of at least 6 objects to search for when making the foot: Middle Pivot; Right Pivot; Left Pivot; and at least 3 objects running from the start of the foot to the end of the toe (this means the foot must be at least a two bone chain). Extra items are added onto the length of the foot.

Sliders

String

A slider PPG for foot parameters. If none is supplied a slider page is created.

Extension

Boolean

Whether or not an Extension object is made for controlling dog leg IK distribution. If true ,an extension icon is created.

Default Value: False

ShadowType

Integer

The type of shadow rig to attach to the foot. Shadow rigs can be used to transfer or remap animation.

Default Value: 0

Possible Values:

0: No shadow

1: SI|3D Skeleton shadow rig

2: XSI Skeleton shadow rig

3: Null shadow rig

4: Box shadow rig

ShadowParent

String

Parent of the shadow rig hiearchy. If empty, no shadow rig is generated.

ThreeBoneToe

Boolean

True to create three-bone toes.

Default Value: True

Return Value

Returns a Foot JScript object.

Examples

JScript Example

/*
   This script creates a three bone foot. 
*/

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

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") ); 
guidecoll.Add( GetPrim("Null", "Guide_Toe2") ); 


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

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

/*
   Left Leg
*/

//Pivots
lXfm.SetTranslationFromValues(2,0,-0.5);
guidecoll(0).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(2.5,0,-0.5);
guidecoll(1).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(1.5,0,-0.5);
guidecoll(2).Kinematics.Global.Transform = lXfm;

//Foot
lXfm.SetTranslationFromValues(2,4 ,0.25);
guidecoll(3).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(2,1,2);
guidecoll(4).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(2,0.25,5);
guidecoll(5).Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(2,0,8);
guidecoll(6).Kinematics.Global.Transform = lXfm;


var threeFoot = MakeFoot(lNull, GetPrim("Null", "ThreeBone"), "ABC", "ABCDE", guidecoll, null, null, null, null, true);
var twoFoot = MakeFoot(lNull, GetPrim("Null", "TwoBone"), "ABC", "ABCDE", guidecoll, null, null, null, null, false);

SelectObj("ThreeBone", "BRANCH", null);
Translate(null, -8.93099040438492, 0, 0, siRelative, siLocal, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 0, null);

DumpFoot(twoFoot);
DumpFoot(threeFoot);

function DumpFoot(inFoot)
{
   logmessage ("------------------------");
   logmessage ("Data in the returned foot [" + inFoot.Parent + "]:");
   logmessage ("------------------------");
   logmessage ("Root        : " + inFoot.Root);
   logmessage ("Parent      : " + inFoot.Parent);
   logmessage ("BaseGuide   : " + inFoot.BaseGuide);
   logmessage ("FootGuides  : " + inFoot.FootGuides);
   logmessage ("Foot        : " + inFoot.Foot);
   logmessage ("Roll        : " + inFoot.Roll);
   logmessage ("Hidden      : " + inFoot.Hidden);
   logmessage ("Envelope    : " + inFoot.Envelope);
   logmessage ("Shadows     : " + inFoot.Shadows);
   logmessage ("ShadowsEnds : " + inFoot.ShadowEnds);
   logmessage ("Shadows     : " + inFoot.Shadows);
}

//results from running this script:
//INFO : Data in the returned foot:
//INFO : ------------------------
//INFO : Root        : ABCFootRoot
//INFO : Parent      : Parent
//INFO : BaseGuide   : ABCFootGuide4
//INFO : FootGuides  : ABCFootGuide1,ABCFootGuide2,ABCFootGuide3,ABCFootGuide4
//INFO : Foot        : ABCDEFoot
//INFO : Roll        : ABCDERoll
//INFO : Hidden      : ABCFootRoot,ABCFootEff,ABCFootBind1,ABCFootBind2,ABCFootBind3,ABCPivotBase,ABCPlacePivot,ABCPivotLeft,ABCPivotRight,ABCFootGuide1,ABCFootGuide2,ABCFootGuide3,ABCFootGuide4,ABCFootUpV1,ABCFootUpV2,ABCFootUpV3
//INFO : Envelope    : ABCFootBone1,ABCFootBone2,ABCFootBone3
//INFO : ShadowsStart: undefined
//INFO : ShadowsEnds : undefined
//INFO : Shadows     : undefined

See Also

MakeLeg

MakeDogLeg



Autodesk Softimage v7.5