Layers
Common Properties
Layer
Common properties for all layers
Composition Diagram for Layer
The ty
property defines the specific layer type based on the following values:
ty |
Type |
---|---|
0 |
Precomposition Layer |
2 |
Image Layer |
3 |
Null Layer |
1 |
Solid Layer |
4 |
Shape Layer |
None |
Unknown layer types |
Visual Layer
Layer used to affect visual elements
Composition Diagram for Visual Layer
Attribute | Type | Title | Description |
---|---|---|---|
nm |
string |
Name |
Human readable name, as seen from editors and the like |
hd |
boolean |
Hidden |
Whether the layer is hidden |
ty |
integer |
Type |
Layer Type |
ind |
integer |
Index |
Index that can be used for parenting and referenced in expressions |
parent |
integer |
Parent Index |
Must be the |
ip |
number |
In Point |
Frame when the layer becomes visible |
op |
number |
Out Point |
Frame when the layer becomes invisible |
ks |
Transform |
Transform |
Layer transform |
ao |
0-1 integer |
Auto Orient |
If 1, the layer will rotate itself to match its animated position path |
tt |
Matte Mode |
Matte Mode |
Defines the track matte mode for the layer |
tp |
integer |
Matte Parent |
Index of the layer used as matte, if omitted assume the layer above the current one |
masksProperties |
array of Mask |
Masks |
Optional array of masks for the layer. |
Parenting
Layer parenting offers a way to connect layers such that the movement of one layer (child) follows the movement of another (parent). Multiple child layers can reference the same parent (this is useful for applying the same transform animation to a group of layers).
When the parent
property points to another layer, the referencing layer's current transformation
matrix (CTM) is composed with the parent CTM:
Parenting is transitive, and reference cycles are not allowed (undefined behavior).
Hidden Layers
The hidden flag hd
determines whether a layer is rendered: hidden layers are not rendered as
part of the normal layer tree, but their properties and content are evaluated when used as a
reference target in other contexts.
Specifically, hidden layers
- contribute to a layer's total transform when used as a
parent
- contribute to a layer's track matte when used as a matte source
hd
only affects the layer for which it is defined, it does not transitively apply to other
referencing layers.
Mattes
A matte allows using a layer as a mask for another layer.
The way it works is the layer defining the mask has a tt
attribute with the
appropriate value.
The layer being masked is indicated by the tp
attribute, which has the index (ind
) of the layer that is being masked.
In this example there's a layer with a rectangle and a star being masked by an ellipse:
Example
Layer types
Shape Layer
Layer containing Shapes
Composition Diagram for Shape Layer
Attribute | Type | Title | Description |
---|---|---|---|
nm |
string |
Name |
Human readable name, as seen from editors and the like |
hd |
boolean |
Hidden |
Whether the layer is hidden |
ty |
integer = 4 |
Type |
Layer type |
ind |
integer |
Index |
Index that can be used for parenting and referenced in expressions |
parent |
integer |
Parent Index |
Must be the |
ip |
number |
In Point |
Frame when the layer becomes visible |
op |
number |
Out Point |
Frame when the layer becomes invisible |
ks |
Transform |
Transform |
Layer transform |
ao |
0-1 integer |
Auto Orient |
If 1, the layer will rotate itself to match its animated position path |
tt |
Matte Mode |
Matte Mode |
Defines the track matte mode for the layer |
tp |
integer |
Matte Parent |
Index of the layer used as matte, if omitted assume the layer above the current one |
masksProperties |
array of Mask |
Masks |
Optional array of masks for the layer. |
shapes |
array of Graphic Element |
Shapes |
Shapes |
Image Layer
Layer containing an image
Composition Diagram for Image Layer
Attribute | Type | Title | Description |
---|---|---|---|
nm |
string |
Name |
Human readable name, as seen from editors and the like |
hd |
boolean |
Hidden |
Whether the layer is hidden |
ty |
integer = 2 |
Type |
Layer type |
ind |
integer |
Index |
Index that can be used for parenting and referenced in expressions |
parent |
integer |
Parent Index |
Must be the |
ip |
number |
In Point |
Frame when the layer becomes visible |
op |
number |
Out Point |
Frame when the layer becomes invisible |
ks |
Transform |
Transform |
Layer transform |
ao |
0-1 integer |
Auto Orient |
If 1, the layer will rotate itself to match its animated position path |
tt |
Matte Mode |
Matte Mode |
Defines the track matte mode for the layer |
tp |
integer |
Matte Parent |
Index of the layer used as matte, if omitted assume the layer above the current one |
masksProperties |
array of Mask |
Masks |
Optional array of masks for the layer. |
refId |
string |
Reference Id |
ID of the image as specified in the assets |
Null Layer
Layer with no data, useful to group layers together
Composition Diagram for Null Layer
Attribute | Type | Title | Description |
---|---|---|---|
nm |
string |
Name |
Human readable name, as seen from editors and the like |
hd |
boolean |
Hidden |
Whether the layer is hidden |
ty |
integer = 3 |
Type |
Layer type |
ind |
integer |
Index |
Index that can be used for parenting and referenced in expressions |
parent |
integer |
Parent Index |
Must be the |
ip |
number |
In Point |
Frame when the layer becomes visible |
op |
number |
Out Point |
Frame when the layer becomes invisible |
ks |
Transform |
Transform |
Layer transform |
ao |
0-1 integer |
Auto Orient |
If 1, the layer will rotate itself to match its animated position path |
tt |
Matte Mode |
Matte Mode |
Defines the track matte mode for the layer |
tp |
integer |
Matte Parent |
Index of the layer used as matte, if omitted assume the layer above the current one |
masksProperties |
array of Mask |
Masks |
Optional array of masks for the layer. |
Solid Layer
Solid color, rectangle-shaped layer
Composition Diagram for Solid Layer
Attribute | Type | Title | Description |
---|---|---|---|
nm |
string |
Name |
Human readable name, as seen from editors and the like |
hd |
boolean |
Hidden |
Whether the layer is hidden |
ty |
integer = 1 |
Type |
Layer type |
ind |
integer |
Index |
Index that can be used for parenting and referenced in expressions |
parent |
integer |
Parent Index |
Must be the |
ip |
number |
In Point |
Frame when the layer becomes visible |
op |
number |
Out Point |
Frame when the layer becomes invisible |
ks |
Transform |
Transform |
Layer transform |
ao |
0-1 integer |
Auto Orient |
If 1, the layer will rotate itself to match its animated position path |
tt |
Matte Mode |
Matte Mode |
Defines the track matte mode for the layer |
tp |
integer |
Matte Parent |
Index of the layer used as matte, if omitted assume the layer above the current one |
masksProperties |
array of Mask |
Masks |
Optional array of masks for the layer. |
sw |
integer |
Width |
Solid rectangle width |
sh |
integer |
Height |
Solid rectangle height |
sc |
Hex Color |
Color |
Solid fill color |
Precomposition Layer
Layer that renders a Precomposition asset
Composition Diagram for Precomposition Layer
Attribute | Type | Title | Description |
---|---|---|---|
nm |
string |
Name |
Human readable name, as seen from editors and the like |
hd |
boolean |
Hidden |
Whether the layer is hidden |
ty |
integer = 0 |
Type |
Layer type |
ind |
integer |
Index |
Index that can be used for parenting and referenced in expressions |
parent |
integer |
Parent Index |
Must be the |
ip |
number |
In Point |
Frame when the layer becomes visible |
op |
number |
Out Point |
Frame when the layer becomes invisible |
ks |
Transform |
Transform |
Layer transform |
ao |
0-1 integer |
Auto Orient |
If 1, the layer will rotate itself to match its animated position path |
tt |
Matte Mode |
Matte Mode |
Defines the track matte mode for the layer |
tp |
integer |
Matte Parent |
Index of the layer used as matte, if omitted assume the layer above the current one |
masksProperties |
array of Mask |
Masks |
Optional array of masks for the layer. |
refId |
string |
Reference Id |
ID of the precomp as specified in the assets |
w |
integer |
Width |
Width of the clipping rect |
h |
integer |
Height |
Height of the clipping rect |
sr |
number |
Time Stretch |
Time Stretch |
st |
number |
Start Time |
Start Time |
tm |
Scalar |
Time Remap |
Timeline remap function (frame index -> time in seconds) |
Time Stretch
The st
property specifies a start time offset, while sr
defines a time stretch factor,
to be applied when evaluating animated properties pertaining to the layer:
sr
values less than increase the layer playback speed, while values greater than
decrease it ("stretching" the layer timeline).
Example
1 |
Time Remap
The tm
property specifies a time remap function as an animatable property, allowing full control
over the precomp timeline (subset, speedup/slowdown, reverse, frame-freeze, or any other arbitrary
transformation).
It maps the current layer time (in the frame index domain) to a precomp time expressed in seconds, and evaluates all animatable precomp properties based on the new time value:
Note: the global frame rate factor (Animation fr
property) is
required to convert back into the frame index domain.
When both time stretch (sr
) and time remap (tm
) are specified, time stretch is applied first.
Example