Sources and Clips


At the most simple level, any data that can be instantiated as a clip is called a source. This covers a broad range of data, from animation in the Animation Mixer to an image in the FxTree. The word source can refer to the atomic data element that drives a parameter (see Low-Level (Parameter-Based) Animation) or to the action, shape, audio, or image on which a clip is instantiated.

It can be confusing understanding where a clip fits into the SDK system and where its corresponding source fits in, so let's start by describing clips, because they basically define what a source can be.


In Softimage, there are basically three categories of clips, as described in this table:

Clip Category

Softimage Object Model





Clip ShapeClip ClipContainer Mixer





Instance of audio or some animation in the Animation Mixer. In the SDK, anything accessible from the Mixer usually uses the Clip interface.


ShapeClip is a specialization of Clip but does not define any methods or functions of its own.

The Animation Mixer also uses the concept of compound clips, which are basically containers that nest related clips, storing their transitions and weights.





As a texture (for example, in a texture projection or in the FxTree). Image clips are stored under the scene or their shader/material owner.


ImageClips can also be manipulated in the Mixer.



The first two categories in the table above are a generalization of mixer clip types which describe any type of clip that can be manipulated in the Mixer (see the siClipType constant). Any clip returns one of the siClipType values from the SIObject.Type or SIObject::GetType property.


There are basically two kinds of sources (apart from a DataSource, which is a piece of data or logic that drives the animated parameter): a reference to a file on disk (a Source) and a container for combining one or more actions (an ActionSource or ActionSource).

Reference-type Source or Source (audio and image sources) can be instantiated in the mixer.

Action-type sources (see ActionSource or ActionSource) are usually manipulated in the context of the mixer. They hold other action sources, low-level animation, shape animation, etc. The components of an ActionSource or ActionSource are called AnimationSourceItems or AnimationSourceItems.


One of the most important concepts with action sources is the relative names. Action sources are stored with relatives names so that they are not tied to a specific model. For more information, see the Relative Name topic.