AddTrack

Introduced

v1.0

Categories

animmixer

Description

Creates a track for the specified animation mixer. Tracks are the clip containers used to sequence clips in the animation Mixer. There are five types of tracks in the mixer: animation, shape, audio, animation layer and cache.

Scripting Syntax

oReturn = AddTrack( Model, [Compound], [Type], [Name], [InsertPosition] );

Return Value

Returns the Track object.

Parameters

Parameter Type Description
Model String The model to add the track to.
Compound String The compound container (track owner) to add this track to.
Type Integer Type of mixer track to add.

Default Value: Determine track type from context.

Possible Values:

Description:

0 Animation track
1 Shape track
2 Audio track
3 Image track (not supported)
4 Switching track (not supported)
5 Animation Layer track
6 Cache track
Name String Name of the new track.
InsertPosition Integer Which track to insert this one on top of

Examples

1. VBScript Example

'
' This example builds a simple keyframed animation, puts it in an
' Action and instantiates it on the mixer, transitioning to a second
' (static) clip.
'
posParams = "/kine.local.posx,kine.local.posy,kine.local.posz"
' Create the object for our example.
set oSphere = CreatePrim( "Sphere", "MeshSurface" )
' Animate it and store an Action for the motion.
SetPositionKey oSphere, 1, -5, -5, 0
SetPositionKey oSphere, 30, 5, 5, 0
set oSourceAnim1 = StoreAction( , oSphere & posParams, 2, "Diagonal", True, 1, 30 )
' Store another source which is a static snapshot.
Translate oSphere, -5, 5, 0, siAbsolute, siView, siObj, siXYZ
set oSourceAnim2 = StoreAction( , oSphere & posParams, 1, "Static", True, 1, 10 )
' Create a track for the clips.
set oTrackAnim = AddTrack( oSphere, , 0, "SimpleAnim" )
' Instantiate the animation sources onto the track.
set oClipAnim1 = AddClip( "Scene_Root", oSourceAnim1, , oTrackAnim, 1 )
set oClipAnim2 = AddClip( "Scene_Root", oSourceAnim2, , oTrackAnim, 91 )
' Put a transition between the two clips.
AddTransition oClipAnim1, oClipAnim2, 0
'==================================================
' Helper method to key an object somewhere at a given frame.
'==================================================
sub SetPositionKey( in_oObj, in_frame, in_posX, in_posY, in_posZ )
        Translate in_oObj, in_posX, in_posY, in_posZ, siAbsolute, siParent, siObj, siXYZ
        SaveKey in_oObj & posParams, in_frame
end sub

2. VBScript Example

' This example demonstrates several mixer-related commands.  It
' makes a couple of shape keys and instantiates them on the mixer,
' transitioning between them.  Then it takes the shape animation,
' puts it into a compound clip and finally adds a bit more shape
' animation inside the compound.
' Create the object for our example.
set oSphere = CreatePrim( "Sphere", "MeshSurface" )
' Store a couple of shape keys (we use the temporarily-applied bulge
' just to have an interesting shape for the second key.
set oSourceShape1 = StoreShapeKey( oSphere, , siShapeLocalReferenceMode )
set oBulge = ApplyOp( "Bulge", oSphere, 3, siPersistentOperation )
set oSourceShape2 = StoreShapeKey( oSphere, , siShapeLocalReferenceMode )
DeleteObj oBulge
' Create a temporary track to put the clips onto.
set oTrackTemp = AddTrack( oSphere, , 1 )
' Instantiate the shape sources onto the track.
set oClipShape1 = AddClip( "Scene_Root", oSourceShape1, , oTrackTemp, 1 )
set oClipShape2 = AddClip( "Scene_Root", oSourceShape2, , oTrackTemp, 90 )
' Put a transition between the two clips.
AddTransition oClipShape1, oClipShape2, 0
' Create a track for a shape compound, then put the two
' shape clips into it.
set oTrackCpd = AddTrack( "Scene_Root", , 1, "ForCompound" )
set oCompound = CreateCompound( "Scene_Root", oClipShape1 & "," & oClipShape2, _
        , oTrackCpd, 1, "MyCompound" )
' Add a new track inside the shape compound, on which
' we will instantiate a couple more sources.  Note that
' we insert it before the other track in the compound,
' so it will appear first.
set oTrackInsideCpd = AddTrack( "Scene_Root", oCompound, , "Extras", 0 )
set oClipShape1 = AddClip( "Scene_Root", oSourceShape2, , oTrackInsideCpd, 30 )
set oClipShape2 = AddClip( "Scene_Root", oSourceShape1, , oTrackInsideCpd, 50 )
SetValue oClipShape2 & ".actionclip.timectrl.scale", 0.5
SetDefaultWeight oClipShape1, siWeightGaussian, 0
SetDefaultWeight oClipShape2, siWeightGaussian, 0
' Get rid of this temporary track...
DeleteObj oTrackTemp