MoFlowTranInfo : MaxWrapper


addTranInfo < MoFlowTransition >

Adds a new MoFlowTranInfo to the MoFlowTransition and returns the newly created MoFlowTranInfo.


<MoFlowTranInfo>.length Integer Default: 25

The transition length in frames.

<MoFlowTranInfo>.angle Float Default: 0.0

The direction of the destination clip

<MoFlowTranInfo>.easeFrom Float Default: 0.5


<MoFlowTranInfo>.easeTo Float Default: 0.5


<MoFlowTranInfo>.sourceStart Integer Default: Varies

The start frame for the source clip

<MoFlowTranInfo>.destStart Integer Default: Varies

The start frame for the destination clip

<MoFlowTranInfo>.sourceState Boolean Default: True

false - Fixed

true - Rolling

<MoFlowTranInfo>.destState Boolean Default: True

false - Fixed

true - Rolling

<MoFlowTranInfo>.note String Default: ""


<MoFlowTranInfo>.probability Integer Default: 100


Related Methods

deleteTranInfo < MoFlowTransition > <index_integer>

Deletes the indexed MoFlowTranInfo from the MoFlowTransition. If the MoFlowTranInfo is the only MoFlowTranInfo in MoFlowTransition, it is not deleted.

computeAnimation <moflow> [redraw:<true>] [incGlobals:<false>]

Computes the global flow network. This function has to be called to update any changes made to the motion flow network. redraw:true will redraw the viewports. incGlobals:true will also include the global motion flow network


Changes to the MoFlowTranInfo property values do not cause an immediate update of the biped. ComputeAnimation must be called on the MoFlow value to recompute the biped motion.

The following example will find the transition information from the first clip (snippet) to the next in the first script defined for the Biped motion flow.


CSPATH = "f:\\3dsmax31_86\\cstudio\\"

bipObj = biped.createNew 100 100 [0,0,0]

select bipObj

max motion mode

bip = bipObj.controller


-- get the MoFlow value from the biped controller:

mf = bip.motionFlow


-- go into motion flow mode and load a motion flow file

bip.motionmode = true

loadMoFlowFile mf (CSPATH + "scripts\\4floloop.mfe")


-- get the script of interest from the MoFlow and make it the active script:

mfs = mf.activeScript = mf.scripts[2]


-- the sequence of snippets for the script are in mfs.snippets.

-- get the first snippet (snippet_from) from the script:

snippet_from = mfs.snippets[1]


-- get the second snippet (snippet_to) from the script:

snippet_to = mfs.snippets[2]


-- search the transitions in snippet_from to find

-- the one whose toSnippet property == snippet_to:

theTrans = undefined

for trans in snippet_from.transitions where (trans.toSnippet == snippet_to) do

( theTrans = trans




-- which transition info used to go from snippet_from to snippet_to for

-- this particular transition is in the mfs.tranIndices array:

whichTrans = mfs.tranIndices[1]


--get the transition information for the from script item:

theTransInfo = theTrans.tranInfos[whichTrans]

See also

Biped MAXScript Extensions

MAXScript Extensions in character studio