v1.0
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.
oReturn = AddTrack( Model, [Compound], [Type], [Name], [InsertPosition] ); |
Returns the Track object.
| 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.
|
||||||||||||||||||||
| Name | String | Name of the new track. | ||||||||||||||||||||
| InsertPosition | Integer | Which track to insert this one on top of |
'
' 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
|
' 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
|