Every type of layer has the same basic qualities.
- It can be pointed to by a LayerInstance.
- It contains something, usually a single data structure.
- It can be transformed via a matrix.
The following is a list of the layer types for Anari.
Contains a FlexMap of static layers.
A Collection Layer contains frames, like an SOL, but it does not sync with the external timeline. Instead, these frames are called directly using an externally-accessible parameter. This allows for accelerated lip-sync and similar behavior, much like Keyframe Caddy is for Flash.
This will also accelerate GUI design by creating a button or similar such element in a collection layer, and linking interactive events to frames. (This also defeats the infamous "frame 1 glitch" present in Flash.)
Contains a Skeleton (tree).
A rig layer contains the skeleton, static layers, and collection layers that make up a single posable character. The advantage of a dedicated rig layer is (besides performance) that we can build the GUI to allow clicking a layer and seeing/changing all of the contained collections, such as eyes and mouths.
Contains a FlexBit of Anari drawing instructions.
Contains a Timeline.
There are two behaviors for this type of layer.
This mode contains completely independent timeline, with its own frames and layers. This allows for the timeline in a Timeline Layer to be controlled separately from the external timeline that contains the layer. (This is analogous in some ways to Flash's "MovieClip" symbol.)
This mode keeps the layer's frames in sync with the timeline the layer is contained in. (This is analogous in some ways to Flash's "Graphic" symbol.)
Observe the following example. * indicates where the Timeline Layer is added.
|External Frame #||1||2||3||4||5*||6||7||8||9||10||11||12||13||14||15||16||17||18||19||20|
|Timeline Frame #||1||2||3||4||5||6||7||8||9||10||11||12||13||14||15||16|