Compatible With ScriptsCompatible With ExpressionsCompatible With The Command Line

 

double CycleBranchMorphFrame (object root_1, object root_2, channel chan, frame frm, double weight )

 

Return Value: Morph the motion of the branch starting at root_1 (inclusive) on the chan channel to match that of the coorisponding item(s) in the branch starting at root_2. The motion of root_2 is sampled at frame frm.

 

Arguments:

root_1

branch to be modified

root_2

"target" branch

chan

channels to modify

frm

frame to take sample from

weight

amount of influence this morph has on the final shape of root_1

 

Here "morph" refers to blending the motion of items and not the traditional blending of geometry shapes. The root_2 hierarchy can have multiple morph shapes each referenced by the frame that they occur on with the frm argument. For example, if the chain's in question were muscles in a facial setup, then the root_2 hierarchy might have a "happy" shape set on frame 10, a "sad" shape on frome 20 and so on. Then you could make root_1 a blend of the two with two CycleBranchMorphFrame( ) functions where one references frame 10 and the other frame 20.

 

The weight argument determines how much influence the shape referenced at frm will have on the final shape of root_1. It is important to note that this function is designed to work with several other instances of the same function each with different frm and weight arguments.

 

When talking about morphs there always has to be some frame of reference, a target's difference from this frame of reference defines how it will change the item(s) to be morphed. In the case of morphing motion that frame of reference is the setup values of the target(s). In other words if an item has an xpos setup value of 5.0 and a value at frame 10 of 5.6 then using frame to as a target will move the morphed item +0.6 on xpos (assuming the target is full strength).

 

Since this version of the CycleBranch* functions is not additive each successive instance of this function will overpower all preceding instances. By instance I mean that each function has the same arguments save frm and weight. There is an additive version of this function.

 

See Also: CycleBranchMorphAddFrame( )

 

Example:

HappyFaceWeight
|_CycleBranchMorphFrame(Face, Face_Targets, motion, 10, [Slider:chan[ happy ] ] )
SadFaceWeight
|_CycleBranchMorphFrame(Face, Face_Targets, motion, 20, [Slider:chan[ sad ] ] )
HappyFaceWeight
|_CycleBranchMorphFrame(Face, Face_Targets, motion, 10, [Slider:chan[ happy ] ] )
SadFaceWeight
|_CycleBranchMorphFrame(Face, Face_Targets, motion, 20, [Slider:chan[ sad ] ] )

The motion of Face is determined to be a mix of the motion of Face_Targets at frame 10 and 20. The amount of influence each shape has on the result is determined by Slider's happy and sad channels. Note that since the sad morph is the last in the list it will overpower all of the other morphs when it's weight is set to 1.0.

Converted from CHM to HTML with chm2web Pro 2.82 (unicode)