MAXScript Extensions > MAXScript Extensions for character studio > Mixer MAXScript Extensions >

# MxClip Class

| Character Studio - Quick Navigation

Properties

    .orgstart: timevalue,Read-only 		.orgend: timevalue,Read-only

These are the original time boundaries of the file loaded into the clip. These bounds never change unless a new file is loaded into the clip.

    .trimstart: timevalue 	 .trimend: timevalue

These are the trimmed boundaries of the clip. They are the same as or within the original boundaries. These values do not change when you scale a clip. They simply tell you what subset of the original clip is being used. These boundaries are visible in the mixer when you are in trim mode. When you set these values, the weight curve and time warps will be trimmed appropriately.

    .globstart: timevalue   .globend: timevalue

These are global frame values. They indicate where the trimmed bounds of the clip are mapped globally. The clip's scale is defined by the relationship between the trimmed interval (trimend - trimstart) and the global interval (globend - globstart). If those intervals are equal, the clip’s scale is 1. globstart must be less than globend.

    .scale: float (must be > 0.0)

This is the clips' scale. When you change it, the clip will scale on the right edge. The left edge will not move.

    .transInpt: timevalue

This is the inpoint of the transition from this clip to the next. The inpoint must be greater than the outpoint from the previous transition to this clip (prevTransOutpt). The inpoint must be less than the scaled local trimmed end of the clip. (see definition of scaled local below)

    .transAngle: float

This is the transition angle for the transition from this clip to the next.

    .transFocus: name must be set to one of the following: #focusAuto, #focusCom, #focusLftFoot, #focusRgtFoot, #focusBthFeet

This is the transition focus for the transition from this clip to the next.

    .transRolling: boolean

This describes whether or not this clip is rolling or fixed during the transition to the next clip.

    .transEasein: float (0.0 - 1.0) .transEaseout: float (0.0 - 1.0)

These are the ease values for the transition from this clip to the next. Each ease value, and the sum of the ease values, must be between 0.0 and 1.0, inclusive.

    .prevTransOutpt: timevalue

This is the outpoint of the transition from the previous clip to this clip. The outpoint must be less than the inpoint from this clip to the next (transInpt). The outpoint must be greater than the scaled local trimmed start of the clip. . (see definition of scaled local below)

    .prevTransRolling: boolean

This describes whether or not this clip is rolling or fixed during the transition from the previous clip to this clip.

    .filename: string, not settable

This is the filename of the bip file used by this clip. You must use the loadFile function to change the file.

    .numWeights: integer, not settable

The number of weights in the clip’s weight curve (relevant only when clip is in a layer track)

    .numTimeWarps: integer, not settable

The number of time warp keys in the clip’a s time warp.

Methods

## Clips

    loadFile <clip:mxclip> <loadOption:name> <filename:string> <ZeroFootHeight:boolean>

This loads a .bip file into a clip. loadOption must be one of the following:

#singleClip (means load the file only into this clip),

#instances (means load the file into this clip as well as all instances of this clip),

#adaptations (means load the file into this clip and all instances and adaptations of this clip).

Returns true or false, indicating whether or not the file load was successful.

    moveClip <clip:mxclip> <timeInc:timevalue>

This moves the clip timeInc frames. It returns true. Using this function, you can overlap clips, unlike you can in the user interface. However, this is not advised.

    scaleClip <clip:mxclip> <scale:float>

This scales the clip. This scale value must be greater than 0. This is different from the clip's scale property, which sets the absolute scale. Instead this will multiply the absolute scale by the specified amount. Using this function, you can overlap clips, unlike you can in the user interface. However, this is not advised.

## Time Conversion Methods

The following functions return a time value.They are useful for converting between various time spaces described below:

local: a time between trimstart and trimend, inclusive

scaled local: a time between 0 and the length of the scaled clip, which can be found this way:

    length = <mxclip>.globend- <mxclip>.globstart

Transition inpoints and outpoints are stored in scaled local time.

global: a global time value

    LocalToScaledLocal <clip:mxclip> <frame:integer>

    ScaledLocalToLocal <clip:mxclip> <frame:integer>

    LocalToGlobal <clip:mxclip> <frame:integer>

    GlobalToLocal <clip:mxclip> <frame:integer>

    GlobalToScaledLocal <clip:mxclip> <frame:integer>

    ScaledLocalToGlobal <clip:mxclip> <frame:integer>

    GlobalInpoint <clip:mxclip>

    GlobalOutpoint <clip:mxclip>

## Weight Methods

    getWeight <index::integer >

Returns the weight at the specified index in the clip’s weight curve. If the Index is out of bounds, the function will return 0.0.

    getWeightTime <index::integer >

Returns the time at the specified index in the clip’s weight curve. If the Index is out of bounds, the function will return 0.

    deleteWeight <index::integer >

Deletes the weight at the specified index in the clip’s weight curve. If the Index is out of bounds, the function will return false. Otherwise, it returns true.

    setWeight <index::integer > <float::weight>

Sets the weight at the specified index in the clip’s weight curve. If the Index is out of bounds or weight is not between 0.0 and 1.0, the function will return false. Otherwise, it returns true.

    setWeightTime <index::integer > <time::timevalue>

Sets the time at the specified index in the clip’s weight curve. If the Index is out of bounds or time is not between the time values of the previous and next values in the weight curve, the function will return false. If time is less than 0 or greater than the scaled local last frame of the clip, the function will also return false. Otherwise, it returns true.

    setWeightAtTime <time::timevalue> <float::weight>

If there is a key at time time on the weight curve, this will reset the weight at that key. If not, this will create a new key at time time with weight weight. If time is less than 0 or greater than the scaled local last frame of the clip, the function will return false. Otherwise, it returns true.

    getWeightAtTime <time::timevalue>

If t is at a key at time time in the weight curve, this returns the weight at that key. Otherwise, it returns the interpolated weight at time time. If there are no weights, this returns 1.0.

## Time Warp Methods

    isTimeWarpActive()

Returns true if time warp exists, false if not.

    ActivateTimeWarp()

Activates the time warp for this clip.

    DeactivateTimeWarp()

Deactivates the time warp for this clip.

    InitializeTimeWarp()

Initializes the time warp for this clip, placing one time warp key at the beginning of the clip, and another at the end. This will also activate the time warp if it is not active.

    getTwOrgTime <index::integer>

Returns the original time at index index. If index is out of bounds of the time warp, this returns 0.

    getTwWarpTime <index::integer>

Returns the warped time at index index. If index is out of bounds of the time warp, this returns 0.

    GetOrgTimeAtWarpedTime <wtime::timevalue>

This returns what original time has been warped to time wtime. If wtime is out of bounds of the time warp, this returns 0.

    GetWarpedTimeAtOrgTime <otime::timevalue>

Returns what the original time, otime, has been warped to. If otime is out of bounds of the clip’s scaled local time, this returns 0.

    DeleteTw <index::integer>

Deletes the time warp key at index index. If index is out of bounds of the time warp, this returns false. Otherwise it returns true.

    SetTwOrgTime <index::integer> <otime::timevalue>

Sets the original time of the time warp key at index index to otime. This returns false if index is out of bounds of the time warp, or otime is not inbetween the two original times of the warp indices surrounding index. This also returns false if you attempt to change the original time of the first and last values in the time warp, since it must remain at the clip boundaries. Otherwise, this returns true.

    SetTwWarpTime <index::integer> <wtime::timevalue>

Sets the warped time of the time warp key at index index to wtime. This returns false if index is out of bounds of the time warp, or wtime is not inbetween the two warped times of the warp indices surrounding index. This also returns false if wtime is less than 0 or greater than the scaled local last frame of the clip. Otherwise, this returns true.

    InsertWarpAtOrgTime <otime::timevalue>

If otime is at an existing warp key's original time value, or otime is out of bounds of the clip's scaled local bounds, then this returns false. Otherwise it sets a new time warp key, computing the warped time for this key such that the flow is continuous, and it returns true.

#### See Also

- Mixer MAXScript Extensions

- MAXScript Extensions in character studio