ClipMatch

Introduced

v3.0

Categories

animmixer

Description

Matches up two clips by determining the proper PoseOffset to use to have them match at the start of the second clip.

Scripting Syntax

ClipMatch( [InputObj] );

Parameters

Parameter Type Description
InputObj String List of exactly two clips to match up.

Default Value: Current selection

Examples

VBScript Example

'
' Create a sphere and some paths for it to travel along.
'
set newSph = CreatePrim( "Sphere", "MeshSurface" )
set crv1 = SICreateCurve( "crvlist", 3, 0 )
SIAddPointOnCurveAtEnd crv1, -15, 0, 18, False
SIAddPointOnCurveAtEnd crv1, -6, 0, 5, False
SIAddPointOnCurveAtEnd crv1, -6, 0, -9, False
SIAddPointOnCurveAtEnd crv1, -23, 0, -14, False
set crv2 = SICreateCurve( "crvlist", 3, 0 )
SIAddPointOnCurveAtEnd crv2, 25, 0, -5, False
SIAddPointOnCurveAtEnd crv2, 14, 0, -4, False
SIAddPointOnCurveAtEnd crv2, 5, 0, -9, False
SIAddPointOnCurveAtEnd crv2, -4, 0, -10, False
SIAddPointOnCurveAtEnd crv2, -11, 0, 4, False
SIAddPointOnCurveAtEnd crv2, -3, 0, 10, False
SIAddPointOnCurveAtEnd crv2, 7, 0, 8, False
'
' Plot Actions of it moving along those paths (then delete the paths).
'
ApplyPath newSph, crv1, 1, 40, 2, True, True
set act1 = PlotToAction( newSph, newSph & "/kine.local.posx,kine.local.posy,kine.local.posz,kine.local.rotx,kine.local.roty,kine.local.rotz", "plot", 1, 40, 1, 20, 3, False, 0.01 )
DeleteObj crv1
ApplyPath newSph, crv2, 1, 40, 2, True, True
set act2 = PlotToAction( newSph, "sphere.kine.local.posx,sphere.kine.local.posy,sphere.kine.local.posz,sphere.kine.local.rotx,sphere.kine.local.roty,sphere.kine.local.rotz,sphere.kine.local.sclx,sphere.kine.local.scly,sphere.kine.local.sclz", "plot", 1, 40, 1, 20, 3, False, 0.01 )
DeleteObj crv2
'
' Put the Actions on the mixer, overlapping by a number of frames.
'
set trk1 = AddTrack( ActiveSceneRoot, , 0 )
set trk2 = AddTrack( ActiveSceneRoot, , 0 )
set clip1 = AddClip( ActiveSceneRoot, act1, , trk1, 20 )
set clip2 = AddClip( ActiveSceneRoot, act2, , trk2, 40 )
'
' Apply a character tag to indicate which object's transform to examine
' when determining the appropriate pose offset.  If you run ClipMatch
' non-interactively, you don't need this, you can just specify any "reference
' object" as the third-selected object.  A character tag is required
' when running the command interactively.
'
SelectObj newSph, , True
TagObject newSph, "CenterOfGravity"
'
' Run ClipMatch command, to determine the appropriate pose offset to
' apply to the "target" object, so that the reference object has the
' same global transform at the "match time".
'
ClipMatch clip1 & "," & clip2 & "," & newSph
AddTransition clip1, clip2, 0
SelectObj newSph, , True

See Also

OffsetValueMap