Object Hierarchy | Related C++ Class: ClipContainer









The ClipContainer object can represent either the Mixer or a compound clip. Both can contain other Clips, Tracks and Transitions.

This object provides access to the basic elements of the mixer: clips, tracks, transitions, and ClipRelations.

You can create a compound clip with the CreateCompound command.


AddCustomOp AddICEAttribute AddProperty AddProperty2
AddRelation AddScriptedOp AddScriptedOpFromFile AnimatedParameters2
BelongsTo operator EvaluateAt GetICEAttributeFromName IsA
IsAnimated2 IsClassOf operator IsEqualTo operator IsKindOf
IsLocked operator IsSelected operator LockOwners RemoveICEAttribute
SetAsSelected operator SetCapabilityFlag operator SetLock TaggedParameters


Application BranchFlag operator Capabilities operator Categories
Clips Effect EvaluationID Families operator
FullName operator Help HierarchicalEvaluationID ICEAttributes
LockLevel operator LockMasters operator LockType operator MappedItems
Model Name operator NestedObjects NestedRelations
ObjectID Origin OriginPath Owners
PPGLayout operator Parameters operator Parent Parent3DObject
Properties Relations Selected operator Source
TimeControl Tracks Transitions Type operator


Python Example

# This example demonstrates how to create a compound clip from scripting.
# It also shows that when retrieving clips from the ClipContainer it only
# returns clips that are on tracks nested directly under it.
Application.NewScene( "", False )
oRoot = Application.ActiveSceneRoot
oCube = oRoot.AddGeometry( "Cube", "MeshSurface")
# Creating the first animation source
sParams = "cube.kine.local.posx,cube.kine.local.posy,cube.kine.local.posz"
oSource = Application.StoreAction(oRoot, sParams, 1, "StoredStaticPose", 1, 1, 5, 0, 0)
# Creating the first clip
oClip = Application.AddClip(oRoot, oSource)     
Application.LogMessage("First created clip " + oClip.FullName )
oCube.Parameters("posx").Value  =  3.0
# Creating the second animation source
oSource2 = Application.StoreAction(oRoot, sParams, 1, "StoredStaticPose", 1, 7, 9, 0, 0)
# Creating the second clip
oClip2 = Application.AddClip(oRoot, oSource2)
Application.LogMessage("Second created clip " + oClip2.FullName)
def PrintClips(oClipCollection):
        "This function print the clip names contained in a clip collection"
        for i in range(oClipCollection.Count):
                Application.LogMessage("Clip " +  oClipCollection(i).FullName)
oMixer = oRoot.Mixer
Application.LogMessage("List of clips retrieved from the container")
# Creating a compound clip from the clips created earlier
myClips = [oClip, oClip2]
oCompound = Application.CreateCompound(oRoot, myClips)
Application.LogMessage("Compound clip " + oCompound.FullName )
Application.LogMessage("List of clips retrieved from the compound")
# Now retrieving once again the clips from under the mixer.
# This should only return the CompoundClip.
Application.LogMessage("List of clips retrieved from the mixer after the creation of the compound");
# Output of above script:
#INFO : First created clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
#INFO : Second created clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip
#INFO : This function print the clip names contained in a clip collection
#INFO : List of clips retrieved from the container
#INFO : Clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
#INFO : Clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip
#INFO : Compound clip Mixer.Mixer_Anim_Track.CompoundAction_Clip
#INFO : List of clips retrieved from the compound
#INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip.Mixer_Anim_Track3.StoredStaticPose_Clip
#INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip.Mixer_Anim_Track4.StoredStaticPose1_Clip
#INFO : List of clips retrieved from the mixer after the creation of the compound
#INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip

See Also

CreateCompound Clip Model.Mixer Track Transition EqualizeAction