MAXScript Extensions > MAXScript Extensions for character studio > Biped MAXScript Extensions > Biped Controllers >

# Biped Vertical_Horizontal_Turn(Body):Matrix3 Controller

    Vertical_Horizontal_Turn : MAXWrapper {9156,0}

| Character Studio - Quick Navigation

Constructor:

    Class instances not creatable by MAXScript

This controller is attached to the transform track of the Biped root objects.

Access:

    biped_ctrl=bipobj.transform.controller

or

    biped_ctrl=$bip01.controller

Properties

All the following properties are get/set properties unless specified.

## Structure properties

    <biped_ctrl>.rootName String Default: BipXX   where XX is a number

The name of the biped center of mass object. The center of mass (COM) is the root of the biped hierarchy, and is visible as a diamond shaped object in the biped pelvis area. The Root Name is appended to all the links of the biped hierarchy.

    <biped_ctrl>.rootNode Node Default: Varies -- Read-only

The root node (COM) of the Biped system this biped_ctrl belongs to.

    <biped_ctrl>.arms Boolean Default: True

Specifies whether or not arms will be generated for the current biped.

    <biped_ctrl>.neckLinks Integer Default: 1 range: 1-5

Specifies the number of links in the biped neck.

    <biped_ctrl>.spineLinks Integer Default: 4 range: 1-5

Specifies the number of links in the biped spine.

    <biped_ctrl>.legLinks Integer Default: 3 range: 3-4

Specifies the number of links in the biped legs.

    <biped_ctrl>.tailLinks Integer Default: 0 range: 0-5

Specifies the number of links in the biped tail. A value of 0 specifies no tail.

    <biped_ctrl>.ponytail1Links Integer Default: 0 range: 0-5

Specifies the number of Ponytail links.

    <biped_ctrl>.ponytail2Links Integer Default: 0 range: 0-5

Specifies the number of Ponytail links.

    <biped_ctrl>.fingers Integer Default: 1 range: 0-5

Specifies the number of biped fingers.

    <biped_ctrl>.fingerLinks Integer Default: 1 range: 1-3

Sets the number of links per finger.

Note

If the number of fingers is 0, fingerLinks is always equal to 1.

    <biped_ctrl>.toes Integer Default: 1 range: 1-5

Specifies the number of biped toes.

    <biped_ctrl>.toeLinks Integer Default: 3 range: 1-3

Specifies the number of links per toe.

    <biped_ctrl>.ankleAttach Float Default: 0.2 range: 0-1

Specifies the right and left ankles' point of attachment along the corresponding foot block. The ankles may be placed anywhere along the center line of the foot block from the heel to the toe.

A value of 0 places the ankle attachment point at the heel. A value of 1 places the ankle attachment point at the toes.

    <biped_ctrl>.height Float Default: Defined at creation

Sets the height of the biped.

    <biped_ctrl>.trianglePelvis Boolean Default: True

Select this control to create links from the upper legs to the lowest biped spine object when Physique is applied. Normally, the legs are linked to the biped pelvis object.

The pelvis area can be a problem when the mesh is deformed with Physique. Triangle Pelvis creates a more natural spline for mesh deformation.

    <biped_ctrl>.triangleNeck Boolean Default: false

If Triangle Neck is true, the clavicles are parented to the top spine link.

If Triangle Neck is false, the clavicles are parented to the neck base.

    <biped>.forearmTwistLinks Integer Default: 0 range: 0-10

Specifies the number of forearm links. If 0, Forearm Twist is unchecked in the Structure dialog, and Forearm Links is 2. If non-zero, Forearm Twist is checked and Forearm Links is the specified number (the Forearm Links spinner has a lower limit of 2). Valid values are in the range of 0 to 10.

    <biped_ctrl>.bodyType Integer Default; 0

The body type of the biped: 0-Skeleton, 1-Male, 2-Female, 3-Classic

## Props

    <biped>.prop1Exists Boolean Default: False

Specifies whether prop 1 exists.

    <biped>.prop2Exists Boolean Default: False

Specifies whether prop 2 exists.

    <biped>.prop3Exists Boolean Default: False

Specifies whether prop 3 exists.

## Animation properties

    <biped_ctrl>.gravAccel Float Default: 5.63855*Body height

Sets the strength of the gravitational acceleration used to calculate the biped's motion.

By default, this parameter is set to accurately simulate Newtonian gravity as found on the Earth's surface.

    <biped_ctrl>.dynamicsType Integer Default: 0 range: 0-1

0 - Biped Dynamics - Keys for the center of mass Balance Factor and Dynamics Blend parameters are set to a value of 1. Biped calculates airborne trajectories and biped balance.

1 - Spline Dynamics - Create new center of mass keys using full spline interpolation.

## Adapt Locks Group

Lock specified tracks to prevent automatic adjustments being made to those tracks when footsteps are moved in space or edited in time. All the locks except for Time work for footstep editing in space. Time, locks upper body keys when footsteps are edited in time (Track View). Adapt Locks only applies to a Footstep animation not a freeform animation.

When you move a footstep in space or adjust footstep timing, Biped automatically adapts existing keyframes to match the new footsteps. Adapt locks allows you to preserve the exact position of already created keys for a selected track.

Adapt Locks does not need to be on all the time. For example, if you want to raise all the footsteps along the world Z-axis, without changing the upper body position, turn on Adapt Locks Body Vertical Keys, turn on Footstep mode, select all the footsteps and move them up along the world Z-axis. The footsteps are repositioned, the legs are adapted, but the upper body retains the same motion rather than being raised with the footsteps. Now turn off Adapt Locks Body Vertical Keys, the upper body still retains its original motion.

    <biped_ctrl>.adaptLockFreeform Boolean Default: False

Turn on to prevent adaptation of a freeform period in a footstep animation. The biped's position during a freeform period will not move if footsteps after the freeform period are moved further away.

    <biped_ctrl>.adaptLockHorz Boolean Default: False

Turn on to prevent adaptation of body horizontal keys when footsteps are edited in space.

    <biped_ctrl>.adaptLockTurn Boolean Default: False

Turn on to prevent adaptation of body turning keys when footsteps are edited in space.

    <biped_ctrl>.adaptLockVert Boolean Default: False

Turn on to prevent adaptation of body vertical keys when footsteps are edited in space.

    <biped_ctrl>.adaptLockLLeg Boolean Default: False

Turn on to prevent adaptation of left leg move keys (a leg move key, is a leg key between footsteps) when footsteps are edited in space.

    <biped_ctrl>.adaptLockRLeg Boolean Default: False

Turn on to prevent adaptation of right leg move keys (a leg move key, is a leg key between footsteps) when footsteps are edited in space.

    <biped_ctrl>.adaptLockTime Boolean Default: False

Use Adapt Locks Time to retain upper body motion while editing footstep duration in Track View. When the duration of a footstep is changed, the biped leg will adapt by re-timing the touch, plant and lift keys. The biped upper body keys will retain their exact motion.

## Separate Tracks Group

By default character studio stores a finger, hand, forearm, and upper-arm key in the clavicle track. The toe, foot and calf keys are stored in the thigh track. This optimized approach to key storage works well in most cases. If you need extra tracks, turn them on for a specific biped body part.

For example, turn on Arms if you plan on extensive finger-hand animation; if an arm key is deleted, it will not affect the finger-hand keys. Notice that in Track View a transform track is now available for the first link of the thumb (stores all finger keys), hand, forearm, and upper-arm.

    <biped_ctrl>.sepArmsTracks Boolean Default: False

Turn on to create separate transform tracks for the finger, hand, forearm and upper-arm.

There is one finger track per hand. All finger keys are stored in the "Finger0" transform track, the first link of the biped thumb.

    <biped_ctrl>.sepLegsTracks Boolean Default: False

Turn on to create separate toe, foot, and calf transform tracks.

    <biped_ctrl>.sepPonytail1Tracks Boolean Default: False

Turn on to create separate ponytail 1 transform tracks.

    <biped_ctrl>.sepPonytail2Tracks Boolean Default: False

Turn on to create separate ponytail 2 transform tracks.

Note

If the number of pony tail links is 0, you cannot set Separate Ponytail Tracks to true.

    <biped_ctrl>.sepNeckTracks Boolean Default: False

Turn on to create separate transform tracks for the neck links.

    <biped_ctrl>.sepTailTracks Boolean Default: True

Turn on to create separate transform tracks for each tail link.

    <biped_ctrl>.sepSpineTracks Boolean Default: False

Turn on to create separate spine transform tracks.

### Modes

    <biped_ctrl>.figureMode Boolean Default: False

Use Figure mode to fit a biped to the mesh or mesh objects representing your character. Leave Figure Mode on when you attach the mesh to the biped with Physique. Figure mode is also used to scale a biped with a mesh attached, to make biped "fit" adjustments after Physique is applied, and to correct posture in motion files that need a global posture change.

NoteCannot be in Buffer mode to enter figureMode

    <biped_ctrl>.footstepMode Boolean Default: False

Create and edit footsteps; generate a walk, run, or jump footstep pattern; edit selected footsteps in space; and append footsteps using parameters available in Footstep mode.

    <biped_ctrl>.motionMode Boolean Default: False

Create scripts and use editable transitions to combine .bip files together (to create character animation) in Motion Flow mode. After creating a script and editing transitions, use Save Segment on the General rollout to store a script as one long .bip file. Save a .mfefile, this enables you to continue Motion Flow work in progress.

NoteCannot be in Buffer mode to enter motionMode

    <biped_ctrl>.mixerMode Boolean Default: False

Places the biped in Mixer mode.

    <biped_ctrl>.moveAllMode Boolean Default: False

Places the biped in Move All mode.

    <biped_ctrl>.bufferMode Boolean Default: False

Footsteps are required in the buffer to enterbufferMode.

Edit segments of an animation in Buffer mode. Copy footsteps and associated biped keys into the buffer using Copy Footsteps on the Footstep Operation rollout first, then turn on Buffer mode to view and edit the copied segment of your animation.

Note

Paste buffered motion back to the original animation repeatedly to create looping motions.

Edit footsteps and biped animation that has been copied into the buffer using Copy Footsteps on the Footsteps Operation rollout. The changes can be pasted back by turning off Buffer Mode, turning on Paste Footsteps on the Footstep Operation rollout and overlapping the buffered footsteps with the original footsteps. The buffered motion is spliced into the original animation.

    <biped_ctrl>.bendLinksMode Boolean Default: False

Bend all the biped spine objects naturally by rotating a biped spine object. Bend Links also works for the biped tail and ponytail links.

    <biped_ctrl>.rubberBandMode Boolean Default: False

Use this to reposition the biped elbows and knees without moving the biped hands or feet in Figure mode. Reposition the biped center of mass to simulate the physics of wind or weight pushing against the biped. Figure mode must be turned on to enable Rubber Band Mode.

Note

Rubber Band mode behaves differently than Non-Uniform Scale. If you "Rubber Band" the biped thigh, for example, the thigh and biped calf objects scale proportionally to keep the biped foot stationary. Using Non-Uniform Scale, the calf retains its scale and the foot moves.

    <biped_ctrl>.scaleStrideMode Boolean Default: True

Footstep stride length and width are scaled to match the stride length and width of the biped figure. scaling occurs automatically when you load a .bip, .stp, or .fig file. When you paste footsteps; or when you scale the biped's legs or pelvis.

    <biped_ctrl>.inPlaceMode Boolean Default: False

Keep the biped visible in the viewports while the animation plays. Use this for biped key editing or adjusting envelopes with Physique. Prevents XY movement of the biped center of mass during animation playback; motion along the Z-axis is preserved. In Place mode is stored with the 3ds Maxfile.

NoteCannot be in Figure mode to enter inPlaceMode!

    <biped_ctrl>.inPlaceXMode Boolean Default: False

Lock center of mass X-axis motion. Use this for game export where the character stays in place but the swinging motion of the hips and upper body along the Y-axis is preserved.

NoteCannot be in Figure mode to enter inPlaceXMode

    <biped_ctrl>.inPlaceYMode Boolean Default: False

Lock center of mass Y-axis motion. Use this for game export where the character stays in place but the swinging motion of the hips and upper body along the X-axis is preserved.

NoteCannot be in Figure mode to enter inPlaceYMode

Biped limbs, footsteps, and center of mass keys can be adjusted using In Place mode (when the center of mass is moved on the XY-axes in this mode, the footsteps move). View biped playback without requiring a follow camera. In this viewing mode, visible footsteps "slide" under the biped.

For export to games, this feature is valuable since many game engines intelligently move the character's center of mass laterally according to game play. In Place mode makes it easy to view, tune, and export animation in a manner that is complimentary to game engine playback.

Note

Trajectories do not display when In Place mode is active.

### Track Selection

    <biped_ctrl>.trackSelection Integer Default: 0

While a trackSelection value of 0 is a valid return value, setting trackSelection to 0 is meaningless and will not change the current track selection.

Possible values are:

0 - No track selection

1 - Body Horizontal - Turn on to prevent adaptation of body horizontal keys when footsteps are edited in space.

2 - Body Vertical - Turn on to prevent adaptation of body vertical keys when footsteps are edited in space.

3 - Body Rotation - Turn on to prevent adaptation of body turning keys when footsteps are edited in space.

### Display properties

    <biped_ctrl>.displayBones Boolean Default: False

Displays biped bones. Bones are represented as yellow lines, which do not render. Selecting Bones is useful for seeing exactly where the joints fall in relation to the biped objects.

    <biped_ctrl>.displayObjects Boolean Default: True

Displays biped body objects (objects).

    <biped_ctrl>.displayFootsteps Boolean Default: True

Displays biped footsteps in the viewport. Footsteps are represented as green and blue foot-shaped outlines by default; these are also visible in preview renderings. Turning off the Footsteps button also turns off the footstep numbers and the center of mass shadow.

    <biped_ctrl>.displayFSNumbers Boolean Default: True

Displays biped footstep numbers. Footstep numbers specify the order in which the biped will move along the path created by the footsteps. Footstep numbers are displayed in white and do not render, but do appear in preview renderings.

    <biped_ctrl>.displayTrajectories Boolean Default: False

Displays trajectories for selected biped limbs.

### Layers

    <biped_ctrl>.visibleBefore Integer Default: 1

Set the number of preceding layers too display as stick figures.

    <biped_ctrl>.visibleAfter Integer Default: 0

Set the number of succeeding layers too display as stick figures.

    <biped_ctrl>.keyHighlight Boolean Default: False

Display keys by highlighting the stick figures.

### Footstep related properties

    <biped_ctrl>.fsAppendState Boolean Default: False

Each new footstep is appended to the end of the biped's footstep sequence.

    <biped_ctrl>.fsCreateState Boolean Default: False

Set to true to create new states. The first state you add is, by default, the first state in the controller that executes when the simulation is run.

    <biped_ctrl>.fsGroundDuration Time Default: 18f

    <biped_ctrl>.fsAirDuration Time Default: 3f

Specifies the number of frames when the body will be in the air during a run or a jump.

NoteIf fsGaitMode is #walk , the above 2 parameters are the Walk Footstep and Double Support durations, respectively. If fsGaitMode is #run , the above 2 parameters are the Run Footstep and Airborne durations, respectively. If fsGaitMode is #jump , the above 2 parameters are the 2-Feet down and Airborne durations, respectively.

    <biped_ctrl>.fsGaitMode Name Default: #walk

fsGaitMode can be set to any of the three gaits: #walk, #run, #jump

### Motion Flow properties

    <biped_ctrl>.motionFlow MoFlow

Returns an instance of MoFlow. See Biped Motion Flow section for more details.

### Motion Capture properties

    <biped_ctrl>.displayBuffer Boolean Default: False

A red stick figure appears, representing the raw motion capture data.

    <biped_ctrl>.displayBufferTraj Boolean Default: False

Display a trajectory based on the buffered raw motion capture data for any biped body part. Use this in combination with Show/Hide Trajectories on the Display rollout to see how closely the raw and filtered data match.

    <biped_ctrl>.talentFigMode Boolean Default: False

Turn on Talent Figure mode to scale the biped relative to the markers. Calibration for the entire marker file takes place when you exit Talent Figure mode.

Keyframe adaptation takes place in order to accommodate the new biped scale; because of this, you should adjust the biped scale before adjusting the biped position relative to the markers.

Use Rubber Band Mode on the General rollout and Non-Uniform Scale to size the biped in Talent Figure mode.

Ideally, you will not need to use this feature. When loading a motion capture file, Biped attempts to extract the appropriate figure scale from the given data. Use Talent Figure mode only if the extracted scale of the biped doesn't match the scale of the original talent. Minor differences in scale will alter the motion.

NoteCalibration controls are only enabled when a marker or .bvh file is imported in its raw form. Do not use key reduction or extract footsteps when you import a marker file for the first time.

### Object Space Object

    <biped_ctrl>.osObject Node Default: Undefined

The Object Space Object for the currently selected body part.

The osObject can be specified for the Clavicle or any of its decendents, and the Thigh or any of its decendents.

The osObject is undefined for all other body parts.

The osObject is normally specified in the IK Key Info rollout.

The . osObject property can beresetby assigning undefined via MAXScript in 3ds Max 2008 and higher.

### Head LookAt Target

    <biped_ctrl>.headObject Node Default: Undefined

The node the head object looks at.

The .headObject property can beresetby assigning undefined via MAXScript in 3ds Max 2008 and higher.

### Hands As Feet

    <biped_ctrl>.foreFeet Boolean Default: false

Get/Set theHands as Feetproperty.

If . foreFeet is true , the the fingers are shaped and attached like toes, and viewport manipulation of IK hands is like feet.

If . foreFeet is false , the fingers and hands appear and behave as usual.

Available in3ds Max 2009 and higher.

### Knuckles and Short Thumb Properties

    <biped_ctrl>.knuckles Boolean Default:false

Get/Set the knuckles property.

Must be in figure mode to set the property.

When .knuckles is set to true , the hand is shrunk, the fingers have 4 links, splay out from the hand, and ThumbMinusOne is set to true.

When .knuckles is set to false , the fingers and hands appear as in 3ds Max 2009, and ThumbMinusOne is set to false.

Available in 3ds Max 2010 and higher.

    <biped_ctrl>.shortThumb Boolean Default:false

Get/Set the state of the shortThumb property.

Must be in figure mode to set the property.

If .shortThumb is true , the thumb has one less link than the other fingers, except when there is only one link per finger.

If .shortThumb is false , the thumb has the same number of links as the fingers.

Available in 3ds Max 2010 and higher.

### Sub Anim Animation Properties

    <biped_ctrl>.enableSubAnims Boolean Default: True

When on, sets the Workbench to display the curves of the selected part’s subanim in combination with the position or rotation curves.

    <biped_ctrl>.manipSubAnims Boolean Default: False

If true , the following rollouts appear in the Motion panel: Position List, Scale List and Rotation List.

### SubAnim Properties (as seen in Track View)

    <biped_ctrl>.vertical Matrix3 -- Animatable

The vertical track of controller

    <biped_ctrl>.horizontal Matrix3 -- Animatable

The horizontal track of controller

    <biped_ctrl>.turning Matrix3 -- Animatable

The turning track of controller

EXAMPLE
    bipObj = biped.createNew 100 100 [0,0,0]
    select bipObj
    bip = bipObj.transform.controller -- Display properties
    bip.displayBones= true
    bip.displayObjects= false
    bip.displayFootsteps= false
    bip.displayFSNumbers= false -- Animations properties
    bip.gravAccel= 700
    bip.dynamicsType= 1

#### See Also

- Biped Creation

- MAXScript Extensions in character studio