After Effects CS6 Scripting Guide

After%20Effects%20CS6%20Scripting%20Guide

After%20Effects%20CS6%20Scripting%20Guide

After Effects - CS6 - Scripting Guide After-Effects-CS6-Scripting-EN Free User Guide for Adobe After Effects Software, Manual

After%20Effects%20CS6%20Scripting%20Guide

After-Effects-CS6-Scripting-Guide

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 193

DownloadAfter Effects CS6 Scripting Guide After-Effects-CS6-Scripting-Guide
Open PDF In BrowserView PDF
ADOBE® AFTER EFFECTS® CS6
SCRIPTING GUIDE

DRAFT

© Copyright 1992-2012 Adobe Systems Incorporated. All rights reserved.
Adobe® After Effects® CS6 Scripting Guide
NOTICE: All information contained herein is the property of Adobe Systems Incorporated. No part of this publication (whether in hardcopy or
electronic form) may be reproduced or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or
otherwise, without the prior written consent of Adobe Systems Incorporated. The software described in this document is furnished under
license and may only be used or copied in accordance with the terms of such license.
This publication and the information herein is furnished AS IS, is subject to change without notice, and should not be construed as a
commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or
inaccuracies, makes no warranty of any kind (express, implied, or statutory) with respect to this publication, and expressly disclaims any and
all warranties of merchantability, fitness for particular purposes, and noninfringement of third party rights.
Any references to company names in sample templates are for demonstration purposes only and are not intended to refer to any actual
organization.
Adobe, the Adobe logo, After Effects, and Photoshop are either registered trademarks or trademarks of Adobe Systems Incorporated in the
United States and/or other countries.
Apple, Mac, and Macintosh are trademarks of Apple Computer, Inc., registered in the United States and other countries. Microsoft, and
Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. JavaScript and all
Java-related marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. UNIX is a
registered trademark of The Open Group. All other trademarks are the property of their respective owners.
All other trademarks are the property of their respective owners.
If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished
under license and may be used or copied only in accordance with the terms of such license. Except as permitted by any such license, no part
of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording,
or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note that the content in this guide is protected
under copyright law even if it is not distributed with software that includes an end user license agreement.
The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a
commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or
inaccuracies that may appear in the informational content contained in this guide.
Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.

Overview

Introduction to scripting in After Effects
A script is a series of commands that tells an application to perform a series of operations. You can use scripts
in most Adobe applications to automate repetitive tasks, perform complex calculations, and even use some
functionality not directly exposed through the graphical user interface. For example, you can direct After
Effects to reorder the layers in a composition, find and replace source text in text layers, or send an e-mail
message when rendering is complete.
See “Examples” on page 191 for examples of what scripts can do.
Although both the After Effects expressions language and the After Effects ExtendScript scripting language are
based on JavaScript, the expressions features and scripting features of After Effects are separate and distinct.
Expressions cannot access information from scripts (such as variables and functions). Whereas a script tells an
application to do something, an expression says that a property is something. However, because the After
Effects expression language and ExtendScript are both based on JavaScript, familiarity with either one is very
helpful in understanding the other.
The heart of a scriptable application is the object model. When you use Adobe After Effects, you create projects,
compositions, and render queue items along with all of the elements that they contain: footage, images, solids,
layers, masks, effects, and properties. Each of these items, in scripting terms, is an object. This guide describes
the ExtendScript objects that have been defined for After Effects projects.
The After Effects object model is composed of a project, items, compositions, layers, and render queue items.
Each object has its own special attributes, and every object in an After Effects project has its own identity
(although not all are accessible to scripting). You should be familiar with the After Effects object model in order
to create scripts.
NOTE: JavaScript objects normally referred to as “properties” are consistently called “attributes” in this guide, to
avoid confusion with After Effects’ own definition of a property (an animatable value of an effect, mask, or
transform within an individual layer).
Nearly all of what scripting can accomplish replicates what can be done by means of the After Effects graphical
user interface. A thorough knowledge of the application itself and its graphical user interface is essential to
understanding how to use scripting in After Effects.

The ExtendScript language
After Effects scripts use the Adobe ExtendScript language, which is an extended form of JavaScript used by
several Adobe applications, including Photoshop, Illustrator, and InDesign. ExtendScript implements the
JavaScript language according to the ECMA-262 specification. The After Effects scripting engine supports the
3rd Edition of the ECMA-262 Standard, including its notational and lexical conventions, types, objects, expressions, and statements. ExtendScript also implements the E4X ECMA-357 specification, which defines access
to data in XML format.
ExtendScript defines a global debugging object, the dollar ($) object, and a reporting utility for ExtendScript
elements, the ExtendScript Reflection interface.

3

Overview

The ExtendScript Toolkit (ESTK)

4

File and Folder Objects: Because path name syntax is very different in different operating systems, Adobe

ExtendScript defines Fi l e and Fol d e r objects to provide platform-independent access to the underlying file
system.
ScriptUI User Interface Module: The ExtendScript ScriptUI module provides the ability to create and interact
with user interface elements. ScriptUI provides an object model for windows and UI control elements that you
can use to create a user interface for your scripts.
Tools and Utilities: In addition, ExtendScript provides tools and features such as a localization utility for
providing user-interface string values in different languages and global functions for displaying short
messages in dialog boxes (a l e r t , c on f i r m , and prompt ).
External Communication: ExtendScript provides a S o cke t object that allows you to communicate with remote

systems from your After Effects scripts.
Interapplication Communication: ExtendScript provides a common scripting environment for all Adobe
applications, and allows interapplication communication through scripts.

The ExtendScript Toolkit (ESTK)
After Effects includes a script editor and debugger, the ExtendScript Toolkit (ESTK), which provides a convenient interface for creating and testing your own scripts.
To start the ESTK, choose File > Scripts > Open Script Editor.
If you choose to use another text editor to create, edit, and save scripts, be sure to choose an application that
does not automatically add header information when saving files and that saves with Unicode (UTF-8)
encoding. In many text editors, you can set preferences for saving with UTF-8 encoding. Some applications
(such as Microsoft Word) by default add header information to files that can cause “line 0” errors in scripts,
causing them to fail.
For detailed information on the ExtendScript Toolkit, see the JavaScript Tools Guide.

The .jsx and .jsxbin file-name extensions
ExtendScript script files are distinguished by the . js x file-name extension, a variation on the standard . js
extension used with JavaScript files. After Effects scripts must include the . js x file extension in order to be
properly recognized by the application. Any UTF-8-encoded text file with the .j sx extension is recognized as
an ExtendScript file.
You can use the ExtendScript Toolkit to export a binary version of an ExtendScript file, which has the
extension .j sxbi n . Such a binary file may not be usable with all of the scripting integration features in After
Effects.

Activating full scripting features
The default is for scripts to not be allowed to write files or send or receive communication over a network. To
allow scripts to write files and communicate over a network, choose Edit > Preferences > General (Windows)
or After Effects > Preferences > General (Mac OS), and select the Allow Scripts To Write Files And Access
Network option.

4

Overview

Loading and running scripts

5

Any After Effects script that contains an error preventing it from being completed generates an error message
from the application. This error message includes information about the nature of the error and the line of the
script on which it occurred. The ExtendScript Toolkit (ESTK) debugger can open automatically when the
application encounters a script error. This feature is disabled by default so that casual users do not encounter
it. To activate this feature, choose Preferences > General, and select Enable JavaScript Debugger.

Loading and running scripts
Running scripts directly from the File > Scripts menu
When After Effects starts, it searches the Scripts folder for scripts to load. Loaded scripts are available from
the File > Scripts menu.
To run a loaded script, choose File > Scripts > [script name].
If you edit a script while After Effects is running, you must save your changes for the changes to be applied. If
you place a script in the Scripts folder while After Effects is running, you must restart After Effects for the
script to appear in the Scripts menu, though you can immediately run the new script using the Run Script File
command.

Running scripts using File > Scripts > Run Script File
To run a script that has not been loaded, choose File > Scripts > Run Script File, locate and select a script, and
click Open.

Running scripts from the command line, a batch file, or an AppleScript script
If you are familiar with how to run a script from the command line in Windows or via AppleScript, you can
send a script directly to the open After Effects application, so that the application automatically runs the script.
To run a script from the command line, call afterfx.exe from the command line. Use the -r switch and the full
path of the script to run as arguments. This command does not open a new instance of the After Effects application; it runs the script in the existing instance.
Example (for Windows):
af t e r f x -r c :\ s c r ipt _ p at h\ e x ampl e _ s c r ipt . j s x

You can use this command-line technique—together with the software that comes with a customizable
keyboard—to bind the invocation of a script to a keyboard shortcut.
Following are examples of Windows command-line entries that will send an After Effects script to the application without using the After Effects user interface to execute the script.
In the first example, you copy and paste your After Effects script directly on the command line and then run
it. The script text appears in quotation marks following the af te r fx .e x e - s command:
af t e r f x . e xe -s " a l e r t ( " You jus t s e nt an a l e r t to A f t e r E f fe c t s " ) "

Alternatively, you can specify the location of the JSX file to be executed. For example:
af t e r f x . e xe -r c: \ my D o c u m e nt s \ S c r ipt s \you rA E S c r ipt He re. j s x
af t e r f x . e xe -r "c : \myD o c u m e nt s \S cr ipt s \ S c r ipt Nam e w it h Sp a c e s . j s x "

5

Overview

Loading and running scripts

6

How to include After Effects scripting in an AppleScript (Mac OS)
Following are three examples of AppleScript scripts that will send an existing JSX file containing an After
Effects script to the application without using the After Effects user interface to execute the script.
In the first example, you copy your After Effects script directly into the Script Editor and then run it. The script
text appears within quotation marks following the DoScript command, so internal quotes in the script must
be escaped using the backslash escape character, as follows:
te l l appl i c at i on " Ad o b e A f t e r E f fe c t s C S 6 "
D o S c r ipt " a l e r t ( \" You ju s t s e nt an a l e r t to A f te r E f fe c t s \" ) "
e n d te l l

Alternatively, you could display a dialog box asking for the location of the JSX file to be executed, as follows:
s e t t he Fi l e to cho os e f i l e
te l l appl i c at i on " Ad o b e A f t e r E f fe c t s C S 6 "
D o S c r ipt t he Fi l e
e n d te l l

Finally, this script is perhaps most useful when you are working directly on editing a JSX script and want to
send it to After Effects for testing or to run. To use it effectively you must enter the application that contains
the open JSX file (in this example it is TextEdit); if you do not know the proper name of the application, type
in your best guess to replace “TextEdit” and AppleScript prompts you to locate it.
Simply highlight the script text that you want to run, and then activate this AppleScript:
(*
T hi s s c r ipt s e nds t he c u r re nt s e l e c t i on to Af te r E f fe c t s a s a s c r ipt .
*)
te l l appl i c at i on " Te x t E d it "
s e t t he _ s c r ipt to te xt of f ront d o c u me nt
e n d te l l
te l l appl i c at i on " Ad o b e A f t e r E f fe c t s C S 6 "
a c t iv ate
D o S c r ipt t he _ s c r ipt
e n d te l l

Running scripts automatically during application startup or shutdown
Within the Scripts folder are two folders called Startup and Shutdown. After Effects runs scripts in these
folders automatically, in alphabetical order, on starting and quitting, respectively.
In the Startup folder you can place scripts that you wish to execute at startup of the application. They are
executed after the application is initialized and all plug-ins are loaded.
Scripting shares a global environment, so any script executed at startup can define variables and functions that
are available to all scripts. In all cases, variables and functions, once defined by running a script that contains
them, persist in subsequent scripts during a given After Effects session. Once the application is quit, all such
globally defined variables and functions are cleared. Be sure to give variables in scripts unique names, so that
a script does not inadvertently reassign global variables intended to persist throughout a session.
Attributes can also be added to existing objects such as the Application object (see “Application object” on
page 17) to extend the application for other scripts.

6

Overview

Loading and running scripts

7

The Shutdown folder scripts are executed as the application quits. This occurs after the project is closed but
before any other application shutdown occurs.

Running scripts from the Window menu
Scripts in the ScriptUI Panels folder are available from the bottom of the Window menu. If a script has been
written to provide a user interface in a dockable panel, the script should be put in the ScriptUI folder. ScriptUI
panels work much the same as the default panels in the After Effects user interface.
Instead of creating a Window object and adding controls to it, a ScriptUI Panels script uses the t h is object that
represents the panel. For example, the following code adds a button to a panel:
v ar myPan el = t hi s ;
myPan el . a d d ( " butt on " , [ 1 0 , 1 0 , 1 0 0 , 3 0 ] , " To ol # 1 " ) ;

If your script creates its user interface in a function, you cannot use t hi s as it will refer to the function itself,
not the panel. In this case, you should pass the t h i s object as an argument to your function. For example:
f u nc t i on c re ateU I (t hisObj) {
v ar myPan el = t hi s O bj ;
myPan el . a d d ( " butt on " , [ 1 0 , 1 0 , 1 0 0 , 3 0 ] , " To ol # 1 " ) ;
re tu r n myPanel ;
}
var myTo ol sPanel = c re ateU I (t his) ;

You cannot use the File > Scripts > Run Script File menu command to run a script that refers to t h is . To make
your script work with either a Window object (accessible from the File > Scripts menu) or a native panel
(accessible from the Window menu), check whether t h is is a Panel object. For example:
f u nc t i on c re ateU I (t hisObj) {
v ar myPan el = ( t h i s O bj i nst anc e of Pan el ) ? t h i s O bj : n e w Wi n d ow( " p a l e tte " , " My To o ls ",
[1 00, 100 , 300 , 30 0]) ;
myPan el . a d d ( " butt on " , [ 1 0 , 1 0 , 1 0 0 , 3 0 ] , " To ol # 1 " ) ;
re tu r n myPanel ;
}
var myTo ol sPanel = c re ateU I (t his) ;

Stopping a running script
A script can be stopped by pressing Esc or Cmd+period (in Mac OS) when the After Effects or the script’s user
interface has focus. However, a script that is busy processing a lot of data might not be very responsive.

7

After Effects scripting reference

This chapter lists and describes JavaScript classes, objects, methods, attributes, and global functions defined by
After Effects.
The After Effects scripting engine supports ExtendScript, Adobe’s extended version of JavaScript, which implements the 3rd Edition of the ECMA-262 Standard, including its notational and lexical conventions, types,
objects, expressions and statements. For a complete listing of the keywords and operators included with
ECMAScript, refer to E C M A- 2 6 2. p d f , available at www.ecma-international.org/publications/standards/Ecma262.htm. For an overview of the most common keywords and statements available from ECMA-262, see
“JavaScript keywords and statement syntax” on page 8.

Elements of basic JavaScript relevant to After Effects scripting
JavaScript variables
Scripting shares a global environment, so any script executed at startup can define variables and functions that
are available to all scripts. In all cases, variables and functions, once defined by running a script that contains
them, persist in subsequent scripts during a given After Effects session. Once the application is quit, all such
globally defined variables and functions are cleared. Scripters should be careful about giving variables in scripts
unique names, so that a script does not inadvertently reassign global variables intended to persist throughout
a session.

JavaScript keywords and statement syntax
Although it is not possible to provide an exhaustive resource describing usage of JavaScript, the following tables
provide an overview of keywords, statements, operators, precedence, and associativity.
The following table lists and describes all keywords and statements recognized by the After Effects scripting
engine.

Table 1

Keywords and Statement Syntax

Keyword/Statement

Description

bre a k

Standard JavaScript; exit the currently executing loop.

c ont i nu e

Standard JavaScript; cease execution of the current loop iteration.

c as e

Label used in a sw itch statement.

d e f au lt

Label used in a sw itch statement when a c as e label is not found.

d o.. . w h i l e

Standard JavaScript construct. Similar to the w hi l e loop, except loop condition evaluation occurs
at the end of the loop.

f a ls e

Literal representing the Boolean false value.

for

Standard JavaScript loop construct.

8

After Effects scripting reference

Elements of basic JavaScript relevant to After Effects scripting

9

Keyword/Statement

Description

for. .. i n

Standard JavaScript construct. Provides a way to easily loop through the properties of an object.

f u nc t i on

Used to define a function.

i f / i f .. . el s e

Standard JavaScript conditional constructs.

ne w

Standard JavaScript constructor statement.

nu l l

Assigned to a variable, array element, or object property to indicate that it does not contain a legal
value.

re tu r n

Standard JavaScript way of returning a value from a function or exiting a function.

sw itch

Standard JavaScript way of evaluating a JavaScript expression and attempting to match the expression’s value to a c a s e label.

t hi s

Standard JavaScript method of indicating the current object.

true

Literal representing the Boolean true value.

u n d e f i ne d

Indicates that the variable, array element, or object property has not yet been assigned a value.

v ar

Standard JavaScript syntax used to declare a local variable.

w hi l e

Standard JavaScript construct. Similar to the d o ...w h i l e loop, except loop condition evaluation
occurs at the beginning of the loop.

w it h

Standard JavaScript construct used to specify an object to use in subsequent statements.

JavaScript operators
The following tables list and describe all operators recognized by the After Effects scripting engine and show
the precedence and associativity for all operators.

Table 2

Description of Operators

Operators

Description

ne w

Allocate object.

d el e te

Deallocate object.

t yp e of

Returns data type.

voi d

Returns undefined value.

.

Structure member.

[]

Array element.

()

Function call.

++

Pre- or post-increment.

––

Pre- or post-decrement.

–

Unary negation or subtraction.

~

Bitwise NOT.

!

Logical NOT.

*

Multiply.

/

Divide.

9

After Effects scripting reference

Elements of basic JavaScript relevant to After Effects scripting

10

Operators

Description

%

Modulo division.

+

Add.

<<

Bitwise left shift.

>>

Bitwise right shift.

>>>

Unsigned bitwise right shift.

<

Less than.

<=

Less than or equal.

>

Greater than.

>=

Greater than or equal.

==

Equal.

!=

Not equal.

&

Bitwise AND.

^

Bitwise XOR.

|

Bitwise OR.

&&

Logical AND.

||

Logical OR.

?:

Conditional (ternary).

=

Assignment.

+=

Assignment with add operation.

–=

Assignment with subtract operation.

*=

Assignment with multiply operation.

/=

Assignment with divide operation.

%=

Assignment with modulo division operation.

<<=

Assignment with bitwise left shift operation.

>>=

Assignment with bitwise right shift operation.

>>>=

Assignment with unsigned bitwise right shift operation.

&=

Assignment with bitwise AND operation.

^=

Assignment with bitwise XOR operation.

|=

Assignment with bitwise OR operation.

,

Multiple evaluation.

10

After Effects scripting reference

The After Effects Object Model

11

Table 3

Operator Precedence

Operators (highest precedence to lowest)

Associativity

[] , ( ), .

left to right

n e w, d el e te , – ( u n ar y n e g at i on) , ! , t y p e of, voi d , + + , – –

right to left

*, /, %

left to right

+ , – ( su bt r a c t i on)

left to right

<<, >>, >>>

left to right

<, <=, >, >=

left to right

= =, ! =

left to right

&

left to right

^

left to right

|

left to right

&&

left to right

||

left to right

?:

right to left

= , / =, % =, < < = , > > = , > > > =, & =, ^= , | =, += , – =, * =

right to left

,

left to right

The After Effects Object Model
As you look through this reference section, which is organized alphabetically by object, you can refer to the
following diagrams for an overview of where the various objects fall within the hierarchy, and their correspondence to the user interface.
SYSTEM

APPLICATION

SETTINGS

FOLDER

SOCKET

ITEMS MAY BE ANY OF THE FOLLOWING  TYPES OF ITEM

PROJECT
COMP)TEM

RENDER1UEUE

FILE

/2

/2

FOOTAGE)TEM

FOLDER)TEM

ITEMS
LAYERS

ITEMS
PROXY3OURCE

RENDER1UEUE)TEMS
PROPERTIES

MAIN3OURCE

PROXY3OURCE

MAIN3OURCE  PROXY3OURCE
MAY BE ANY OF THE FOLLOWING  TYPES OF ITEM

OUTPUT-ODULES
SOLID3OURCE

COLOR

/2

PLACEHOLDER3OURCE

/2

FILE3OURCE

FILE

Hierarchy diagram of the main After Effects scripting objects

11

After Effects scripting reference

The After Effects Object Model

12

Note that the File, Folder, and Socket objects are defined by ExtendScript, and are documented in the JavaScript Tools Guide. ExtendScript also defines the ScriptUI module, a set of window and user-interface control
objects, which are available to After Effects scripts. These are also documented in the JavaScript Tools Guide.
The hierarchy of objects in scripting corresponds to the hierarchy in the user interface.

The application contains a Project panel, which displays a project. The project contains compositions, which
contain layers. The source for a layer can be a footage file, placeholder, or solid, also listed in the Project panel.
Each layer contains settings known as properties, and these can contain markers and keyframes. The render
queue contains render-queue items as well as render settings and output modules. All of these entities are represented by objects in scripting.
NOTE: To avoid ambiguity, this manual uses the term “attribute” to refer to JavaScript object properties, and the
term “property” or “AE property” to refer to After Effects layer properties.

Object summary
The following table lists all objects alphabetically, with links to the documentation page for each.
Object

Description

“Global functions” on page 14

Globally available functions that allow you to display text for script debugging purposes,
and help convert time values between seconds and frames.

“Application object” on page 17

A single global object, available by its name (app ), that provides access to objects and
application settings within the After Effects application.

“AVItem object” on page 30

Represents audio/visual files imported into After Effects.

“AVLayer object” on page 38

Represents those layers that contain AVItem objects (composition layers, footage layers,
solid layers, text layers, and sound layers).

“CameraLayer object” on page 50

Represents a camera layer within a composition.

“Collection object” on page 51

Associates a set of objects or values as a logical group and provides access to them by
index.

“CompItem object” on page 52

Represents a composition, and allows you to manipulate it and get information about it.

12

After Effects scripting reference

The After Effects Object Model

13

Object

Description

“FileSource object” on page 61

Describes footage that comes from a file.

“FolderItem object” on page 63

Represents a folder in the Project panel.

“FootageItem object” on page 65

Represents a footage item imported into a project, which appears in the Project panel.

“FootageSource object” on page 69

Describes the file source of some footage.

“ImportOptions object” on page 75

Encapsulates options for importing files into After Effects.

“Item object” on page 78

Represents an item in a project that appears in the Project panel.

“ItemCollection object” on page 82

Collects items in a project.

“KeyframeEase object” on page 84

Encapsulates keyframe ease values in an After Effects property.

“Layer object” on page 86

A base class for layer classes.

“LayerCollection object” on page 95

Collects layers in a project.

“LightLayer object” on page 100

Represents a light layer within a composition.

“MarkerValue object” on page 102

Encapsulates marker values in an After Effects property.

“MaskPropertyGroup object” on
page 106

Encapsulates mask attributes in a layer.

“OMCollection object” on page 109

Collects output modules in a render queue.

“OutputModule object” on page 110

Represents an output module for a render queue.

“PlaceholderSource object” on page 113 Describes a placeholder for footage.
“Project object” on page 114

Represents an After Effects project.

“Property object” on page 124

Represents an After Effects property.

“PropertyBase object” on page 148

A base class for After Effects property and property group classes.

“PropertyGroup object” on page 155

Represents an After Effects property group.

“RenderQueue object” on page 160

Represents the After Effects render queue.

“RenderQueueItem object” on page 163

Represents a renderable item in a render queue.

“RenderQueueItem object” on page 163

Collects render-queue items in a render queue.

“RQItemCollection object” on page 169

Provides access to application settings and preferences.

“Shape object” on page 172

Encapsulates the outline shape information for a mask.

“ShapeLayer object” on page 178

Represents a shape layer within a composition.

“SolidSource object” on page 179

Describes a solid color that is the source of some footage.

“System object” on page 180

Provides access to the operating system from the application.

“TextDocument object” on page 182

Encapsulates the text in a text layer.

“TextLayer object” on page 188

Represents a text layer within a composition.

“Viewer object” on page 189

Represents a Composition, Layer, or Footage panel.

13

After Effects scripting reference

Global functions

14

Global functions
These globally available functions that are specific to After Effects. Any JavaScript object or function can call
these functions, which allow you to display text in a small (3-line) area of the Info panel, and to convert
numeric time values to and from string values.
Global function

Description

cle arO utput ( )

Clears text from the Info panel.

c u r rent For m at To Ti m e ( )

Converts string time value to a numeric time value.

t i m e To Cu r re nt For m at ( )

Converts a numeric time value to a string time value.

w r ite ( )

Writes text to the Info panel, with no line break added.

w r ite L n ( )

Writes text to the Info panel, adding a line break at the end.

i s Va l i d ( )

When true, the specified object exists.

Additional global functions for standard user I/O (a l e r t , c on f i r m , and prompt ) and static functions for file
I/O, are defined by ExtendScript; for detailed reference information, see the JavaScript Tools Guide (available
from the ExtendScript Toolkit’s Help menu).

clearOutput() global function
cle arO utput ( )
Description

Clears the output in the Info panel.
Parameters

None.
Returns

Nothing.

currentFormatToTime() global function
c u r rent For m at To Ti m e ( for matted Tim e, fp s, i sD uration)
Description

Converts a formatted string for a frame time value to a number of seconds, given a specified frame rate. For
example, if the formatted frame time value is 0:00:12 (the exact string format is determined by a project
setting), and the frame rate is 24 fps, the time would be 0.5 seconds (12/24). If the frame rate is 30 fps, the time
would be 0.4 seconds (12/30).
If the time is a duration, the frames are counted from 0. Otherwise, the frames are counted from the project’s
starting frame (see “Project displayStartFrame attribute” on page 117).
Parameters
for matte d Ti me

The frame time value, a string specifying a number of frames in the project’s current time display format.

fps

The frames-per-second, a floating-point value.

14

After Effects scripting reference

Global functions

15

i s D u r at i on

Optional. When true, the time is a duration (measured from frame 0). When false (the default), the time is
measured from the project’s starting frame.

Returns

Floating-point value, the number of seconds.

isValid() global function
i s Va l i d ( obj)
Description

Determines if the specified After Effects object (e.g., composition, layer, mask, etc.) still exists. Some operations, such as the Prop er ty B as e move To () method, might invalidate existing variable assignments to related
objects. This function allows you to test whether those assignments are still valid before attempting to access
them.
Parameters
obj

The After Effects object to check for validity.

Returns

Boolean.
Example
v ar l ay er = app. proj e c t . ac t ive It em . l aye r ( 1 ) ; / / a ss u m e l ay e r h a s t h re e m as k s
a l e r t ( i s Va l i d ( l aye r ) ) ; / / d is pl ay s “t r u e”
var mask 1 = laye r.mask(1 );
var mask 2 = laye r.mask(2 );
var mask 3 = laye r.mask(3 );
mask 3.moveTo (1) ; // move t he t hird mask to t he top of t he m ask st ack
a l e r t (i s Va l i d ( m as k 1 ) ) ; / / d is pl ay s “f a ls e” ; m a sk 2 and m a sk 3 d o a s we l l

timeToCurrentFormat() global function
t i m e To Cu r re nt For m at (tim e, fps , i s D uration)
Description

Converts a numeric time value (a number of seconds) to a frame time value; that is, a formatted string that
shows which frame corresponds to that time, at the specified rate. For example, if the time is 0.5 seconds, and
the frame rate is 24 fps, the frame would be 0:00:12 (when the project is set to display as timecode). If the frame
rate is 30 fps, the frame would be 0:00:15. The format of the timecode string is determined by a project setting.
If the time is a duration, the frames are counted from 0. Otherwise, the frames are counted from the project’s
starting frame (see “Project displayStartFrame attribute” on page 117).
Parameters
t i me

The number of seconds, a floating-point value.

fps

The frames-per-second, a floating-point value.

15

After Effects scripting reference

Global functions

16

i s D u r at i on

Optional. When true, the time is a duration (measured from frame 0). When false (the default), the time is
measured from the project’s starting frame.

Returns

String in the project’s current time display format.

write() global function
w r ite ( tex t)
Description

Writes output to the Info panel, with no line break added.
Parameters
te x t

The string to display. Truncated if too long for the Info panel.

Returns

Nothing.
Example
w r ite( "T h is te xt app e ars in Info p anel ");
w r ite ( "w it h more on s ame l i ne." ) ;

writeLn() global function
w r ite L n ( tex t)
Description

Writes output to the Info panel and adds a line break at the end.
Parameters
te x t

The string to display.

Returns

Nothing.
Example
w r ite l n( "T hi s te xt app e ars on f i rst l i ne " );
w r ite l n( "T hi s te xt app e ars on s e cond l i ne " );

16

After Effects scripting reference

Application object

17

Application object
app
Description

Provides access to objects and application settings within the After Effects application. The single global object
is always available by its name, app .
Attributes of the Application object provide access to specific objects within After Effects. Methods of the
Application object can create a project, open an existing project, control Watch Folder mode, purge memory,
and quit the After Effects application. When the After Effects application quits, it closes the open project,
prompting the user to save or discard changes as necessary, and creates a project file as necessary.
Attributes
Attribute

Reference

Description

proj e c t

“Application project attribute” on
page 26 and “Project object” on
page 114

The current After Effects project.

i s o L ang u a ge

“Application isoLanguage attribute” on
page 22

The locale (language and region) in which the application is running.

ve rsi on

“Application version attribute” on
page 29

The version number of the After Effects application.

bu i l dName

“Application buildName attribute” on
page 19

The name of this build of the application.

bu i l dNu mb e r

“Application buildNumber attribute” on The number of this build of the application.
page 20

i s Watch Fol d e r

“Application isWatchFolder attribute” on When true, the local application is running in Watch
page 23
Folder mode.

i s R e nd e r E ng i n e

“Application isRenderEngine attribute”
on page 23

When true, the local After Effects application is running
as a render engine.

s e tt i ng s

“Application settings attribute” on
page 28 and “RQItemCollection object”
on page 169

Application settings that can be set via scripting.

onE r ror

“Application onError attribute” on
page 24

A callback function that is called when an error occurs
in the application.

e x it C o d e

“Application exitCode attribute” on
page 22

A numeric status code used when executing a script
externally (that is, from a command line or AppleScript).
0 if no error occurred. A positive number indicates an
error that occurred while running the script.

e xitAf te rL au nchAndEv a l “Application exitAfterLaunchAndEval
attribute” on page 22

When true, the application remains open after running
a script from the command line on Windows.

s ave Proj e c t O nC r ash

“Application saveProjectOnCrash attribute” on page 27

When true, the project is saved if the application closes
unexpectedly.

memor y In Us e

“Application memoryInUse attribute” on Memory in use by this application.
page 23

e f fe c t s

“Application effects attribute” on
page 20

The effects available in the application.

a c t ive Vi e wer

“Application activeViewer attribute” on
page 19

The currently focused or last-focused viewer panel.

17

After Effects scripting reference

Application object

18

Methods
Method

Reference

Description

n e w Proj e c t ( )

“Application newProject() method” on
page 24

Creates a new project in After Effects.

op e n ()

“Application open() method” on page 24

Opens a project or an Open Project dialog box.

qu it ()

“Application quit() method” on page 27

Quits the application.

w atch Fol d e r ()

“Application watchFolder() method” on
page 29

Starts Watch Folder mode; does not return
until Watch Folder mode is turned off.

p au s e Watch Fol d e r ( )

“Application pauseWatchFolder() method”
on page 26

Pauses a current watch-folder process.

e n d Wat ch Fol de r ( )

“Application endWatchFolder() method” on Ends a current watch-folder process.
page 21

pu rge ( )

“Application purge() method” on page 26

Purges a targeted type of cached information
(replicates Purge options in the Edit menu).

b e g i nUnd oGroup ( )

“Application beginUndoGroup() method”
on page 19

Groups the actions that follow it into a single
undoable step.

e n d Un d o Group ( )

“Application endUndoGroup() method” on
page 21

Ends an undo group; needed only when a
script contains more than one undo group.

b e g i nSuppressD ial ogs()

“Application beginSuppressDialogs()
method” on page 19

Begins suppression of dialogs in the user interface.

e n d Suppre s s D i a l o g s ( )

“Application endSuppressDialogs()
method” on page 21

Ends suppression of dialogs in the user interface.

s e t Me mor y Us age L i mit s()

“Application setMemoryUsageLimits()
method” on page 28

Sets memory usage limits as in the Memory &
Cache preferences area.

s e t S ave Pre fe re nce s O nQ u it ()

“Application setSavePreferencesOnQuit()
method” on page 28

Sets whether preferences are saved when the
application is quit.

a c t iv ate ( )

“Application activate() method” on page 18 Brings the After Effects main window to the
front of the screen.

s che du leTa sk ()

“Application scheduleTask() method” on
page 27

Schedules a JavaScript script for delayed execution.

c an ce l Ta sk ()

“Application cancelTask() method” on
page 20

Cancels a scheduled task.

p ars e Sw atch Fi l e ( )

“Application parseSwatchFile() method” on Loads a color swatch from an Adobe Swatch
page 25
Exchange (ASE) file.

Application activate() method
app. a c t iv ate ()
Description

Opens the application main window if it is minimized or iconified, and brings it to the front of the desktop.
Parameters

None.

18

After Effects scripting reference

Application object

19

Returns

Nothing.

Application activeViewer attribute
app. a c t ive Vi e we r
Description

The Viewer object for the currently focused or active-focused viewer (Composition, Layer, or Footage) panel.
Returns null if no viewers are open.
Type

Viewer object; read-only.

Application beginSuppressDialogs() method
app. b e g i nSuppressD ial ogs()
Description

Begins suppression of script error dialog boxes in the user interface. Use e n d Suppre s s D i a l o g s ( ) to resume the
display of error dialogs. See “Application endSuppressDialogs() method” on page 21.
Parameters

None.
Returns

Nothing.

Application beginUndoGroup() method
app. b e g i nUnd oGroup ( undo Str ing )
Description

Marks the beginning of an undo group, which allows a script to logically group all of its actions as a single
undoable action (for use with the Edit > Undo/Redo menu items). Use the e nd Und o G roup ( ) method to mark
the end of the group. (See “Application endUndoGroup() method” on page 21.)
b e g i nUnd oGroup ( ) and e nd Und o G roup ( ) pairs can be nested. Groups within groups become part of the

larger group, and will undo correctly. In this case, the names of inner groups are ignored.
Parameters
u n d o St r i ng

The text that will appear for the Undo command in the Edit menu (that is, “Undo < u n d o St r i ng > ”)

Returns

Nothing.

Application buildName attribute
app. bu i l dName

19

After Effects scripting reference

Application object

20

Description

The name of the build of After Effects being run, used internally by Adobe for testing and troubleshooting.
Type

String; read-only.

Application buildNumber attribute
app. bu i l dNu mb e r
Description

The number of the build of After Effects being run, used internally by Adobe for testing and troubleshooting.
Type

Integer; read-only.

Application cancelTask() method
app. c ance l Ta sk (ta sk I D )
Description

Removes the specified task from the queue of tasks scheduled for delayed execution.
Parameters
t ask ID

An integer that identifies the task, as returned by app.s che du l e Ta sk () .

Returns

Nothing.

Application effects attribute
app. e f fe c t s
Description

The effects available in the application.
Type

Array, with each element containing the following properties; read-only:
d i spl ay Name

String representing the localized display name of the effect as seen in the Effect menu.

c ate gor y

String representing the localized category label as seen in the Effect menu. This can be "" for synthetic
effects that aren’t normally shown to the user.

matchName

String representing the internal unique name for the effect. This name does not change between versions of After Effects. Use this value to apply the effect.

Example
v ar e f fe c t Nam e = app.e f fe c t s [1 2 ] .d i sp l ay Nam e ;

20

After Effects scripting reference

Application object

21

Application endSuppressDialogs() method
app. e n d Suppre s s D i a l o g s ( ale r t)
Description

Ends the suppression of script error dialog boxes in the user interface. Error dialogs are displayed by default;
call this method only if b e g i n Suppre ss Di a l o g s ( ) has previously been called. See “Application beginSuppressDialogs() method” on page 19.
Parameters
alert

Boolean; when true, errors that have occurred following the call to b e g i n Suppre ss Di a l o g s ( ) are displayed in a
dialog box.

Returns

Nothing.

Application endUndoGroup() method
app. e nd Und oGroup ()
Description

Marks the end of an undo group begun with the app.b e ginUndo Group () method. You can use this method to
place an end to an undo group in the middle of a script, should you wish to use more than one undo group for
a single script.
If you are using only a single undo group for a given script, you do not need to use this method; in its absence
at the end of a script, the system will close the undo group automatically.
Calling this method without having set a b e g i nUnd oGroup () method yields an error.
Parameters

None.
Returns

Nothing.

Application endWatchFolder() method
app. e nd Wat ch Fol de r ( )
Description

Ends Watch Folder mode.
Parameters

None.
Returns

Nothing.

21

After Effects scripting reference

Application object

22

See also

“Application watchFolder() method” on page 29
“Application parseSwatchFile() method” on page 25
“Application isWatchFolder attribute” on page 23

Application exitAfterLaunchAndEval attribute
app. e xit Af t e rL au nch AndEv a l
Description

This attribute is used only when executing a script from a command line on Windows. When the application
is launched from the command line, the – r or –s command line flag causes the application to run a script
(from a file or from a string, respectively).
If this attribute is set to true, After Effects will exit after the script is run; if it is false, the application will remain
open.
This attribute only has an effect when After Effects is run from the Windows command line. It has no effect
in Mac OS.
Type

Boolean; read/write.

Application exitCode attribute
app. e xit C o d e
Description

A numeric status code used when executing a script externally (that is, from a command line or AppleScript).
• In Windows, the value is returned on the command line when After Effects was launched on the command

line (using the af te r f x or af t e r f x –m command), and a script was specified with the – r or – s option.
• in Mac OS, the value is returned as the AppleScript D oS cr ipt result for each script.

In both Mac OS and Windows, the value is set to 0 (E X I T _ SU C C E S S ) at the beginning of each script evaluation. In the event of an error while the script is running, the script can set this to a positive integer that
indicates what error occurred.
Type

Integer; read/write.
Example
app. e x it C o d e = 2 ; / / on qu it , i f v a lu e is 2 , an e r ror h as o cc u r re d

Application isoLanguage attribute
app. i s oL ang u a ge
Description

A string indicating the locale (language and regional designations) After Effects is running.
NOTE: $ .l o c a l e returns the operating system language, not the language of the After Effects application.

22

After Effects scripting reference

Application object

23

Type

String; read-only. Some common values include:
• e n _ U S for English (United States)
• d e_ DE for German (Germany)
• e s _ E S for Spanish (Spain)
• f r_ F R for French (France)
• it_ I T for Italian (Italy)
• j a_ JP for Japanese (Japan)
• ko_KR for Korean (Korea)
Example
v ar l ang = app. i s oL ang u age ;
i f (l ang == " e n _ U S" )
a l e r t ( " A f te r E f fe c t s is r u n ni ng i n E n g l i s h . " ) ;
e ls e i f (l ang = = " f r _ F R " )
a l e r t ( " A f te r E f fe c t s is r u n ni ng i n Fre n ch. " ) ;
e ls e
a l er t("Af ter Ef fec t s is not r u nning in English or French .");

Application isRenderEngine attribute
app. i sR e nd e r E ng i ne
Description

True if After Effects is running as a render engine.
Type

Boolean; read-only.

Application isWatchFolder attribute
app. i sWatchFol d e r
Description

True if the Watch Folder dialog box is currently displayed and the application is currently watching a folder
for rendering.
Type

Boolean; read-only.

Application memoryInUse attribute
app. memor y InUs e
Description

The number of bytes of memory currently used by this application.

23

After Effects scripting reference

Application object

24

Type

Number; read-only.

Application newProject() method
app. ne w Proj e c t ()
Description

Creates a new project in After Effects, replicating the File > New > New Project menu command.
If the current project has been edited, the user is prompted to save it. If the user cancels out of the Save dialog
box, the new project is not created and the method returns null. Use app. proj e c t .cl o s e (C l os eO p t i ons . D O _ N OT_ S AV E _ C HA NG E S ) to close the current project before opening a new one. See “Project
close() method” on page 116.
Parameters

None.
Returns

A new Project object, or null if no new project is created.
Example
app. proj e c t . cl o s e ( C l o s e O pt i ons. D O _ N OT _ S AV E _ C HANG E S ) ;
app. ne w Proj e c t () ;

Application onError attribute
app. onE r ror
Description

The name of a callback function that is called when an error occurs. By creating a function and assigning it to
this attribute, you can respond to errors systematically; for example, you can close and restart the application,
noting the error in a log file if it occurred during rendering. See “RenderQueue render() method” on page 161.
The callback function is passed the error string and a severity string. It should not return any value.
Type

A function name string, or null if no function is assigned; read/write.
Example
f u n c t i on e r r ( e r rSt r i n g) {
a l e r t ( e r r St r i n g) ;
}
app. onE r ror = e r r ;

Application open() method
app. op e n ()
app. op e n (f ile)

24

After Effects scripting reference

Application object

25

Description

Opens a project.
Parameters
file

Optional. An ExtendScript File object for the project file to open. If not supplied, the method prompts the
user to select a project file.

Returns

A new Project object for the specified project, or null if the user cancels the Open dialog box.
Example
v ar my_ f i l e = ne w Fi l e ( ". . / my_ fol d e r/ my _ te st . a e p " ) ;
i f ( my _ f i l e. e x i st s ) {
ne w _proj e c t = app. op e n( my _ f i l e );
i f ( n e w_ proj e c t ) {
a l e r t ( n e w _ proj e c t . f i l e. n ame ) ;
}
}

Application parseSwatchFile() method
app. p ars e Sw atch Fi l e ( f ile )
Description

Loads color swatch data from an Adobe Swatch Exchange (ASE) file.
Parameters
file

The file specification, an ExtendScript Fi l e object.

Returns

The swatch data, in this format:
d at a . maj or Ve rsi on

The ASE version number.

d at a . m i n or Ve rsi on
d at a . v a lu e s

An array of SwatchVa lu e .

Swat chVa lu e. t y p e

One of " RGB " , " C M YK " , " L A B ", "Gr ay "

Swat chVa lu e. r

When t y p e = "RG B ", the color values in the range [0.0..1.0].

Swat chVa lu e. g

0, 0, 0 is Black.

Swat chVa lu e. b
Swat chVa lu e. c

When t y p e = "C M Y K ", the color values in the range [0.0..1.0].

Swat chVa lu e. m

0, 0, 0, 0 is White.

Swat chVa lu e. y
Swat chVa lu e. k

25

After Effects scripting reference

Application object

26

Swat chVa lu e. L

When t y p e = "L A B ", the color values.

Swat chVa lu e. a

L is in the range [0.0..1.0]. a and b are in the range [-128.0..+128.0]

Swat chVa lu e. b

0, 0, 0 is Black.
When t y p e = "Gr ay ", the v a lu e range is [0.0..1.0].

Swat chVa lu e. v a lu e

0.0 is Black.

Application pauseWatchFolder() method
app. p au s e Watch Fol d e r (p au s e )
Description

Pauses or resumes the search of the target watch folder for items to render.
Parameters
p au s e

True to pause, false to resume.

Returns

Nothing.
See also

“Application isWatchFolder attribute” on page 23
“Application watchFolder() method” on page 29
“Application endWatchFolder() method” on page 21

Application project attribute
app. proj e c t
Description

The project that is currently loaded. See “Project object” on page 114.
Type

Project object; read-only.

Application purge() method
app. pu rge ( targ et )
Description

Purges unused data of the specified types from memory. Replicates the Purge options in the Edit menu.

26

After Effects scripting reference

Application object

27

Parameters
t arge t

The type of elements to purge from memory; a PurgeTarget enumerated value, one of:

• P u rge Targe t. A L L _ C AC H E S : Purges all data that After Effects has cached to physical memory.
• PurgeTarget. U ND O _CAC H E S : Purges all data saved in the undo cache.
• Pu rge Targe t. SNA PSHOT _ CAC H E S : Purges all data cached as composition/layer snapshots.
• P u rge Targe t. I M AGE _ C AC H E S : Purges all saved image data.
Returns

Nothing.

Application quit() method
app. qu it ()
Description

Quits the After Effects application.
Parameters

None.
Returns

Nothing.

Application saveProjectOnCrash attribute
app. s ave Proj e c t O nC r ash
Description

When true (the default), After Effects attempts to display a dialog box that allows you to save the current
project if an error causes the application to quit unexpectedly. Set to false to suppress this dialog box and quit
without saving.
Type

Boolean; read/write.

Application scheduleTask() method
app. s che du l e Ta sk (str ingTo E x ecute , delay, rep eat )
Description

Schedules the specified JavaScript for delayed execution.
Parameters
s t r i ng To E x e c ute

A string containing JavaScript to be executed.

d el ay

A number of milliseconds to wait before executing the JavaScript. A floating-point value.

27

After Effects scripting reference

Application object

28

re p e at

When true, execute the script repeatedly, with the specified delay between each execution. When false
the script is executed only once.

Returns

Integer, a unique identifier for this task, which can be used to cancel it with app. c anc e l Task () .

Application setMemoryUsageLimits() method
app. s e t Me mor y Us age L i mit s(im age C ache Pe rcentage , m ax imum Memor yPe rcentage )
Description

Sets memory usage limits as in the Memory & Cache preferences area. For both values, if installed RAM is less
than a given amount (n gigabytes), the value is a percentage of the installed RAM, and is otherwise a
percentage of n. The value of n is: 2 GB for 32-bit Windows, 4 GB for 64-bit Windows, 3.5 GB for Mac OS.
Parameters
i m age C a ch e Pe rc e nt age

Floating-point value, the percentage of memory assigned to image cache.

m a x i mu m Me m or y Pe rc e nt a ge

Floating-point value, the maximum usable percentage of memory.

Returns

Nothing.

Application setSavePreferencesOnQuit() method
app. s e t S ave Prefe re nce s O nQ u it (d oS ave )
Description

Set or clears the flag that determines whether preferences are saved when the application is closed.
Parameters
d o S ave

When true, preferences saved on quit, when false they are not.

Returns

Nothing.

Application settings attribute
app. s e tt i ng s
Description

The currently loaded settings. See “Settings object” on page 170.
Type

Settings object; read-only.

28

After Effects scripting reference

Application object

29

Application version attribute
app. ve rsi on
Description

An alphanumeric string indicating which version of After Effects is running.
Type

String; read-only.
Example
v ar ve r = app. ve rsi on ;
a l e r t (" Th i s m ach i ne i s r u n n i ng ve rsi on " + ve r + " of A f t e r E f fe c t s . " );

Application watchFolder() method
app. w atch Fol d e r (folder_ obj ec t_ to _ watch )
Description

Starts a Watch Folder (network rendering) process pointed at a specified folder.
Parameters
fol d e r _ obj e c t _ to _ wat ch

The ExtendScript Folder object for the folder to watch.

Returns

Nothing.
Example
v ar t he Fo l de r = n e w Fol d e r (“c: / to o l” );
app. w atch Fol d e r (t he Fo l de r ) ;
See also

“Application endWatchFolder() method” on page 21
“Application parseSwatchFile() method” on page 25
“Application isWatchFolder attribute” on page 23

29

After Effects scripting reference

AVItem object

30

AVItem object
app. proj e c t . ite m (ind e x)
Description

The AVItem object provides access to attributes and methods of audio/visual files imported into After Effects.
• AVItem is a subclass of Item. All methods and attributes of Item, in addition to those listed below, are

available when working with AVItem. See “Item object” on page 78.
• AVItem is the base class for both CompItem and FootageItem, so AVItem attributes and methods are also

available when working with CompItem and FootageItem objects. See “CompItem object” on page 52 and
“FootageItem object” on page 65.
Attributes
Attribute

Reference

Description

name

“AVItem name attribute” on page 33

The name of the object as shown in the Project panel.

w i dt h

“AVItem width attribute” on page 37

The width of the item.

heig ht

“AVItem height attribute” on page 32

The height of the item.

pi xel Asp e c t

“AVItem pixelAspect attribute” on page 33

The pixel aspect ratio of the item.

f r ame R at e

“AVItem frameRate attribute” on page 32

The frame rate of the item.

f r ame D u rat i on

“AVItem frameDuration attribute” on page 31 The frame duration for the item.

du r at i on

“AVItem duration attribute” on page 31

The total duration of the item.

u s e Prox y

“AVItem useProxy attribute” on page 36

When true, a proxy source is used for this item.

proxy S ou rc e

“AVItem proxySource attribute” on page 34

The FootageItem object used as proxy for the item.

t i me

“AVItem time attribute” on page 36

Current time of the item.

u s e dIn

“AVItem usedIn attribute” on page 36

The CompItem objects that use this item.

hasVi de o

“AVItem hasVideo attribute” on page 32

When true, the item has a video component.

h a s Au d i o

“AVItem hasAudio attribute” on page 32

When true, the item has an audio component.

fo ot ageMissing

“AVItem footageMissing attribute” on
page 31

When true, the item cannot be found or is a placeholder.

Methods
Method

Reference

Description

s e t Proxy ()

“AVItem setProxy() method” on page 34

Sets a proxy for the item.

s e t Proxy Wit h S e qu e nc e ()

“AVItem setProxyWithSequence() method” on
page 35

Sets a sequence as a proxy for the item.

s e t P rox y Wit h S ol i d ( )

“AVItem setProxyWithSolid() method” on
page 35

Sets a solid as a proxy for the item.

s e t Proxy Wit h Pl ac e hol d e r( )

“AVItem setProxyWithPlaceholder() method” on Sets a placeholder as a proxy for the item.
page 35

s e t Proxy ToNone ()

“AVItem setProxyToNone() method” on page 34

Removes the proxy for the item.

30

After Effects scripting reference

AVItem object

31

AVItem duration attribute
app. proj e c t . ite m ( i n d e x ) . du r at i on
Description

Returns the duration, in seconds, of the item. Still footage items have a duration of 0.
• In a CompItem, the value is linked to the duration of the composition, and is read/write.
• In a FootageItem, the value is linked to the du r at i on of the m ai n S ou rc e object, and is read-only.
Type

Floating-point value in the range [0.0..10800.0]; read/write for a CompItem; otherwise, read-only.

AVItem footageMissing attribute
app. proj e c t . ite m ( i n d e x ) . fo ot ageM is s i ng
Description

When true, the AVItem is a placeholder, or represents footage with a source file that cannot be found. In this
case, the path of the missing source file is in the m is s i ng Fo ot a ge Pat h attribute of the footage item’s source-file
object. See “FootageItem mainSource attribute” on page 66 and “FileSource missingFootagePath attribute” on
page 61.
Type

Boolean; read-only.

AVItem frameDuration attribute
app. proj e c t . ite m ( i n d e x ) . f r ame D u rat i on
Description

Returns the length of a frame for this AVItem, in seconds. This is the reciprocal of f r ame R ate . When set, the
reciprocal is automatically set as a new f rame R ate value.
This attribute returns the reciprocal of the f rame R ate , which may not be identical to a value you set, if that
value is not evenly divisible into 1.0 (for example, 0.3). Due to numerical limitations, (1 / (1 / 0.3)) is close to,
but not exactly, 0.3.
If the AVItem is a FootageItem, this value is linked to the m ai n S ou rc e , and is read-only. To change it, set the
confor mFrameR ate of the m ai n S ou rc e object. This sets both the f r ame R ate and f rame D u r at i on of the
FootageItem.
Type

Floating-point value in the range [1/99.. 1.0]; read-only for a FootageItem, otherwise read/write.

31

After Effects scripting reference

AVItem object

32

AVItem frameRate attribute
app. proj e c t . ite m ( i n d e x ) . f r ame R ate
Description

The frame rate of the AVItem, in frames-per-second. This is the reciprocal of the f r ame D u r at i on . When set,
the reciprocal is automatically set as a new f r ame D u r at i on value.
• In a CompItem, the value is linked to the f rame R ate of the composition, and is read/write.
• In a FootageItem, the value is linked to the f r ame R ate of the m ai n S ou rc e object, and is read-only. To change

it, set the c on for m Fram e R ate of the mainS ource object. This sets both the f r ame R at e and f r ame D u r at i on
of the FootageItem.
Type

Floating-point value in the range [1.0..99.0]; read-only for a FootageItem, otherwise read/write.

AVItem hasAudio attribute
app. proj e c t . ite m ( i n d e x ) . h a s Au d i o
Description

When true, the AVItem has an audio component.
• In a CompItem, the value is linked to the composition.
• In a FootageItem, the value is linked to the mainS ource object.
Type

Boolean; read-only.

AVItem hasVideo attribute
app. proj e c t . ite m ( i n d e x ) . h a s Vi d e o
Description

When true, the AVItem has an video component.
• In a CompItem, the value is linked to the composition.
• In a FootageItem, the value is linked to the mainS ource object.
Type

Boolean; read-only.

AVItem height attribute
app. proj e c t . ite m ( i n d e x ) . h e i g ht
Description

The height of the item in pixels.
• In a CompItem, the value is linked to the composition, and is read/write.

32

After Effects scripting reference

AVItem object

33

• In a FootageItem, the value is linked to the mainS ource object, and is read/write only if the m ai nS ou rc e

object is a SolidSource. Otherwise, it is read-only.
Type

Integer in the range [1...30000]; read/write, except as noted.

AVItem name attribute
app. proj e c t . ite m ( i n d e x ) . n am e
Description

The name of the item, as shown in the Project panel.
• In a FootageItem, the value is linked to the m ai n S ou rc e object. If the m a i n S ou rc e object is a FileSource, this

value controls the display name in the Project panel, but does not affect the file name.
Type

String; read/write.

AVItem pixelAspect attribute
app. proj e c t . ite m ( i n d e x ) . pi xel Asp e c t
Description

The pixel aspect ratio (PAR) of the item.
• In a CompItem, the value is linked to the composition.
• In a FootageItem, the value is linked to the mainS ource object.

The value you retrieve after setting may be slightly different from the value you supplied. The following table
compares the value as it appears in the UI with the more-accurate value returned by this attribute.
PAR in the After Effects UI

PAR returned by the pixelAspect attribute

0.91

0.90909090909091

1

1

1.5

1.5

1.09

1.09401709401709

1.21

1.21212121212121

1.33

1.33333333333333

1.46

1.45868945868946

2

2

Type

Floating-point value, in the range [0.01..100.0]; read/write.

33

After Effects scripting reference

AVItem object

34

AVItem proxySource attribute
app. proj e c t . ite m ( i n d e x ) . proxy S ou rc e
Description

The FootageSource being used as a proxy. The attribute is read-only; to change it, call any of the AVItem
methods that change the proxy source: s e t Proxy () , s e t Prox y Wit h S e qu e n ce ( ) , s et P rox y Wit h S ol i d ( ) , or
s e t Proxy Wit h Pl ac e hol d e r( ) .
Type

FootageSource object; read-only.

AVItem setProxy() method
app. proj e c t . ite m ( i n d e x ) . s e t Prox y ( f ile )
Description

Sets a file as the proxy of this AVItem. Loads the specified file into a new FileSource object, sets this as the
value of the prox yS ou rc e attribute, and sets u s e Prox y to true. It does not preserve the interpretation parameters, instead using the user preferences. If the file has an unlabeled alpha channel, and the user preference
says to ask the user what to do, the method estimates the alpha interpretation, rather than asking the user.
This differs from setting a FootageItem's main source, but both actions are performed as in the user interface.
Parameters
file

An ExtendScript File object for the file to be used as a proxy.

Returns

None.

AVItem setProxyToNone() method
app. proj e c t . ite m ( i n d e x ) . s e t Prox y ToNon e ( )
Description

Removes the proxy from this AVItem, sets the value of prox yS ou rce to null, and sets the value of u s e Prox y to
false.
Parameters

None.
Returns

Nothing.

34

After Effects scripting reference

AVItem object

35

AVItem setProxyWithPlaceholder() method
app. proj e c t . ite m ( i n d e x ) . s e t Prox y Wit hP l ac eho l d e r( name, w i dth, he ight, f rame Rate , durati on )
Description

Creates a PlaceholderSource object with specified values, sets this as the value of the prox yS ou rc e attribute,
and sets u s e Prox y to true. It does not preserve the interpretation parameters, instead using the user preferences.
NOTE: There is no direct way to set a placeholder as a proxy in the user interface; this behavior occurs when a
proxy has been set and then moved or deleted.
Parameters
name

A string containing the name of the new object.

w i dt h , he i g ht

The pixel dimensions of the placeholder, an integer in the range [4..30000].

f r ame R at e

The frames-per-second, an integer in the range [1..99].

du r at i on

The total length in seconds, up to 3 hours. An integer in the range [0.0..10800.0].

Returns

Nothing.

AVItem setProxyWithSequence() method
app. proj e c t . ite m ( i n d e x ) . s e t Prox y Wit hS e qu e nc e (f ile , forceAlphabetical )
Description

Sets a sequence of files as the proxy of this AVItem, with the option of forcing alphabetical order. Loads the
specified file sequence into a new FileSource object, sets this as the value of the prox yS ou rce attribute, and sets
u s e Prox y to true. It does not preserve the interpretation parameters, instead using the user preferences. If any
file has an unlabeled alpha channel, and the user preference says to ask the user what to do, the method
estimates the alpha interpretation, rather than asking the user.
Parameters
file

An ExtendScript File object for the first file in the sequence.

forc e A lp hab e t i c a l

When true, use the “Force alphabetical order” option.

Returns

Nothing.

AVItem setProxyWithSolid() method
app. proj e c t . ite m ( i n d e x ) . s e t Prox y Wit hS ol i d (c olor, name , w idth , height, pi x elAspec t )
Description

Creates a SolidSource object with specified values, sets this as the value of the proxy S ou rc e attribute, and sets
u s e Prox y to true. It does not preserve the interpretation parameters, instead using the user preferences.

35

After Effects scripting reference

AVItem object

36

NOTE: There is no way, using the user interface, to set a solid as a proxy; this feature is available only through
scripting.
Parameters
c ol or

The color of the solid, an array of 3 floating-point values, [R, G, B], in the range [0.0..1.0].

name

A string containing the name of the new object.

w i dt h , he i g ht

The pixel dimensions of the placeholder, an integer in the range [1...30000].

pi xel Asp e c t

The pixel aspect of the solid, a floating-point value in the range [0.01... 100.0].

Returns

Nothing.

AVItem time attribute
app. proj e c t . ite m ( i n d e x ) . t i m e
Description

The current time of the item when it is being previewed directly from the Project panel. This value is a number
of seconds. Use the global method t i m e ToCu r re nt For m at to convert it to a string value that expresses the time
in terms of frames; see “timeToCurrentFormat() global function” on page 15.
It is an error to set this value for a FootageItem whose m a i n S ou rc e is still (item .main S ource.isSt i l l is true).
Type

Floating-point value; read/write.

AVItem usedIn attribute
app. proj e c t . ite m ( i n d e x ) . u s e dIn
Description

All the compositions that use this AVItem.
Note that upon retrieval, the array value is copied, so it is not automatically updated. If you get this value, then
add this item into another composition, you must retrieve the value again to get an array that includes the new
item.
Type

Array of CompItem objects; read-only.

AVItem useProxy attribute
app. proj e c t . ite m ( i n d e x ) . u s e Prox y
Description

When true, a proxy is used for the item. It is set to true by all the S e t Proxy methods, and to false by the
S et Proxy ToNone () method.

36

After Effects scripting reference

AVItem object

37

Type

Boolean; read/write.

AVItem width attribute
app. proj e c t . ite m ( i n d e x ) . w i dt h
Description

The width of the item, in pixels.
• In a CompItem, the value is linked to the composition, and is read/write.
• In a FootageItem, the value is linked to the mainS ource object, and is read/write only if the m ai nS ou rc e

object is a SolidSource. Otherwise, it is read-only.
Type

Integer in the range [1...30000]; read/write, except as noted.

37

After Effects scripting reference

AVLayer object

38

AVLayer object
app. proj e c t . ite m ( i n d e x ). l aye r ( inde x)
Description

The AVLayer object provides an interface to those layers that contain AVItem objects (composition layers,
footage layers, solid layers, text layers, and sound layers).
• AVLayer is a subclass of Layer. All methods and attributes of Layer, in addition to those listed below, are

available when working with AVLayer. See “Layer object” on page 86.
• AVLayer is a base class for TextLayer, so AVLayer attributes and methods are available when working with

TextLayer objects. See “TextLayer object” on page 188.
AE Properties

Different types of layers have different AE properties. AVLayer has the following properties and property
groups:
Marke r
Ti me R e map
Mot i on Tr a cke rs
Mask s
E f fe c t s
Transfor m
Anchor Point
Po sit i on
Scale
O r i e nt at i on
X R ot at i on
Y R ot at i on
R ot at i on
O p ac it y
L aye r St y l e s
G e ome t r y O pt i ons

// R ay - t r a ce d 3 D

Mate r i a l O pt i ons
C a st s Sha dows
L i g ht Trans mi ssi on
Ac c ept s S h a d ow s
Ac c ept s L i g ht s
App e ars i n R e f l e c t i ons

/ / R ay - t r a c e d 3 D

Ambient
Diffuse
Sp e c u l ar Inte ns it y
Sp e c u l ar Sh i ni ne ss
Me t a l
R e f l e c t i on Int e nsit y

// R ay -t r a ce d 3D

R e f l e c t i on S h ar pne ss
R e f l e c t i on R ol l of f
Transp are nc y

// R ay - t r a c e d 3 D

// R ay -t r a ce d 3D

// R ay -t r a ce d 3 D

Transp are nc y R ol l of f
Inde x of R e f ra c t i on

/ / R ay- t r ac e d 3D
// R ay -t r a ce d 3 D

Au d i o
Au d i o L e ve ls

38

After Effects scripting reference

AVLayer object

39

Example

If the first item in the project is a CompItem, and the first layer of that CompItem is an AVLayer, the following
sets the layer qu a l it y, st ar tTime , and i n Poi nt .
v ar f i rst L aye r = app.proj e c t . ite m ( 1 ) . l aye r ( 1 );
f i rst L aye r. qu a l it y = L aye r Q u a l it y.B E ST;
f i rst L aye r. st ar t Ti me = 1;
f i rst L aye r. i nPoi nt = 2 ;
Attributes
Attribute

Reference

Description

s ou rc e

“AVLayer source attribute” on page 47

The source item for this layer.

isNameFromS ource

“AVLayer isNameFromSource attribute”
on page 46

When true, the layer has no expressly set name,
but contains a named source.

heig ht

“AVLayer height attribute” on page 45

The height of the layer.

w i dt h

“AVLayer width attribute” on page 49

The width of the layer.

au di o E nabl e d

“AVLayer audioEnabled attribute” on
page 41

When true, the layer's audio is enabled.

m ot i on Blu r

“AVLayer motionBlur attribute” on
page 46

When true, the layer's motion blur is enabled.

e f fe c t sAc t ive

“AVLayer effectsActive attribute” on
page 44

When true, the layer's effects are active.

a dju st m e nt L ay e r

“AVLayer adjustmentLayer attribute” on When true, this is an adjustment layer.
page 40

g u i d e L aye r

“AVLayer guideLayer attribute” on
page 45

When true, this is a guide layer.

t hre e DL aye r

“AVLayer threeDLayer attribute” on
page 48

When true, this is a 3D layer.

t hre e DPe r C har

“AVLayer threeDPerChar attribute” on
page 48

When true, 3D is set on a per-character basis in
this text layer.

e nv i ron m e nt L aye r

“AVLayer environmentLayer attribute”
on page 44

When true, this is an environment layer.

c an S e t C ol l ap s e Tr ans for m at i on

“AVLayer canSetCollapseTransformation When true, it is legal to change the value of
attribute” on page 43
c ol l ap s e Tr ans for m at i on .

c ol l ap s e Transfor mat i on

“AVLayer collapseTransformation attribute” on page 44

When true, collapse transformation is on.

f r ame Bl e nd i ng

“AVLayer frameBlending attribute” on
page 44

When true, frame blending is enabled.

f r ame Bl e nd i ng Typ e

“AVLayer frameBlendingType attribute”
on page 44

The type of frame blending for the layer.

canS etTi meRemapEnabled

“AVLayer canSetTimeRemapEnabled
attribute” on page 43

When true, it is legal to change the value of
t i meRemapEnabled .

t i meRemapEnabl ed

“AVLayer timeRemapEnabled attribute”
on page 48

When true, time remapping is enabled on this
layer.

hasAud io

“AVLayer hasAudio attribute” on
page 45

When true, the layer contains an audio component.

39

After Effects scripting reference

AVLayer object

40

Attribute

Reference

Description

au di o Ac t ive

“AVLayer audioActive attribute” on
page 40

When true, the layer's audio is active at the current time.

bl e nd i ng Mo de

“AVLayer blendingMode attribute” on
page 42

The blending mode of the layer.

pre s e r ve Tr ansp are nc y

“AVLayer preserveTransparency attribute” on page 47

When true, preserve transparency is enabled.

t r ack Matte Ty p e

“AVLayer trackMatteType attribute” on
page 49

if layer has a track matte, specifies the way it is
applied.

isTrackMatte

“AVLayer isTrackMatte attribute” on
page 46

When true, this layer is being used as a track
matte for the layer below it.

ha sTr a ckMatte

“AVLayer hasTrackMatte attribute” on
page 45

When true, the layer above is being used as a
track matte on this layer.

qu a l it y

“AVLayer quality attribute” on page 47

The layer quality setting.

autoO r i e nt

“AVLayer autoOrient attribute” on
page 41

The type of automatic orientation for the layer.

Methods
Method

Reference

Description

au di o Ac t ive At Ti m e ( )

“AVLayer audioActiveAtTime() method”
on page 41

Reports whether this layer's audio is
active at a given time.

c a l c u l ate Transfor m From Poi nt s ( )

“AVLayer calculateTransformFromPoints() method” on page 43

Calculates a transformation from a set of
points in this layer.

re pl a ce S ou rce ( )

“AVLayer replaceSource() method” on
page 47

Changes the source item for this layer.

s ou rc e R e c t At Ti me ( )

“AVLayer sourceRectAtTime() method”
on page 48

Retrieves the source rectangle of a layer.

op e n InVi e we r( )

“AVLayer openInViewer() method” on
page 46

Opens the layer in a Layer panel.

AVLayer adjustmentLayer attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . adjustment L ayer
Description

True if the layer is an adjustment layer.
Type

Boolean; read/write.

AVLayer audioActive attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . au d i oAc t ive
Description

True if the layer's audio is active at the current time.

40

After Effects scripting reference

AVLayer object

41

For this value to be true, au d i oE nabl e d must be true, no other layer with audio may be soloing unless this layer
is soloed too, and the time must be between the i n Poi nt and out Poi nt of this layer.
Type

Boolean; read-only.

AVLayer audioActiveAtTime() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) .au d i o Ac t ive At Ti m e (time )
Description

Returns true if this layer's audio will be active at the specified time.
For this method to return true, au d i oE nabl e d must be true, no other layer with audio may be soloing unless
this layer is soloed too, and the time must be between the i n Poi nt and out Poi nt of this layer.
Parameters
t i me

The time, in seconds. A floating-point value.

Returns

Boolean.

AVLayer audioEnabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . au d i oE nabl e d
Description

When true, the layer's audio is enabled. This value corresponds to the audio toggle switch in the Timeline
panel.
Type

Boolean; read/write.

AVLayer autoOrient attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . auto O r i e nt
Description

The type of automatic orientation to perform for the layer.
Type

An AutoO r i e nt Ty p e enumerated value; read/write. One of:
AutoO r i e nt Ty p e. ALONG _ PATH

Layer faces in the direction of the motion path.

AutoO r i e nt Ty p e. C A M E R A _ OR _ P OI N T _ OF _ I N T E R E ST

Layer always faces the active camera or points at its
point of interest.

AutoO r i e nt Ty p e. C HA R AC T E R S _ T OWAR D _ C A M E R A

Each character in a per-character 3D text layer automatically faces the active camera.

41

After Effects scripting reference

AVLayer object

42

AutoO r i e nt Ty p e. NO _ AUTO _ OR I E N T

Layer rotates freely, independent of any motion
path, point of interest, or other layers.

AVLayer blendingMode attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . b l e nd i ng Mo d e
Description

The blending mode of the layer.
Type

A Ble nd i ng Mo de enumerated value; read/write. One of:
Blendi ngMo de.ADD
Blendi ngMo de.AL PHA_ADD
Bl e ndi ngMo d e. C L AS SIC _ C OLOR _ BU R N
Bl e ndi ngMo d e. C L AS SIC _ C OLOR _ D OD G E
Bl e n di ngMo d e. C L AS SIC _ DI FF E R E N C E
Ble ndi ngMo d e. C OLOR
Ble ndi ngMo d e. C OLOR _ BURN
Bl e ndi ngMo d e. C OLOR _ D OD G E
Ble ndi ngMo d e. DANC I NG_ DI SS OLV E
Ble ndi ngMo d e. DARK E N
Ble ndi ngMo d e. DARK E R_ C OLOR
Bl e n di ngMo d e. DI F F E R E NC E
Ble ndi ngMo d e. DI SS OLV E
Ble ndi ngMo d e. E XC LU SION
Ble ndi ngMo d e. HARD_ LIGH T
Bl e n di ngMo d e. HA R D _ M I X
Ble ndi ngMo d e. HU E
Ble ndi ngMo d e. L IG HT EN
Bl e ndi ngMo d e. L IG HT E R _ C OLOR
B l e n d i ngMo d e. L I N E A R _ BU R N
B l e n di ngMo d e. L I N E A R _ D OD GE
Ble ndi ngMo d e. L I NEA R_ LIG HT
Bl e n di ngMo d e. LUM I N E S C E N T _ PR E M U L
Bl e n di ngMo d e. LUM I NO SI T Y
Bl e n di ngMo d e. M U LT IP LY
Ble ndi ngMo d e. NORM A L
Ble ndi ngMo d e. OV E RL AY
Ble ndi ngMo d e. PI N_ L IG HT
Bl e ndi ngMo d e. S AT UR AT ION
B l e n di ngMo d e. S C R E E N
Ble ndi ngMo d e. SI L HOU ET E _ ALPHA
Ble ndi ngMo d e. SI L HOU ET T E_ LUM A
Ble ndi ngMo d e. S OF T _ LIGH T
Ble ndi ngMo d e. ST E NC I L _ ALPHA
Ble ndi ngMo d e. ST E NC I L _ LUM A
Bl e n di ngMo d e. V I V I D _ L IG H T

42

After Effects scripting reference

AVLayer object

43

AVLayer calculateTransformFromPoints() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) .c a l c u l ate Tr ans for mFromPoi nt s(pointTop Lef t, pointTop Right, pointB ot tom Right)
Description

Calculates a transformation from a set of points in this layer.
Parameters
p oi nt Top L e f t

The top left point coordinates in the form of an array, [x , y, z] .

p oi nt Top R i g ht

The top right point coordinates in the form of an array, [ x, y, z ] .

p oi nt B ottom R i g ht

The bottom right point coordinates in the form of an array, [ x, y, z ] .

Returns

An Object with the transformation properties set.
Example
v ar ne w L aye r = c omp.l aye rs. ad d (ne w Fo ot age );
n e w L aye r.t h re e DL aye r = t r u e ;
n e w L aye r.b l e nd i ng Mo d e = Bl e n d i ng Mo de .A L P HA_ A DD;
v ar t r ans for m = ne w L aye r. c a l c u l ate Transfor m From Poi nt s( t l, t r, b l );
for ( v ar s el i n t rans for m ) {
ne w L aye r.t r ansfor m[ s el ] .s e t Va lu e( t ransfor m [s e l ]) ;
}

AVLayer canSetCollapseTransformation attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . c anS e t C ol l ap s e Tr ansfor mat i on
Description

True if it is legal to change the value of the col l ap s e Tr ansfor mat i on attribute on this layer.
Type

Boolean; read-only.

AVLayer canSetTimeRemapEnabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . c anS etTi meR e mapEnable d
Description

True if it is legal to change the value of the timeR e mapEnable d attribute on this layer.
Type

Boolean; read-only.

43

After Effects scripting reference

AVLayer object

44

AVLayer collapseTransformation attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . c ol l ap s e Tr ansfor mat i on
Description

True if collapse transformation is on for this layer.
Type

Boolean; read/write.

AVLayer effectsActive attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . e f fe c t s Ac t ive
Description

True if the layer's effects are active, as indicated by the  icon next to it in the user interface.
Type

Boolean; read/write.

AVLayer environmentLayer attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . e nv i ron m e nt L aye r
Description

True if this is an environment layer in a Ray-traced 3D composition. Setting this attribute to true automatically
makes the layer 3D (t hre e DL aye r becomes true).
Type

Boolean; read/write.

AVLayer frameBlending attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . f rame B l e n d i ng
Description

True if frame blending is enabled for the layer.
Type

Boolean; read-only.

AVLayer frameBlendingType attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . f rame B l e n d i ng Ty p e
Description

The type of frame blending to perform when frame blending is enabled for the layer.

44

After Effects scripting reference

AVLayer object

45

Type

A Fr ame B l e n d i ng Ty p e enumerated value; read/write. One of:
Fr ame Bl e n di ngTy p e. F R A M E _ M I X
Fr ame Bl e n di ngTy p e. NO _ F R AM E _ BL E N D
Fr ame Bl e ndi ngTy p e. PIX E L _ MOTION

AVLayer guideLayer attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . g u i d e L aye r
Description

True if the layer is a guide layer.
Type

Boolean; read/write.

AVLayer hasAudio attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . h asAu d i o
Description

True if the layer contains an audio component, regardless of whether it is audio-enabled or soloed.
Type

Boolean; read-only.

AVLayer hasTrackMatte attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . h asTr ack Matt e
Description

True if the layer in front of this layer is being used as a track matte on this layer. When true, this layer's t r a ckMatte Typ e value controls how the matte is applied.
Type

Boolean; read-only.

AVLayer height attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . he i g ht
Description

The height of the layer in pixels.
Type

Floating-point; read-only.

45

After Effects scripting reference

AVLayer object

46

AVLayer isNameFromSource attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . i sName From S ou rc e
Description

True if the layer has no expressly set name, but contains a named source. In this case, layer. n ame has the same
value as laye r. s ou rc e. n am e .
False if the layer has an expressly set name, or if the layer does not have a source.
Type

Boolean; read-only.

AVLayer isTrackMatte attribute
app. proj e c t . ite m ( i n d e x ) l aye r( ind ex ). is Tr a ckMatte
Description

True if this layer is being used as a track matte for the layer behind it.
Type

Boolean; read-only.

AVLayer motionBlur attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . mot i onBlu r
Description

True if motion blur is enabled for the layer.
Type

Boolean; read/write.

AVLayer openInViewer() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) .op e n InVi e we r ( )
Description

Opens the layer in a Layer panel, and moves the Layer panel to front and gives it focus.
Parameters

None.
Returns

Viewer object for the Layer panel, or null if the layer could not be opened (e.g., for text or shape layers, which
cannot be opened in the Layer panel).

46

After Effects scripting reference

AVLayer object

47

AVLayer preserveTransparency attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . pre s e r ve Tr ans p are n c y
Description

True if preserve transparency is enabled for the layer.
Type

Boolean; read/write.

AVLayer quality attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . qu a l it y
Description

The quality with which this layer is displayed.
Type

A L aye r Q u a l it y enumerated value; read/write. One of:
L aye r Q u a l it y.B E ST
L aye r Q u a l it y.DR A FT
L aye r Q u a l it y.W I R E F R AM E

AVLayer replaceSource() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) .rep l a c e S ou rc e ( ne w S ource , f i xE x pressions )
Description

Replaces the source for this layer.
Parameters
n e w S ou rc e

The new source AVItem object.

f i x E xpre ssions

Tr u e to adjust expressions for the new source, f a l s e otherwise. Note that this feature can be
resource-intensive; if replacing a large amount of footage, do this only at the end of the operation.
See also “Project autoFixExpressions() method” on page 115.

Returns

Nothing.

AVLayer source attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . s ou rce
Description

The source AVItem for this layer. The value is null in a Text layer. Use AV L ayer. re pl a c e S ou rc e () to change the
value.
Type

AVItem object; read-only.

47

After Effects scripting reference

AVLayer object

48

AVLayer sourceRectAtTime() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) .s ou rce R e c t At Ti me ( time T, e xte nt s)
Description

Retrieves the rectangle bounds of the layer at the specified time index, corrected for text or shape layer content.
Use, for example, to write text that is properly aligned to the baseline.
Parameters
t i me T

The time index, in seconds. A floating-point value.

e x t e nt s

Tr u e to include the extents, fa ls e otherwise. Extents apply to shape layers, increasing the size of
the layer bounds as necessary.

Returns

A JavaScript object with four attributes, [ top, l e f t , w i dt h , he i g ht ] .

AVLayer threeDLayer attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . t h re e DL aye r
Description

True if this is a 3D layer.
Type

Boolean; read/write.

AVLayer threeDPerChar attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . t h re e DPe rC h ar
Description

True if this layer has the Enable Per-character 3D switch set, allowing its characters to be animated off the
plane of the text layer. Applies only to text layers.
Type

Boolean; read/write.

AVLayer timeRemapEnabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . t i meR e mapEnabled
Description

True if time remapping is enabled for this layer.
Type

Boolean; read/write.

48

After Effects scripting reference

AVLayer object

49

AVLayer trackMatteType attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . t r a ckMatte Typ e
Description

If this layer has a track matte, specifies the way the track matte is applied.
Type

A Tr ack Matte Typ e enumerated value; read/write. One of:
Tra ck Matt e Ty p e. A L PHA
Tra ck Matt e Ty p e. A L PHA_ I NV E RT E D
Tra ck Matt e Ty p e. LUM A
Tra ck Matt e Ty p e. LUM A _ IN V E RTE D
Tra ck Matt e Ty p e. NO_ T R AC K _ M AT T E

AVLayer width attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( inde x) . w i dt h
Description

The width of the layer in pixels.
Type

Floating-point; read-only.

49

After Effects scripting reference

CameraLayer object

50

CameraLayer object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x )
Description

The CameraLayer object represents a camera layer within a composition. Create it using the LayerCollection
object’s a d d C ame r a method; see “LayerCollection addCamera() method” on page 96. It can be accessed in an
item’s layer collection either by index number or by a name string.
• CameraLayer is a subclass of Layer. All methods and attributes of Layer are available when working with

CameraLayer. See “Layer object” on page 86.
AE Properties

CameraLayer defines no additional attributes, but has different AE properties than other layer types. It has the
following properties and property groups:
Marke r
Transfor m
Poi nt of Inte re st
Po sit i on
Scale
O r i e nt at i on
X R ot at i on
Y R ot at i on
R ot at i on
O p ac it y
C ame r a O pt i ons
Z o om
D e pt h of Fi el d
Fo c us Di st ance
Blur L e ve l

50

After Effects scripting reference

Collection object

51

Collection object
Like an array, a collection associates a set of objects or values as a logical group and provides access to them
by index. However, most collection objects are read-only. You do not assign objects to them yourself—their
contents update automatically as objects are created or deleted.
The index numbering of a collection starts with 1, not 0.
Objects
Object

Reference

Description

Ite m C ol l e c t i on

“ItemCollection object” on page 82 All of the items (imported files, folders, solids, and so on) found in
the Project panel.

L aye r C ol l e c t i on

“LayerCollection object” on
page 95

OMC ol l e c t i on

“OMCollection object” on page 109 All of the Output Module items in the project.

RQIte m C ol l e c t i on

“RenderQueueItem object” on
page 163

All of the layers in a composition.

All of the render-queue items in the project.

Attributes
l e ng t h

The number of objects in the collection.

Methods
[]

Retrieves an object in the collection by its index number. The first object is at index 1.

51

After Effects scripting reference

CompItem object

52

CompItem object
app. proj e c t . ite m (ind e x)
app. proj e c t . ite m s [inde x]
Description

The CompItem object represents a composition, and allows you to manipulate and get information about it.
Access the objects by position index number in a project’s ite m collection.
• CompItem is a subclass of AVItem, which is a subclass of Item. All methods and attributes of AVItem and

Item, in addition to those listed below, are available when working with CompItem. See “AVItem object” on
page 30 and “Item object” on page 78.
Example

Given that the first item in the project is a CompItem, the following code displays two alerts. The first shows
the number of layers in the CompItem, and the second shows the name of the last layer in the CompItem.
v ar f i rst C omp = app.proj e c t . it e m(1 );
a l e r t (" nu mb e r of l aye rs is " + f i rst C omp. nu m L aye rs ) ;
a l e r t ( " n ame of l a st l aye r is " + f i rst C omp. l aye r ( f i rst C omp. nu m L aye rs ) .name ) ;
Attributes
Attribute

Reference

Description

f r ame D u rat i on

“CompItem frameDuration attribute” on
page 55

The duration of a single frame.

d rop Frame

“CompItem dropFrame attribute” on
page 54

When true, indicates that the composition uses drop-frame timecode.

wor kAre a St ar t

“CompItem workAreaStart attribute” on
page 60

The work area start time.

wor k A re a D u r at i on

“CompItem workAreaDuration attribute” on
page 59

The work area duration.

nu mL aye rs

“CompItem numLayers attribute” on page 57 The number of layers in the composition.

h i de Shy L aye rs

“CompItem hideShyLayers attribute” on
page 55

When true, shy layers are visible in the
Timeline panel.

mot i on Blur

“CompItem motionBlur attribute” on
page 56

When true, motion blur is enabled for
this composition.

d r af t 3 d

“CompItem draft3d attribute” on page 54

When true, Draft 3D mode is enabled
for the Composition panel.

f r ame Bl e nd i ng

“CompItem frameBlending attribute” on
page 55

When true, time filtering is enabled for
this composition.

pre s e r ve Ne ste d Fr ame R at e

“CompItem preserveNestedFrameRate attribute” on page 57

When true, the frame rate of nested
compositions is preserved.

pre s e r ve Ne ste d R e s olut i on

“CompItem preserveNestedResolution attribute” on page 58

When true, the resolution of nested
compositions is preserved.

b g C ol or

“CompItem bgColor attribute” on page 54

The background color of the composition.

a c t ive C am e r a

“CompItem activeCamera attribute” on
page 53

The current active camera layer.

52

After Effects scripting reference

CompItem object

53

Attribute

Reference

Description

d i spl ay St ar t Ti me

“CompItem displayStartTime attribute” on
page 54

Changes the display of the start time in
the Timeline panel.

re s olut i onFac tor

“CompItem resolutionFactor attribute” on
page 58

The factor by which the x and y resolution of the Composition panel is
downsampled.

shutte r Ang l e

“CompItem shutterAngle attribute” on
page 59

The camera shutter angle.

shutte r Phas e

“CompItem shutterPhase attribute” on
page 59

The camera shutter phase.

m ot i on Blu r S ampl e s Pe r Fr ame

“CompItem motionBlurSamplesPerFrame
attribute” on page 57

The minimum number of motion blur
samples per frame for Classic 3D layers,
shape layers, and certain effects.

mot i on BlurAd aptiveSampleL i mit

“CompItem motionBlurAdaptiveSampleLimit attribute” on page 56

The maximum number of motion blur
samples of 2D layer motion.

l aye rs

“CompItem layers attribute” on page 56
“LayerCollection object” on page 95

The layers of the composition.

s e l e c te d L aye rs

“CompItem selectedLayers attribute” on
page 59

The selected layers of the composition.

s e l e c te d Prop e r t i e s

“CompItem selectedProperties attribute” on
page 59

The selected properties of the composition.

re n d e re r

“CompItem renderer attribute” on page 58

The rendering plug-in module to be
used to render this composition.

re n d e re rs

“CompItem renderers attribute” on page 58

The set of available rendering plug-in
modules.

Methods
Method

Reference

Description

dupl i c at e ( )

“CompItem duplicate() method” on page 54

Creates and returns a duplicate of this composition.

l aye r ( )

“CompItem layer() method” on page 55

Gets a layer from this composition.

op e n InVi e we r( )

“CompItem openInViewer() method” on
page 57

Opens the composition in a Composition panel.

CompItem activeCamera attribute
app. proj e c t . ite m ( i n d e x ) . a c t ive C am e r a
Description

The active camera, which is the front-most camera layer that is enabled. The value is null if the composition
contains no enabled camera layers.
Type

CameraLayer object; read-only.

53

After Effects scripting reference

CompItem object

54

CompItem bgColor attribute
app. proj e c t . ite m ( i n d e x ) . b g C ol or
Description

The background color of the composition. The three array values specify the red, green, and blue components
of the color.
Type

An array containing three floating-point values, [R, G, B], in the range [0.0..1.0]; read/write.

CompItem displayStartTime attribute
app. proj e c t . ite m ( i n d e x ) . d is pl ay St ar t Ti m e
Description

The time set as the beginning of the composition, in seconds. This is the equivalent of the Start Timecode or
Start Frame setting in the Composition Settings dialog box.
Type

Floating-point value in the range [0.0...86339.0] (1 second less than 25 hours); read/write.

CompItem draft3d attribute
app. proj e c t . ite m ( i n d e x ) . d raf t 3 d
Description

When true, Draft 3D mode is enabled for the Composition panel. This corresponds to the value of the Draft
3D button in the Composition panel.
Type

Boolean; read/write.

CompItem dropFrame attribute
app. proj e c t . ite m ( i n d e x ) . d rop Fr ame
Description

When true, indicates that the composition uses drop-frame timecode. When false, indicates non-drop-frame
timecode. This corresponds to the setting in the Composition Settings dialog box.
Type

Boolean; read/write.

CompItem duplicate() method
app. proj e c t . ite m ( i n d e x ) . dupl i c at e( )
Description

Creates and returns a duplicate of this composition, which contains the same layers as the original.

54

After Effects scripting reference

CompItem object

55

Parameters

None.
Returns

CompItem object.

CompItem frameBlending attribute
app. proj e c t . ite m ( i n d e x ) . f r ame Bl e n d i ng
Description

When true, frame blending is enabled for this Composition. Corresponds to the value of the Frame Blending
button in the Composition panel.
Type

Boolean; if true, frame blending is enabled; read/write.

CompItem frameDuration attribute
app. proj e c t . ite m (ind e x) .f r am e D u r at i on
Description

The duration of a frame, in seconds. This is the inverse of the f rame R ate value (frames-per-second).
Type

Floating-point; read/write.

CompItem hideShyLayers attribute
app. proj e c t . ite m ( i n d e x ) . h i de S hy L aye rs
Description

When true, only layers with shy set to false are shown in the Timeline panel. When false, all layers are visible,
including those whose shy value is true. Corresponds to the value of the Hide All Shy Layers button in the
Composition panel.
Type

Boolean; read/write.

CompItem layer() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x )
app. proj e c t . ite m ( i n d e x ) . l aye r ( ot h e r L aye r, re l Ind e x )
app. proj e c t . ite m ( i n d e x ) . l aye r ( nam e )
Description

Returns a Layer object, which can be specified by name, an index position in this layer, or an index position
relative to another layer.

55

After Effects scripting reference

CompItem object

56

Parameters
index

The index number of the desired layer in this composition. An integer in the range [1...numLayers], where num L ayer s is the number of layers in the composition.

—or—
ot he rL aye r

A Layer object in this composition. The rel Ind e x value is added to the index value of this
layer to find the position of the desired layer.

re l Ind e x

The position of the desired layer, relative to ot he rL aye r . An integer in the range [1–ot he rL aye r. i nde x .. . numLayers–ot he r L aye r. i nd ex ], where num Layer s is the number of
layers in the composition.
This value is added to the ot he r L aye r value to derive the absolute index of the layer to
return.

—or—
name

The string containing the name of the desired layer.

Returns

Layer object.

CompItem layers attribute
app. proj e c t . ite m ( i n d e x ) . l aye rs
Description

A LayerCollection object that contains all the Layer objects for layers in this composition. See “LayerCollection object” on page 95.
Type

LayerCollection object; read-only.

CompItem motionBlur attribute
app. proj e c t . ite m ( i n d e x ) . m ot i onBlu r
Description

When true, motion blur is enabled for the composition. Corresponds to the value of the Motion Blur button
in the Composition panel.
Type

Boolean; read/write.

CompItem motionBlurAdaptiveSampleLimit attribute
app. proj e c t . ite m ( i n d e x ) . m ot i onBlu r Ad apt ive S amp l e L i m it
Description

The maximum number of motion blur samples of 2D layer motion. This corresponds to the Adaptive Sample
Limit setting in the Advanced tab of the Composition Settings dialog box.

56

After Effects scripting reference

CompItem object

57

Type

Integer (between 16 and 256); read/write.

CompItem motionBlurSamplesPerFrame attribute
app. proj e c t . ite m ( i n d e x ) . m ot i onBlu r S ampl e s Pe r Fr ame
Description

The minimum number of motion blur samples per frame for Classic 3D layers, shape layers, and certain
effects. This corresponds to the Samples Per Frame setting in the Advanced tab of the Composition Settings
dialog box.
Type

Integer (between 2 and 64); read/write.

CompItem numLayers attribute
app. proj e c t . ite m ( i n d e x ) . nu m L aye rs
Description

The number of layers in the composition.
Type

Integer; read-only.

CompItem openInViewer() method
app. proj e c t . ite m ( i n d e x ) . op e n InVi e we r ( )
Description

Opens the composition in a Composition panel, and moves the Composition panel to front and gives it focus.
Parameters

None.
Returns

Viewer object for the Composition panel, or null if the composition could not be opened.

CompItem preserveNestedFrameRate attribute
app. proj e c t . ite m ( i n d e x ) . pre s e r ve Ne s te d Fr ame R at e
Description

When true, the frame rate of nested compositions is preserved in the current composition. Corresponds to the
value of the “Preserve frame rate when nested or in render queue” option in the Advanced tab of the Composition Settings dialog box.
Type

Boolean; read/write.

57

After Effects scripting reference

CompItem object

58

CompItem preserveNestedResolution attribute
app. proj e c t . ite m ( i n d e x ) . pre s e r ve Ne s te d R e s olut i on
Description

When true, the resolution of nested compositions is preserved in the current composition. Corresponds to the
value of the “Preserve Resolution When Nested” option in the Advanced tab of the Composition Settings
dialog box.
Type

Boolean; read/write.

CompItem renderer attribute
app. proj e c t . ite m ( i n d e x ) . re n de re r
Description

The current rendering plug-in module to be used to render this composition, as set in the Advanced tab of the
Composition Settings dialog box. Allowed values are the members of c omp Ite m .re nd e re rs .
Type

String; read/write.

CompItem renderers attribute
app. proj e c t . ite m ( i n d e x ) . re n de re rs
Description

The available rendering plug-in modules. Member strings reflect installed modules, as seen in the Advanced
tab of the Composition Settings dialog box.
Type

Array of strings; read-only.

CompItem resolutionFactor attribute
app. proj e c t . ite m ( i n d e x ) . re s olut i onFa c tor
Description

The x and y downsample resolution factors for rendering the composition.
The two values in the array specify how many pixels to skip when sampling; the first number controls
horizontal sampling, the second controls vertical sampling. Full resolution is [1,1], half resolution is [2,2], and
quarter resolution is [4,4]. The default is [1,1].
Type

Array of two integers in the range [1..99]; read/write.

58

After Effects scripting reference

CompItem object

59

CompItem selectedLayers attribute
app. proj e c t . ite m ( i n d e x ) . s e l e c te d L aye rs
Description

All of the selected layers in this composition. This is a 0-based array (the first object is at index 0).
Type

Array of Layer objects; read-only.

CompItem selectedProperties attribute
app. proj e c t . ite m ( i n d e x ) . s e l e c te d Prop e r t i e s
Description

All of the selected properties (Property and PropertyGroup objects) in this composition. The first property is
at index position 0.
Type

Array of Property and PropertyGroup objects; read-only.

CompItem shutterAngle attribute
app. proj e c t . ite m ( i n d e x ) . s hutte r A ng l e
Description

The shutter angle setting for the composition. This corresponds to the Shutter Angle setting in the Advanced
tab of the Composition Settings dialog box.
Type

Integer in the range [0...720]; read/write.

CompItem shutterPhase attribute
app. proj e c t . ite m ( i n d e x ) . s hutte r Ph as e
Description

The shutter phase setting for the composition. This corresponds to the Shutter Phase setting in the Advanced
tab of the Composition Settings dialog box.
Type

Integer in the range [–360...360]; read/write.

CompItem workAreaDuration attribute
app. proj e c t . ite m (ind e x) .workAre a D u r at i on
Description

The duration of the work area in seconds. This is the difference of the start-point and end-point times of the
Composition work area.

59

After Effects scripting reference

CompItem object

60

Type

Floating-point; read/write.

CompItem workAreaStart attribute
app. proj e c t . ite m (ind e x) .workAre a St ar t
Description

The time when the Composition work area begins, in seconds.
Type

Floating-point; read/write.

60

After Effects scripting reference

FileSource object

61

FileSource object
app. proj e c t . ite m (ind e x) .mai nS ou rce
app. proj e c t . ite m (ind e x) .proxy S ou rc e
Description

The FileSource object describes footage that comes from a file.
• FileSource is a subclass of FootageSource. All methods and attributes of FootageSource, in addition to those

listed below, are available when working with FileSource. See “FootageSource object” on page 69.
Attributes
Attribute

Reference

Description

file

“FileSource file attribute” on page 61

The file that defines this asset.

m is s i ng Fo ot a ge Pat h

“FileSource missingFootagePath attribute” The file that contains footage missing from this asset.
on page 61

Methods
Method

Reference

Description

re l o ad ( )

“FileSource reload() method” on page 62

Reloads the asset from the file, if it is a m a i n S ou rc e of
a FootageItem.

FileSource file attribute
app. proj e c t . ite m (ind e x). mainS ourc e. f i l e
app. proj e c t . ite m (ind e x) . proxy S ou rc e. f i l e
Description

The ExtendScript File object for the file that defines this asset. To change the value:
• If this FileSource is a proxyS ou rce of an AVItem, call s e t Proxy () or s e t Proxy Wit hS e qu e nc e () .
• If this FileSource is a m a i n S ou rc e of a FootageItem, call re p l a c e () or re pl a c e Wit h S e qu e nc e( ) .
Type

File object; read-only.

FileSource missingFootagePath attribute
app. proj e c t . ite m (ind e x).mainS ource.f i l e.missing Fo ot agePat h
app. proj e c t . ite m (ind e x). proxy S ou rc e. f i l e .m issi ngFo ot age Pat h
Description

The path and filename of footage that is missing from this asset. See also “AVItem footageMissing attribute”
on page 31.
Type

String; read-only.

61

After Effects scripting reference

FileSource object

62

FileSource reload() method
app. proj e c t . ite m (ind e x).mainS ource.f i l e.mai n S ou rc e. rel o a d ( )
Description

Reloads the asset from the file. This method can be called only on a mainS ource , not a prox yS ou rce .
Parameters

None.
Returns

Nothing.

62

After Effects scripting reference

FolderItem object

63

FolderItem object
app. proj e c t . Fol d e r It e m
Description

The FolderItem object corresponds to a folder in your Project panel. It can contain various types of items
(footage, compositions, solids) as well as other folders.
Example

Given that the second item in the project is a FolderItem, the following code puts up an alert for each top-level
item in the folder, showing that item’s name.
v ar s e c ond Ite m = app. proj e c t .ite m ( 2 ) ;
i f ( ! ( s e c on d It e m i nst anc e of Fol d e r Ite m ) ) {
a l e r t ( " probl e m : s e c on d ite m i s not a fol d e r" ) ;
} e ls e {
for (i = 1; i < = s e c ond Ite m. nu mIte ms ; i + +) {
a l e r t ( " it e m nu m b e r " + i + " w it hi n t he fol de r is n am e d "
+ s e c ond Ite m . it e m ( i ). n ame ) ;
}
}
Attributes
Attribute

Reference

Description

ite ms

“FolderItem items attribute” on page 64

The contents of this folder.

nu mItems

“FolderItem numItems attribute” on page 64

The number of items contained in the folder.

Method

Reference

Description

ite m( )

“FolderItem item() method” on page 63

Gets an item from the folder.

Methods

FolderItem item() method
app. proj e c t . ite m (ind e x). item
Description

Returns the top-level item in this folder at the specified index position. Note that “top-level” here means toplevel within the folder, not necessarily within the project.
Parameters
index

An integer, the position index of the item to retrieve. The first item is at index 1.

Returns

Item object.

63

After Effects scripting reference

FolderItem object

64

FolderItem items attribute
app. proj e c t . ite m (ind e x). items
Description

An ItemCollection object containing Item object that represent the top-level contents of this folder.
Unlike the ItemCollection in the Project object, this collection contains only the top-level items in the folder.
Top-level within the folder is not the same as top-level within the project. Only those items that are top-level
in the root folder are also top-level in the Project.
Type

ItemCollection object; read only.

FolderItem numItems attribute
app. proj e c t . ite m (ind e x).nu mItems
Description

The number of items contained in the ite ms collection (fold e r Ite m. ite m s . l e ng t h ).
If the folder contains another folder, only the FolderItem for that folder is counted, not any subitems contained
in it.
Type

Integer; read only.

64

After Effects scripting reference

FootageItem object

65

FootageItem object
app. proj e c t . ite m (ind e x)
app. proj e c t . ite m s [inde x]
Description

The FootageItem object represents a footage item imported into a project, which appears in the Project panel.
These are accessed by position index number in a project’s ite m collection.
• FootageItem is a subclass of AVItem, which is a subclass of Item. All methods and attributes of AVItem and

Item, in addition to those listed below, are available when working with FootageItem. See “AVItem object”
on page 30 and “Item object” on page 78.
Attributes
Attribute

Reference

Description

file

“FootageItem file attribute” on page 65

The footage source file.

m a i n S ou rc e

“FootageItem mainSource attribute” on page 66

All settings related to the footage item.

Methods
Method

Reference

Description

re pl a ce ( )

“FootageItem replace() method” on
page 66

Replaces a footage file with another footage file.

re pl aceWit hPlac ehold er( )

“FootageItem replaceWithPlaceholder() Replaces a footage file with a placeholder object.
method” on page 67

re pl a ce Wit h S e qu e nc e ( )

“FootageItem replaceWithSequence()
method” on page 67

Replaces a footage file with an image sequence.

re pl aceWit hS olid ()

“FootageItem replaceWithSolid()
method” on page 67

Replaces a footage file with a solid.

op e n InVi e we r( )

“FootageItem openInViewer() method”
on page 66

Opens the footage in a Footage panel.

FootageItem file attribute
app. proj e c t . ite m (ind e x). f i le
Description

The ExtendScript File object for the footage's source file.
If the FootageItem's mainS ource is a FileSource, this is the same as Footage Ite m . m ai n S ou rc e. f i l e . Otherwise
it is null.
Type

File object; read only.

65

After Effects scripting reference

FootageItem object

66

FootageItem mainSource attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce
Description

The footage source, an object that contains all of the settings related to that footage item, including those that
are normally accessed through the Interpret Footage dialog box. The attribute is read-only. To change its value,
call one of the FootageItem “replace” methods.
See the “FootageSource object” on page 69, and its three types:
• “SolidSource object” on page 179
• “FileSource object” on page 61
• “PlaceholderSource object” on page 113

If this is a FileSource object, and the fo ot age Mi ss i ng value is true, the path to the missing footage file is in the
Fi l e S ou rc e. m i ss i ngFo ot age Pat h attribute. See “AVItem footageMissing attribute” on page 31 and “FileSource

missingFootagePath attribute” on page 61.
Type

FootageSource object; read-only.

FootageItem openInViewer() method
app. proj e c t . ite m ( i n d e x ) . op e n InVi e we r ( )
Description

Opens the footage in a Footage panel, and moves the Footage panel to front and gives it focus.
NOTE: Missing and placeholder footage can be opened using this method, but cannot manually (via doubleclicking it).
Parameters

None.
Returns

Viewer object for the Footage panel, or null if the footage could not be opened.

FootageItem replace() method
app. proj e c t . ite m (ind e x) .re p l a c e (f ile)
Description

Changes the source of this FootageItem to the specified file. In addition to loading the file, the method creates
a new FileSource object for the file and sets mainS ource to that object. In the new source object, it sets the
name , w i dt h , heig ht , f r ame D u r at i on , and duration attributes (see “AVItem object” on page 30) based on the
contents of the file.
The method preserves interpretation parameters from the previous m a i n S ou rc e object. If the specified file has
an unlabeled alpha channel, the method estimates the alpha interpretation.

66

After Effects scripting reference

FootageItem object

67

Parameters
file

An ExtendScript File object for the file to be used as the footage main source.

FootageItem replaceWithPlaceholder() method
app. proj e c t . ite m (ind e x) .re p l a c e Wit h Pl a ce h ol d e r( name , w idth, he ig ht, f rame R ate , duration )
Description

Changes the source of this FootageItem to the specified placeholder. Creates a new PlaceholderSource object,
sets its values from the parameters, and sets m a i n S ou rc e to that object.
Parameters
name

A string containing the name of the placeholder.

w i dt h

The width of the placeholder in pixels, an integer in the range [4..30000].

heig ht

The height of the placeholder in pixels, an integer in the range [4..30000].

f r ame R at e

The frame rate of the placeholder, a floating-point value in the range [1.0..99.0]

du r at i on

The duration of the placeholder in seconds, a floating-point value in the range [0.0..10800.0].

FootageItem replaceWithSequence() method
app. proj e c t . ite m (ind e x) .re p l a c e Wit h S e qu e nc e ( f ile , forceAlphabetical)
Description

Changes the source of this FootageItem to the specified image sequence. In addition to loading the file, the
method creates a new FileSource object for the file and sets m ai nS ou rc e to that object. In the new source
object, it sets the name , w i dt h , heig ht , f r ame D u rat i on , and du r at i on attributes (see “AVItem object” on
page 30) based on the contents of the file.
The method preserves interpretation parameters from the previous m a i n S ou rc e object. If the specified file has
an unlabeled alpha channel, the method estimates the alpha interpretation.
Parameters
file

An ExtendScript File object for the first file in the sequence to be used as the footage main source.

forc e A lp hab e t i c a l

When true, use the “Force alphabetical order” option.

FootageItem replaceWithSolid() method
app. proj e c t . ite m (ind e x) .re p l a c e Wit h S ol i d ( color, n ame , w idth , height, pix elAspec t)
Description

Changes the source of this FootageItem to the specified solid. Creates a new SolidSource object, sets its values
from the parameters, and sets m ai n S ou rc e to that object.

67

After Effects scripting reference

FootageItem object

68

Parameters
c ol or

The color of the solid, an array of three floating-point values, [R, G, B], in the range [0.0..1.0].

name

A string containing the name of the solid.

w i dt h

The width of the solid in pixels, an integer in the range [4..30000].

heig ht

The height of the solid in pixels, an integer in the range [4..30000].

pi xel Asp e c t

The pixel aspect ratio of the solid, a floating-point value in the range [0.01..100.0].

68

After Effects scripting reference

FootageSource object

69

FootageSource object
app. proj e c t . ite m (ind e x) .mai nS ou rce
app. proj e c t . ite m (ind e x) .proxy S ou rc e
Description

The FootageSource object holds information describing the source of some footage. It is used as the
m a i n S ou rc e of a FootageItem, or the proxy S ou rc e of a CompItem or FootageItem. See “FootageItem object”
on page 65 and “CompItem object” on page 52.
• FootageSource is the base class for SolidSource, so FootageSource attributes and methods are available

when working with SolidSource objects. See “SolidSource object” on page 179.
Attributes
Attribute

Reference

Description

hasA lph a

“FootageSource hasAlpha attribute” on When true, a footage clip or proxy includes an
page 72
alpha channel.

a lpha Mo d e

“FootageSource alphaMode attribute”
on page 70

pre mu l C ol or

“FootageSource premulColor attribute” The color to be premultiplied.
on page 73

i nve r t A lpha

“FootageSource invertAlpha attribute”
on page 72

When true, an alpha channel in a footage clip or
proxy should be inverted.

i sSt i l l

“FootageSource isStill attribute” on
page 72

When true, footage is a still image.

f i e l dS e p ar at i onTy p e

“FootageSource fieldSeparationType
attribute” on page 71

The field separation type.

h i g h Q u a l it y Fi e l d S e p ar at i on

“FootageSource highQualityFieldSeparation attribute” on page 72

How the fields are to be separated in non-still footage.

re move P u l l d ow n

“FootageSource removePulldown attri- The pulldown type for the footage.
bute” on page 73

l o op

“FootageSource loop attribute” on
page 73

How many times an image sequence is set to loop.

nat ive FrameR ate

“FootageSource nativeFrameRate attribute” on page 73

The native frame rate of the footage.

d i spl ay Fr ame R ate

“FootageSource displayFrameRate
attribute” on page 70

The effective frame rate as displayed and rendered
in compositions by After Effects.

confor mFrameR ate

“FootageSource conformFrameRate
attribute” on page 70

The rate to which footage should conform.

The mode of an alpha channel.

Methods
Method

Reference

Description

g u ess A lphaMo d e ()

“FootageSource guessAlphaMode()
method” on page 71

Estimates the a lpha Mo d e setting.

g u e ss P u l l dow n ()

“FootageSource guessPulldown()
method” on page 71

Estimates the pu l l d ow nTyp e setting.

69

After Effects scripting reference

FootageSource object

70

FootageSource alphaMode attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce .a lph aMo d e
app. proj e c t . ite m (ind e x) .proxy S ou rc e. a lpha Mo d e
Description

The alphaMode attribute of footageSource defines how the alpha information in the footage is to be interpreted. If hasAlpha is false, this attribute has no relevant meaning.
Type

An A lpha Mo d e enumerated value; (read/write). One of:
A lp ha Mo de .IG NOR E
A lp ha Mo de .ST R AIG HT
A lp h a Mo de . P R E M U LT IP L I E D

FootageSource conformFrameRate attribute
app. proj e c t . ite m (ind e x) .mainS ou rce.confor mFrameR ate
app. proj e c t . ite m (ind e x) .proxy S ou rc e. confor m Fr ame R ate
Description

A frame rate to use instead of the nat ive Fr ameR ate value. If set to 0, the n at ive Fr ame R ate is used instead.
It is an error to set this value if Fo ot ageS ou rc e.i sSt i l l is true. It is an error to set this value to 0 if re move P u l l d ow n is not set to P u l l d ow n Ph a s e. OFF. If this is 0 when you set re move P u l l d ow n to a value other than
P u l l d ow nPhas e. OF F, then this is automatically set to the value of nat ive FrameR ate .
Type

Floating-point value in the range [0.0.. 99.0]; read/write.

FootageSource displayFrameRate attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce .d i spl ay Frame R ate
app. proj e c t . ite m (ind e x) .proxy S ou rc e. di spl ayFr ame R ate
Description

The effective frame rate as displayed and rendered in compositions by After Effects.
If re move P u l l d ow n is P u l l d ow nPhas e. OF F, then this is the same as the c on for m Fram e R ate (if non-zero) or
the n at ive Fr ame R ate (if c on for m Fram e R ate is 0). If re m ove P u l l d ow n is not P u l l d ow nPhas e. OF F, this is
confor mFrameR ate * 0.8, the effective frame rate after removing 1 of every 5 frames.
Type

Floating-point value in the range [0.0.. 99.0]; read-only.

70

After Effects scripting reference

FootageSource object

71

FootageSource fieldSeparationType attribute
app. proj e c t . ite m (ind e x) .mai n S ou rce .f i e l d S e p ar at i onTy p e
app. proj e c t . ite m (ind e x) .prox y S ou rc e. f i el d S ep ar at i onTy p e
Description

How the fields are to be separated in non-still footage.
It is an error to set this attribute if i sSt i l l is true. It is an error to set this value to Fi el d S e p arat i onTy p e. OFF if
re move P u l l d ow n is not Pu l l dow nPhas e.OFF.
Type

A Fi eldS epar at ionTyp e enumerated value; read/write. One of:
Fi el d S e p ar at i onTy p e. OF F
Fi el d S e p ar at i onTy p e. U PP E R _ F I E L D _ F I R ST
Fi el d S e p ar at i onTy p e. LOWE R _ FI E L D _F I R ST

FootageSource guessAlphaMode() method
app. proj e c t . ite m (ind e x) .mai n S ou rce .g u e s s A lph a Mo d e ( )
app. proj e c t . ite m (ind e x) .proxy S ou rc e. gu e ssA lpha Mo d e ()
Description

Sets a lpha Mo d e , pre mu l C ol or, and i nve r tA lpha to the best estimates for this footage source. If hasA lpha is
false, no change is made.
Parameters

None.
Returns

Nothing.

FootageSource guessPulldown() method
app. proj e c t . ite m (ind e x) .mai nS ou rce .g u e ssPu l l dow n(m ethod )
app. proj e c t . ite m (ind e x) .prox y S ou rc e. g u e ssP u l l d ow n ( metho d )
Description

Sets f i eldS epar at ionTyp e and re move Pu l l d ow n to the best estimates for this footage source. If i s St i l l is true,
no change is made.
Parameters
met ho d

The method to use for estimation. A P u l l d ow n Me t h o d enumerated value, one of:

P u l l d ow n Me t h o d . P U L L D OW N _ 3 _ 2
P u lldow nMet ho d.ADVANCE_24P
Returns

Nothing.

71

After Effects scripting reference

FootageSource object

72

FootageSource hasAlpha attribute
app. proj e c t . ite m (ind e x) .mainS ou rce.hasA lp ha
app. proj e c t . ite m (ind e x) .proxy S ou rc e. has Alpha
Description

When true, the footage has an alpha component. In this case, the attributes a lpha Mo d e , i nve r t A lpha , and
pre mu l C ol or have valid values. When false, those attributes have no relevant meaning for the footage.
Type

Boolean; read-only.

FootageSource highQualityFieldSeparation attribute
app. proj e c t . ite m (ind e x) .mai n S ou rce .h i g h Q u a l it y Fi e l d S e p ar at i on
app. proj e c t . ite m (ind e x) .prox y S ou rc e. h i g h Q u a l it yFi el d S e p ar at i on
Description

When true, After Effects uses special algorithms to determine how to perform high-quality field separation.
It is an error to set this attribute if i sSt i l l is true, or if f i el d S e p ar at i onTy p e is Fi el d S e p ar at i onTy p e. OF F.
Type

Boolean; read/write.

FootageSource invertAlpha attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce .i nve r t Alpha
app. proj e c t . ite m (ind e x) .proxy S ou rc e. i nve r t A lp ha
Description

When true, an alpha channel in a footage clip or proxy should be inverted.
This attribute is valid only if an alpha is present. If h asA lp ha is false, or if a lpha Mo d e is A lp haMo de. IG NOR E ,
this attribute is ignored.
Type

Boolean; read/write.

FootageSource isStill attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce .i sSt i l l
app. proj e c t . ite m (ind e x) .proxy S ou rc e. is St i l l
Description

When true the footage is still; when false, it has a time-based component.
Examples of still footage are JPEG files, solids, and placeholders with duration of 0. Examples of non-still
footage are movie files, sound files, sequences, and placeholders of non-zero duration.
Type

Boolean; read-only.

72

After Effects scripting reference

FootageSource object

73

FootageSource loop attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce .l o op
app. proj e c t . ite m (ind e x) .proxy S ou rc e. l o op
Description

The number of times that the footage is to be played consecutively when used in a composition.
It is an error to set this attribute if i sSt i l l is true.
Type

Integer in the range [1.. 9999]; default is 1; read/write.

FootageSource nativeFrameRate attribute
app. proj e c t . ite m (ind e x) .mai n S ou rce .n at ive Fr ame R ate
app. proj e c t . ite m (ind e x) .proxy S ou rc e. nat ive Fr ame R at e
Description

The native frame rate of the footage.
Type

Floating-point; read/write.

FootageSource premulColor attribute
app. proj e c t . ite m (ind e x) .mai n S ou rce .pre mu l C ol or
app. proj e c t . ite m (ind e x) .proxy S ou rc e. pre mu l C ol or
Description

The color to be premultiplied. This attribute is valid only if the a lpha Mo d e is a lph aMo d e.PREMULTIPLIED .
Type

Array of three floating-point values [ R , G , B ] , in the range [0.0..1.0]; read/write.

FootageSource removePulldown attribute
app. proj e c t . ite m (ind e x) .mai nS ou rce .re move P u l l d ow n
app. proj e c t . ite m (ind e x) .prox y S ou rc e. re m ove P u l l dow n
Description

How the pulldowns are to be removed when field separation is used.
It is an error to set this attribute if i sSt i l l is true. It is an error to attempt to set this to a value other than
P u l l d ow nPhas e. OF F in the case where f i eldS epar at ionTyp e is Fi el dS e p ar at i onTy p e .OF F.
Type

A P u l l d ow nPha s e enumerated value; read/write. One of:
P u l l d ow nP h a s e . R e m ove P u l l d ow n. OF F
P u l l dow nPhas e.Remove Pu l l dow n.WS SW W
P u l l dow nPhas e.Remove Pu l l dow n.SS W WW

73

After Effects scripting reference

FootageSource object

74

P u l l dow nPhas e.Remove Pu l l dow n.SW W WS
P u l l dow nPhas e.Remove Pu l l dow n.W WWSS
P u l l dow nPhas e.Remove Pu l l dow n.W WSS W
P u l l dow nPhas e.Remove Pu l l dow n.WS SW W _ 24P _A DVANC E
P u l l dow nPhas e.Remove Pu l l dow n.SS W WW _24 P_ADVANCE
P u l l dow nPhas e.Remove Pu l l dow n.SW W WS _ 24P _A DVANC E
P u l l dow nPhas e.Remove Pu l l dow n.W WWSS _24P _A DVANCE
P u l l dow nPhas e.Remove Pu l l dow n.W WSS W _24P _A DVANCE

74

After Effects scripting reference

ImportOptions object

75

ImportOptions object
n e w Imp or t O pt i ons ( ) ;
n e w Imp or t O pt i ons (f ile ) ;
Description

The ImportOptions object encapsulates the options used to import a file with the Proj e c t . i mp or t Fi l e
methods. See “Project importFile() method” on page 118.
The constructor takes an optional parameter, an ExtendScript File object for the file. If it is not supplied, you
must explicitly set the value of the f i l e attribute before using the object with the i mp or t Fi l e method. For
example:
n e w Imp or t O pt i ons ( ) .f i l e = n e w Fi l e( " my f i l e. p s d " ) ;
Attributes
Attributes

Reference

Description

i mp or t As

“ImportOptions importAs attribute” on
page 76

The type of file to be imported.

s e qu e nc e

“ImportOptions sequence attribute” on
page 77

When true, import a sequence of files, rather than an individual file.

forc e A lp hab e t i c a l

“ImportOptions forceAlphabetical attribute” on page 76

When true, the “Force alphabetical order” option is set.

file

“ImportOptions file attribute” on
page 76

The file to import, or the first file of the sequence to import.

Methods
Method

Reference

Description

c an Imp or t As ( )

“ImportOptions canImportAs() method” Restricts input to a particular file type.
on page 75

ImportOptions canImportAs() method
imp or tO pti on s.c anImp or t As (ty pe )
Description

Reports whether the file can be imported as the source of a particular object type. If this method returns true,
you can set the given type as the value of the i mp or t As attribute. See “ImportOptions importAs attribute” on
page 76.
Parameters
t yp e

The type of file that can be imported. An Imp or t AsTy p e

enumerated value; one of:

Imp or t AsTyp e. C OM P
Imp or t AsTyp e. FO OTAG E
Imp or t AsTyp e. C OM P _ C ROPPE D_ L AY E R S
Imp or t AsTyp e. PROJE C T

75

After Effects scripting reference

ImportOptions object

76

Returns

Boolean.
Example
v ar i o = n e w Imp or t O pt i ons ( Fi l e ( “c : \ \ my Fi l e. p s d” ) ) ;
i f i o. c anImp or t As( Imp or t As Ty p e .C OM P ) ;
i o.i mp or tAs = Imp or t AsTyp e. C OM P;

ImportOptions file attribute
imp or tO pti on s.f i l e
Description

The file to be imported. If a file is set in the constructor, you can access it through this attribute.
Type

ExtendScript File object; read/write.

ImportOptions forceAlphabetical attribute
imp or tO pti on s.force A lphab e t i c a l
Description

When true, has the same effect as setting the “Force alphabetical order” option in the File > Import > File
dialog box.
Type

Boolean; read/write.

ImportOptions importAs attribute
imp or tO pti on s.i mp or t As
Description

The type of object for which the imported file is to be the source. Before setting, use c an Imp or t As to check
that a given file can be imported as the source of the given object type. See “ImportOptions canImportAs()
method” on page 75.
Type

An Imp or t As Typ e enumerated value; read/write. One of:
Imp or t AsTy p e. C OM P_ C ROPPE D _L AYE R S
Imp or t AsTy p e. F O OTAGE
Imp or t AsTy p e. C OM P
Imp or t AsTy p e. PROJE C T

76

After Effects scripting reference

ImportOptions object

77

ImportOptions sequence attribute
imp or tO pti on s.s e qu e nc e
Description

When true, a sequence is imported; otherwise, an individual file is imported.
Type

Boolean; read/write.

77

After Effects scripting reference

Item object

78

Item object
app. proj e c t . ite m ( i n d e x )
app. proj e c t . ite m s [ i n d e x ]
Description

The Item object represents an item that can appear in the Project panel.
The first item is at index 1.
• Item is the base class for AVItem and for FolderItem, which are in turn the base classes for various other

item types, so Item attributes and methods are available when working with all of these item types. See
“AVItem object” on page 30 and “FolderItem object” on page 63.
Attributes
Attributes

Reference

Description

name

“Item name attribute” on page 79

The name of the object as shown in the Project panel.

c om m e nt

“Item comment attribute” on page 79

A descriptive string.

id

“Item id attribute” on page 79

A unique identifier for this item.

p are nt Fol d e r

“Item parentFolder attribute” on page 80

The parent folder of this item.

s e l e c te d

“Item selected attribute” on page 80

When true, this item is currently selected.

t yp e Name

“Item typeName attribute” on page 81

The type of item.

l ab el

“Item label attribute” on page 79

The label color for the item.

Method

Reference

Description

re move ( )

“Item remove() method” on page 80

Deletes the item from the project.

Methods

Example

This example gets the second item from the project and checks that it is a folder. It then removes from the
folder any top-level item that is not currently selected. It also checks to make sure that, for each item in the
folder, the parent is properly set to the correct folder.
v ar myFol d er = app. proj e c t . ite m ( 2 ) ;
if (my Folder.t yp e Name != " Fol d e r " ) {
a l e r t ( " e r ror : s e c on d ite m i s n ot a fol d e r " ) ;
}
els e {
v ar nu m In Fol d e r = myFol d e r. nu m Ite ms ;
/ / A l w ay s r u n l o op s b a c k w ards w he n d el e t i ng t h i ng s :
for ( i = nu m In Fol d e r ; i > = 1 ; i -- ) {
v ar c u r Ite m = my Fol d e r. ite m ( i );
i f ( c u r Ite m . p are nt Fol d e r ! = myFol d e r) {
a l e r t ( " e r ror w it hi n A E : t he p are nt Fol d e r i s not s e t cor re c t ly " ) ;
}
els e {
i f ( ! c u r Ite m . s e l e c te d & & c u r Ite m .t yp e Nam e = = "Fo ot age " ) {

78

After Effects scripting reference

Item object

79

/ / fou nd an u ns el e c te d s ol i d .
c u r Ite m . re move () ;
}
}
}
}

Item comment attribute
app. proj e c t . ite m (ind e x) .comment
Description

A string that holds a comment, up to 15,999 bytes in length after any encoding conversion. The comment is
for the user's purpose only; it has no effect on the item's appearance or behavior.
Type

String; read/write.

Item id attribute
app. proj e c t . ite m (ind e x) .i d
Description

A unique and persistent identification number used internally to identify an item between sessions. The value
of the ID remains the same when the project is saved to a file and later reloaded. However, when you import
this project into another project, new IDs are assigned to all items in the imported project. The ID is not
displayed anywhere in the user interface.
Type

Integer; read-only.

Item label attribute
app. proj e c t . ite m ( i n d e x ) . l ab e l
Description

The label color for the item. Colors are represented by their number (0 for None, or 1 to 16 for one of the preset
colors in the Labels preferences).
Custom label colors cannot be set programmatically.
Type

Integer (0 to 16); read/write.

Item name attribute
app. proj e c t . ite m ( i n d e x ) . n am e
Description

The name of the item as displayed in the Project panel.

79

After Effects scripting reference

Item object

80

Type

String; read/write.

Item parentFolder attribute
app. proj e c t . ite m (ind e x) .p are nt Fol d e r
Description

The FolderItem object for the folder that contains this item. If this item is at the top level of the project, this is
the project's root folder (app.proj e c t . ro ot Fol d e r ). You can use the ItemCollection’s a d dFol d e r method to add
a new folder, and set this value to put items in the new folder. See “ItemCollection addFolder() method” on
page 82.
Type

FolderItem object; read/write.
Example

This script creates a new FolderItem in the Project panel and moves compositions into it.
/ / cre at e a ne w Fol d e r Ite m i n proj e c t , w it h n am e “c omp s”
v ar c omp Fol d e r = app. proj e c t . ite ms. a d dFol d e r (“c omp s”) ;
/ / m ove a l l c omp o s it i ons i nto n e w fol d e r by s e tt i ng
/ / comp Ite m’s p are nt Fol d e r to “c omp s” fol de r
for ( v ar i = 1 ; i < = app. proj e c t .nu m Ite m s ; i + + ) {
i f ( app.proj e c t . it e m ( i ) i nst anc e of C omp Ite m )
app. proj e c t . ite m ( i ) .p are nt Fol d e r = comp Fol de r ;
}

Item remove() method
app. proj e c t . ite m (ind e x) .re m ove ( )
Description

Deletes this item from the project and from the Project panel. If the item is a FolderItem, all the items
contained in the folder are also removed from the project. No files or folders are removed from disk.
Parameters

None.
Returns

Nothing.

Item selected attribute
app. proj e c t . ite m (ind e x) .s el e c t e d
Description

When true, this item is selected. Multiple items can be selected at the same time. Set to true to select the item
programmatically, or to false to deselect it.

80

After Effects scripting reference

Item object

81

Type

Boolean; read/write.

Item typeName attribute
app. proj e c t . ite m (ind e x) .t yp e Name
Description

A user-readable name for the item type; for example, “Folder”, “Footage”, or “Composition”.
Type

String; read-only.

81

After Effects scripting reference

ItemCollection object

82

ItemCollection object
app. proj e c t . ite m s
Description

The ItemCollection object represents a collection of items. The ItemCollection belonging to a Project object
contains all the Item objects for items in the project. The ItemCollection belonging to a FolderItem object
contains all the Item objects for items in that folder.
• ItemCollection is a subclass of Collection. All methods and attributes of Collection, in addition to those

listed below, are available when working with ItemCollection. See “Collection object” on page 51.
Methods
Method

Reference

Description

a d dC omp ( )

“ItemCollection addComp() method” on
page 82

Creates a new CompItem object and adds it to the collection.

a d dFol d e r ( )

“ItemCollection addFolder() method” on
page 82

Creates a new FolderItem object and adds it to the collection.

ItemCollection addComp() method
app. proj e c t . ite m s. ad d C omp (name , w idth, he ig ht, pi x el Aspec t, duration, f ram eR ate)
Description

Creates a new composition. Creates and returns a new CompItem object and adds it to this collection.
If the ItemCollection belongs to the project or the root folder, then the new item’s p are nt Fol de r is the root
folder. If the ItemCollection belongs to any other folder, the new item’s p are nt Fol d e r is that Fol de r Ite m .
Parameters
name

A string containing the name of the composition.

w i dt h

The width of the composition in pixels, an integer in the range [4..30000].

heig ht

The height of the composition in pixels, an integer in the range [4..30000].

pi xel Asp e c t

The pixel aspect ratio of the composition, a floating-point value in the range [0.01..100.0].

du r at i on

The duration of the composition in seconds, a floating-point value in the range [0.0..10800.0].

f r ame R at e

The frame rate of the composition, a floating-point value in the range [1.0..99.0]

Returns

CompItem object.

ItemCollection addFolder() method
app. proj e c t . ite m s. ad d Fol de r (name )
Description

Creates a new folder. Creates and returns a new FolderItem object and adds it to this collection.

82

After Effects scripting reference

ItemCollection object

83

If the ItemCollection belongs to the project or the root folder, then the new folder’s p are nt Fol de r is the root
folder. If the ItemCollection belongs to any other folder, the new folder’s p are nt Fol d e r is that Fol de r Ite m .
To put items in the folder, set the item object’s p are nt Fol d e r attribute; see “Item parentFolder attribute” on
page 80.
Parameters
name

A string containing the name of the folder.

Returns

FolderItem object.
Example

This script creates a new FolderItem in the Project panel and moves compositions into it.
/ / cre at e a ne w Fol d e r Ite m i n proj e c t , w it h n am e “c omp s”
v ar c omp Fol d e r = app. proj e c t . ite ms. a d dFol d e r (“c omp s”) ;
/ / m ove a l l c omp o s it i ons i nto n e w fol d e r by s e tt i ng
/ / comp Ite m’s p are nt Fol d e r to “c omp s” fol de r
for ( v ar i = 1 ; i < = app. proj e c t .nu m Ite m s ; i + + ) {
i f ( app.proj e c t . it e m ( i ) i nst anc e of C omp Ite m )
app. proj e c t . ite m ( i ) .p are nt Fol d e r = comp Fol de r ;
}

83

After Effects scripting reference

KeyframeEase object

84

KeyframeEase object
myKe y = ne w Ke y f r ame E a s e (speed, inf luence );
Description

The KeyframeEase object encapsulates the keyframe ease settings of a layer’s AE property. Keyframe ease is
determined by the speed and influence values that you set using the property’s s e t Te mp or a l E a s e At Ke y
method. See “Property setTemporalEaseAtKey() method” on page 144.
The constructor creates a KeyframeEase object. Both parameters are required.
• sp e e d : A floating-point value. Sets the sp e e d attribute.
• i nf lu e nc e : A floating-point value in the range [0.1..100.0]. Sets the i n f lu e n c e attribute.

Example

This example assumes that the Position, a spatial property, has more than two keyframes.
v ar e as e In = n e w Ke y f r ame E a s e (0 .5 , 5 0 );
v ar e as e O ut = n e w Ke y f r am e E a s e ( 0 . 7 5 , 8 5 );
v ar myPos it i onProp e r t y = app. proj e c t .ite m ( 1 ) .l ay e r ( 1 ) .prop e r t y( "Pos it i on ")
myPos it i onProp e r t y. s e t Te mp or a l E as e At Ke y ( 2 , [ e a s e In ], [ e a s e O ut ] ) ;

This example sets the Scale, a temporal property with either two or three dimensions. For 2D and 3D
properties you must set an e as eIn and e a s e O ut value for each dimension:
v ar e as e In = n e w Ke y f r ame E a s e (0 .5 , 5 0 );
v ar e as e O ut = n e w Ke y f r am e E a s e ( 0 . 7 5 , 8 5 );
v ar myS c a l e Prop e r t y = app.proj e c t . ite m ( 1 ) . l aye r ( 1 ). prop er t y ( " S c a l e ")
myS c a l e Prop e r t y.s e t Te mp or a l E a s e At Ke y( 2 , [ e a s e In , e as e In , e as e In] , [ e as e O ut , e as e O ut, e as e O ut ] ) ;
Attributes
Attribute

Reference

Description

sp e e d

“KeyframeEase speed attribute” on page 85

The speed setting for a keyframe.

inf luence

“KeyframeEase influence attribute” on page 84

The influence setting for a keyframe.

KeyframeEase influence attribute
myKe y. i n f lu e n c e
Description

The influence value of the keyframe, as shown in the Keyframe Velocity dialog box.
Type

Floating-point value in the range [0.1..100.0]; read/write.

84

After Effects scripting reference

KeyframeEase object

85

KeyframeEase speed attribute
myKe y. sp e e d
Description

The speed value of the keyframe. The units depend on the type of keyframe, and are displayed in the Keyframe
Velocity dialog box.
Type

Floating-point value; read/write.

85

After Effects scripting reference

Layer object

86

Layer object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x )
Description

The Layer object provides access to layers within compositions. It can be accessed from an item’s layer
collection either by index number or by a name string.
• Layer is the base class for CameraLayer, LightLayer, and AVLayer, so Layer attributes and methods are

available when working with all layer types. See “AVLayer object” on page 38,
“CameraLayer object” on page 50, and “LightLayer object” on page 100.
Layers contain AE properties, in addition to their JavaScript attributes and methods. For examples of how to
access properties in layers, see “PropertyBase object” on page 148.
Example

If the first item in the project is a CompItem, this example disables the first layer in that composition and
renames it. This might, for example, turn an icon off in the composition.
v ar f i rst L aye r = app.proj e c t . ite m ( 1 ) . l aye r ( 1 );
f i rst L aye r. e n abl e d = fa l s e ;
f i rst L aye r. n ame = " D i s ab l e d L aye r " ;
Attributes
Attribute

Reference

Description

index

“Layer index attribute” on page 90

The index position of the layer.

name

“Layer name attribute” on page 92

The name of the layer.

p are nt

“Layer parent attribute” on page 92

The parent of this layer.

t i me

“Layer time attribute” on page 94

The current time of the layer.

st ar tTime

“Layer startTime attribute” on page 94

The start time of the layer.

s t re t ch

“Layer stretch attribute” on page 94

The time stretch percentage of the layer.

i n Poi nt

“Layer inPoint attribute” on page 90

The “in” point of the layer.

out Poi nt

“Layer outPoint attribute” on page 92

The “out” point of the layer.

e n abl e d

“Layer enabled attribute” on page 89

When true, the layer is enabled.

s ol o

“Layer solo attribute” on page 94

When true, the layer is soloed.

shy

“Layer shy attribute” on page 93

When true, the layer is shy.

lo cked

“Layer locked attribute” on page 90

When true, the layer is locked.

hasVi de o

“Layer hasVideo attribute” on page 89

When true, the layer contains a video component.

a c t ive

“Layer active attribute” on page 87

When true, the layer is active at the current time.

nu l l L aye r

“Layer nullLayer attribute” on page 92

When true, this is a null layer.

s e l e c te d Prop e r t i e s

“Layer selectedProperties attribute” on page 93

All selected AE properties in the layer.

c om m e nt

“Layer comment attribute” on page 88

A descriptive comment for the layer.

c ont ai n i ng C omp

“Layer containingComp attribute” on page 88

The composition that contains this layer.

86

After Effects scripting reference

Layer object

87

Attribute

Reference

Description

isNameS e t

“Layer isNameSet attribute” on page 90

When true, the layer’s name has been explicitly set.

Methods
Method

Reference

Description

re move ( )

“Layer remove() method” on page 93

Deletes the layer from the composition.

move ToB e g i nning ( )

“Layer moveToBeginning() method” on
page 91

Moves the layer to the top of the composition (makes it the
first layer).

moveToEnd( )

“Layer moveToEnd() method” on
page 91

Moves the layer to the bottom of the composition (makes it
the last layer).

moveAf ter()

“Layer moveAfter() method” on page 90 Moves the layer below another layer.

moveB e fore ()

“Layer moveBefore() method” on
page 91

Moves the layer above another layer.

dupl i c at e ( )

“Layer duplicate() method” on page 89

Duplicates the layer.

c opyToC omp ()

“Layer copyToComp() method” on
page 89

Copies the layer to the top (beginning) of another composition.

a c t ive At Ti m e ( )

“Layer activeAtTime() method” on
page 87

Reports whether this layer will be active at a specified time.

s e t Parent Wit h Ju mp ( )

“Layer setParentWithJump() method”
on page 93

Sets a new parent for this layer.

appl yPre s e t ( )

“Layer applyPreset() method” on
page 88

Applies a named collection of animation settings to the
layer.

Layer active attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .a c t i ve
Description

When true, the layer's video is active at the current time.
For this to be true, the layer must be enabled, no other layer may be soloing unless this layer is soloed too, and
the time must be between the i n Poi nt and out Poi nt values of this layer.
This value is never true in an audio layer; there is a separate au d i oAc t ive attribute in the AVLayer object.
Type

Boolean; read-only.

Layer activeAtTime() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .a c t i ve At Ti m e ( tim e)
Description

Returns true if this layer will be active at the specified time. To return true, the layer must be enabled, no other
layer may be soloing unless this layer is soloed too, and the time must be between the i n Poi nt and out Poi nt
values of this layer.

87

After Effects scripting reference

Layer object

88

Parameters
t i me

The time in seconds, a floating-point value.

Returns

Boolean.

Layer applyPreset() method
app app. proj e c t . ite m (i n de x ). l aye r (i n d e x ). appl yPre s e t (presetName) ;
Description

Applies the specified collection of animation settings (an animation preset) to the layer. Predefined animation
preset files are installed in the Presets folder, and users can create new animation presets through the user
interface.
Parameters
pre s e t Name

An ExtendScript File object for the file containing the animation preset.

Returns

Nothing.

Layer comment attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .c om m e nt
Description

A descriptive comment for the layer.
Type

String; read/write.

Layer containingComp attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .c ont ai n i ng C omp
Description

The composition that contains this layer.
Type

CompItem object; read-only.

88

After Effects scripting reference

Layer object

89

Layer copyToComp() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .c opy To C omp ( into C omp)
Description

Copies the layer into the specified composition. The original layer remains unchanged. Creates a new Layer
object with the same values as this one, and prepends the new object to the l aye rs collection in the target
CompItem. Retrieve the copy using into C omp. l aye r (1) .
Copying in a layer changes the index positions of previously existing layers in the target composition. This is
the same as copying and pasting a layer through the user interface.
Parameters
i ntoC omp

The target composition, and CompItem object.

Returns

Nothing.

Layer duplicate() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .dupl i c ate ( )
Description

Duplicates the layer. Creates a new Layer object in which all values are the same as in this one. This has the
same effect as selecting a layer in the user interface and choosing Edit > Duplicate, except the selection in the
user interface does not change when you call this method.
Parameters

None.
Returns

Layer object.

Layer enabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .e n abl e d
Description

When true, the layer is enabled; otherwise false. This corresponds to the video switch state of the layer in the
Timeline panel.
Type

Boolean; read/write.

Layer hasVideo attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ha s Vi de o
Description

When true, the layer has a video switch (the eyeball icon) in the Timeline panel; otherwise false.

89

After Effects scripting reference

Layer object

90

Type

Boolean; read-only.

Layer index attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .i n d e x
Description

The index position of the layer.
Type

Integer in the range [1..nu mL aye rs ]; read-only.

Layer inPoint attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .i n Poi nt
Description

The “in” point of the layer, expressed in composition time (seconds).
Type

Floating-point value in the range [-10800.0..10800.0] (minus or plus three hours); read/write.

Layer isNameSet attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .i s Name S e t
Description

True if the value of the name attribute has been set explicitly, rather than automatically from the source.
Type

Boolean; read-only.

Layer locked attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .l o cke d
Description

When true, the layer is locked; otherwise false. This corresponds to the lock toggle in the Layer panel.
Type

Boolean; read/write.

Layer moveAfter() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .move A f te r (layer )
Description

Moves this layer to a position immediately after (below) the specified layer.

90

After Effects scripting reference

Layer object

91

Parameters
l aye r

The target layer, a layer object in the same composition.

Returns

Nothing.

Layer moveBefore() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .move B e fore ( layer )
Description

Moves this layer to a position immediately before (above) the specified layer.
Parameters
l aye r

The target layer, a layer object in the same composition.

Returns

Nothing.

Layer moveToBeginning() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .move To B e g i n n i n g( )
Description

Moves this layer to the topmost position of the layer stack (the first layer).
Parameters

None.
Returns

Nothing.

Layer moveToEnd() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .move To E n d ( )
Description

Moves this layer to the bottom position of the layer stack (the last layer).
Parameters

None.
Returns

Nothing.

91

After Effects scripting reference

Layer object

92

Layer name attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .name
Description

The name of the layer. By default, this is the same as the Source name (which cannot be changed in the Layer
panel), but you can set it to be different.
Type

String; read/write.

Layer nullLayer attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .nu l l L aye r
Description

When true, the layer was created as a null object; otherwise false.
Type

Boolean; read-only.

Layer outPoint attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .out Poi nt
Description

The “out” point of the layer, expressed in composition time (seconds).
Type

Floating-point value in the range [-10800.0..10800.0] (minus or plus three hours); read/write.

Layer parent attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .p are nt
Description

The parent of this layer; can be null.
Offset values are calculated to counterbalance any transforms above this layer in the hierarchy, so that when
you set the parent there is no apparent jump in the layer's transform. For example, if the new parent has a
rotation of 30 degrees, the child layer is assigned a rotation of -30 degrees.
To set the parent without changing the child layer's transform values, use the s e t Pare nt Wit h Ju mp method.
Type

Layer object or null; read/write.

92

After Effects scripting reference

Layer object

93

Layer remove() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .re m ove ( )
Description

Deletes the specified layer from the composition.
Parameters

None.
Returns

Nothing.

Layer selectedProperties attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .s el e c t e d Prop e r t i e s
Description

An array containing all of the currently selected Property and PropertyGroup objects in the layer.
Type

Array of PropertyBase objects; read-only.

Layer setParentWithJump() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .s e t Pare nt Wit hJu mp ( )
app. proj e c t . ite m (i n d e x ) . l aye r ( i nd e x ) .s e t Pare nt Wit hJu mp ( ne w Pare nt)
Description

Sets the parent of this layer to the specified layer, without changing the transform values of the child layer.
There may be an apparent jump in the rotation, translation, or scale of the child layer, as this layer’s transform
values are combined with those of its ancestors.
If you do not want the child layer to jump, set the p are nt attribute directly. In this case, an offset is calculated
and set in the child layer's transform fields, to prevent the jump from occurring.
Parameters
n e w Pa re nt

Optional, a layer object in the same composition. If not specified, it sets the parent to None.

Returns

Nothing.

Layer shy attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .shy
Description

When true, the layer is “shy,” meaning that it is hidden in the Layer panel if the composition’s “Hide all shy
layers” option is toggled on.

93

After Effects scripting reference

Layer object

94

Type

Boolean; read/write.

Layer solo attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .s ol o
Description

When true, the layer is soloed, otherwise false.
Type

Boolean; read/write.

Layer startTime attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .st ar t Ti m e
Description

The start time of the layer, expressed in composition time (seconds).
Type

Floating-point value in the range [-10800.0..10800.0] (minus or plus three hours); read/write.

Layer stretch attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .st re tch
Description

The layer’s time stretch, expressed as a percentage. A value of 100 means no stretch. Values between 0 and 1
are set to 1, and values between -1 and 0 (not including 0) are set to -1.
Type

Floating-point value in the range [-9900.0..9900.0]; read/write.

Layer time attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .t i m e
Description

The current time of the layer, expressed in composition time (seconds).
Type

Floating-point value; read-only.

94

After Effects scripting reference

LayerCollection object

95

LayerCollection object
app. proj e c t . ite m ( i n d e x ) . l aye rs
Description

The LayerCollection object represents a set of layers. The LayerCollection belonging to a CompItem object
contains all the layer objects for layers in the composition. The methods of the collection object allow you to
manipulate the layer list.
• LayerCollection is a subclass of Collection. All methods and attributes of Collection, in addition to those

listed below, are available when working with LayerCollection. See “Collection object” on page 51.
Example

Given that the first item in the project is a CompItem and the second item is an AVItem, this example shows
the number of layers in the CompItem's layer collection, adds a new layer based on an AVItem in the project,
then displays the new number of layers.
v ar f i rst C omp = app.proj e c t . it e m(1 );
v ar l ay er C o l l e c t i on = f i rst C omp.l ay e rs;
a l e r t ( " nu mb e r of l ay e rs b e fore is " + l aye r C ol l e c t i on .l e n g t h ) ;
v ar anAV Ite m = app. proj e c t . ite m ( 2 ) ;
l aye r C o l l e c t i on . a d d ( anAV Ite m ) ;
a l e r t ( " nu mb e r of l ay e rs af te r i s " + l ay e rC o l l e c t i on . l e ng t h) ;
Methods
Method

Reference

Description

a d d( )

“LayerCollection add() method” on
page 96

Creates a new AVLayer and adds it to this collection.

a d dNu l l ( )

“LayerCollection addNull() method” on
page 97

Creates a new, null layer and adds it to this collection.

addS olid()

“LayerCollection addSolid() method” on Creates a new layer, a FootageItem with a SolidSource, and adds it
page 98
to this collection.

a d dTe x t ( )

“LayerCollection addText() method” on
page 98

Creates a new point text layer and adds it to this collection.

a d dB oxTe x t ( )

“LayerCollection addBoxText() method”
on page 96

Creates a new paragraph (box) text layer and adds it to this collection.

a d dC ame r a ( )

“LayerCollection addCamera() method”
on page 96

Creates a new camera layer and adds it to this collection.

a d dL i g ht ( )

“LayerCollection addLight() method” on Creates a new light layer and adds it to this collection.
page 97

ad dShap e ()

“LayerCollection addShape() method”
on page 97

Creates a new shape layer and adds it to this collection.

by Name ()

“LayerCollection byName() method” on
page 99

Retrieves the layer object with a specified name.

pre c omp os e ()

“LayerCollection precompose()
method” on page 99

Collects specified layers into a new composition.

95

After Effects scripting reference

LayerCollection object

96

LayerCollection add() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d d( item , duration )
Description

Creates a new AVLayer object containing the specified item, and adds it to this collection.
The new layer honors the Create Layers at Composition Start Time preference.
This method generates an exception if the item cannot be added as a layer to this CompItem.
Parameters
ite m

The AVItem object for the item to be added.

du r at i on

Optional, the length of a still layer in seconds, a floating-point value. Used only if the item contains a piece of
still footage. Has no effect on movies, sequences or audio.
If supplied, sets the du r at i on value of the new layer. Otherwise, the duration value is set according to user
preferences. By default, this is the same as the duration of the containing CompItem. To set another preferred
value, choose Edit > Preferences > Import (Windows) or After Effects > Preferences > Import (Mac OS), and specify options under Still Footage.

Returns

AVLayer object.

LayerCollection addBoxText() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dB ox Te x t (s ource Tex t)
Description

Creates a new paragraph (box) text layer and adds the new TextLayer object to this collection.
To create a point text layer, use the a dd Te x t ( ) method. For more information, see “LayerCollection addText()
method” on page 98.
Parameters
s ou rc e Te xt

Optional; a string containing the source text of the new layer, or a TextDocument object containing the source text of the new layer. See “TextDocument object” on page 182.

Returns

TextLayer object.

LayerCollection addCamera() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dC am e r a (name , centerPoint )
Description

Creates a new camera layer and adds the CameraLayer object to this collection.
The new layer honors the Create Layers at Composition Start Time preference.
Parameters
name

A string containing the name of the new layer.

96

After Effects scripting reference

LayerCollection object

97

The center of the new camera, a floating-point array [x, y]. This is used to set the initial x and y values of the
new camera’s Point of Interest property. The z value is set to 0.

c e nte rPoi nt

Returns

CameraLayer object.

LayerCollection addLight() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dL i g ht (n ame , ce nte r Point )
Description

Creates a new light layer and adds the LightLayer object to this collection.
The new layer honors the Create Layers at Composition Start Time preference.
Parameters
name

A string containing the name of the new layer.

c e nte rPoi nt

The center of the new light, a floating-point array [x, y].

Returns

LightLayer object.

LayerCollection addNull() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dNu l l (durati on)
Description

Creates a new null layer and adds the AVLayer object to this collection. This is the same as choosing
Layer > New > Null Object.
Parameters
du r at i on

Optional, the length of a still layer in seconds, a floating-point value.
If supplied, sets the du r at i on value of the new layer. Otherwise, the du r at i on value is set according to user
preferences. By default, this is the same as the duration of the containing CompItem. To set another preferred
value, choose Edit > Preferences > Import (Windows) or After Effects > Preferences > Import (Mac OS), and specify
options under Still Footage.

Returns

AVLayer object.

LayerCollection addShape() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dS h ap e ( )
Description

Creates a new ShapeLayer object for a new, empty Shape layer. Use the ShapeLayer object to add properties,
such as shape, fill, stroke, and path filters.

97

After Effects scripting reference

LayerCollection object

98

This is the same as using a shape tool in "Tool Creates Shape" mode. Tools automatically add a vector group
that includes Fill and Stroke as specified in the tool options.
Parameters

None.
Returns

ShapeLayer object.

LayerCollection addSolid() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dS ol i d (c olor, n ame , w idth , height, pi x elAspec t , durati on )
Description

Creates a new SolidSource object, with values set as specified; sets the new SolidSource as the m ai n S ou rc e
value of a new FootageItem object, and adds the FootageItem to the project. Creates a new AVLayer object,
sets the new FootageItem as its s ou rc e , and adds the layer to this collection.
Parameters
c ol or

The color of the solid, an array of three floating-point values, [R, G, B], in the range [0.0..1.0].

name

A string containing the name of the solid.

w i dt h

The width of the solid in pixels, an integer in the range [4..30000].

heig ht

The height of the solid in pixels, an integer in the range [4..30000].

pi xel Asp e c t

The pixel aspect ratio of the solid, a floating-point value in the range [0.01..100.0].

du r at i on

Optional, the length of a still layer in seconds, a floating-point value.
If supplied, sets the du r at i on value of the new layer. Otherwise, the du r at i on value is set according to
user preferences. By default, this is the same as the duration of the containing CompItem. To set another
preferred value, choose Edit > Preferences > Import (Windows) or After Effects > Preferences > Import (Mac
OS), and specify options under Still Footage.

Returns

AVLayer object.

LayerCollection addText() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .a d dTe x t ( source Tex t)
Description

Creates a new point text layer and adds the new TextLayer object to this collection.
To create a paragraph (box) text layer, use the a dd B oxTe x t ( ) method. For more information, see “LayerCollection addBoxText() method” on page 96.
Parameters
s ou rc e Te xt

Optional; a string containing the source text of the new layer, or a TextDocument object containing the source text of the new layer. See “TextDocument object” on page 182.

98

After Effects scripting reference

LayerCollection object

99

Returns

TextLayer object.

LayerCollection byName() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .by Name ( nam e)
Description

Returns the first (topmost) layer found in this collection with the specified name, or null if no layer with the
given name is found.
Parameters
name

A string containing the name.

Returns

Layer object or null.

LayerCollection precompose() method
app. proj e c t . ite m ( i n d e x ) . l aye rs .pre c omp o s e (laye rIndicies, name, mov eAll Attr ibutes )
Description

Creates a new CompItem object and moves the specified layers into its layer collection. It removes the
individual layers from this collection, and adds the new CompItem to this collection.
Parameters
l aye r Indi c e s

The position indexes of the layers to be collected. An array of integers.

name

The name of the new CompItem object.

move A l l Att r ibute s

Optional. When true (the default), retains all attributes in the new composition.
This is the same as selecting the “Move all attributes into the new composition”
option in the Pre-compose dialog box.
You can only set this to false if there is just one index in the l aye r Ind i ce s array.
This is the same as selecting the “Leave all attributes in” option in the Pre-compose dialog box.

Returns

CompItem object.

99

After Effects scripting reference

LightLayer object

100

LightLayer object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x )
Description

The LightLayer object represents a light layer within a composition. Create it using the LayerCollection
object’s ad d L i g ht method; see “LayerCollection addLight() method” on page 97. It can be accessed in an item’s
layer collection either by index number or by a name string.
• LightLayer is a subclass of Layer. All methods and attributes of Layer are available when working with Light-

Layer. See “Layer object” on page 86.
AE Properties

LightLayer defines no additional attributes, but has different AE properties than other layer types. It has the
following properties and property groups:
Marke r
Transfor m
Poi nt of Inte re st
Po sit i on
Scale
O r i e nt at i on
X R ot at i on
Y R ot at i on
R ot at i on
O p ac it y
L i g ht O pt i ons
Inte nsit y
C ol or
C one Ang l e
C one Fe at he r
C a st s Sha dows
Shadow D ark ne ss
Sha dow Di f f u si on
Attributes
Attribute

Reference

Description

l i g ht Typ e

“LightLayer lightType attribute” on page 100

For light layers, the type of light.

LightLayer lightType attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .l i g ht Typ e
Description

For a light layer, its light type.
Trying to set this attribute for a non-light layer produces an error.

100

After Effects scripting reference

LightLayer object

101

Type

A L i g ht Typ e enumerated value; read/write. One of:
L i g ht Ty p e. PA R A L L E L
L i g ht Ty p e. SPO T
L i g ht Ty p e. P OI NT
L i g ht Ty p e. A M BI E NT

101

After Effects scripting reference

MarkerValue object

102

MarkerValue object
n e w Marke r Va lu e (comme nt, chapte r, url, f ram eTar get, cue PointName , p aram s)
Description

The MarkerValue object represents a layer marker, which associates a comment, and optionally a chapter
reference point, Web-page link, or Flash Video cue point with a particular point in a layer. Create it with the
constructor; all arguments except com me nt are optional. All arguments are strings that set in the corresponding attributes of the returned MarkerValue object, except p ar ams . This is an array containing key-value
pairs., which can then be accessed with the get Parame te rs( ) and s e t Parame te rs( ) methods. A script can set
any number of parameter pairs; the order does not reflect the order displayed in the application.
To associate a marker with a layer, set the MarkerValue object in the Marke r AE property of the layer:
laye rO bj ec t.prop e r t y( "Marke r " ). s e t Va lu e At Ti me ( time, marke r ValueO bj ec t);

For information on the usage of markers see “Using markers” in After Effects Help.
Attributes
Attribute

Reference

Description

c om m e nt

“MarkerValue comment attribute” on
page 103

A comment on the associated layer.

du r at i on

“MarkerValue duration attribute” on
page 103

The amount of time represented by the marker.

chapte r

“MarkerValue chapter attribute” on
page 103

A chapter link reference point for the associated layer.

c u e Poi nt Name

“MarkerValue cuePointName attribute”
on page 103

The Flash Video cue point name.

e ve nt Cu e Poi nt

“MarkerValue eventCuePoint attribute”
on page 104

Whether the Flash Video cue point is for an event or navigation.

u rl

“MarkerValue url attribute” on page 105 A URL for Web page to be associated with the layer.

f r ame Targe t

“MarkerValue frameTarget attribute” on
page 104

A specific frame target within the Web page specified by u rl .

Method

Reference

Description

ge t Par ame te rs ( )

“MarkerValue getParameters() method”
on page 104

Retrieves the key-value pairs associated with the marker value.

s e t Par ame te rs ( )

“MarkerValue setParameters() method”
on page 104

Sets the key-value pairs associated with the marker value.

Methods

Examples

• To set a marker that says “Fade Up” at the 2 second mark:
v ar myMarke r = ne w Marke r Va lu e ( " Fa d e Up ") ;
myL aye r. prop e r t y ( " Mar ke r ") .s e t Va lu e At Ti m e ( 2 , my Mar ke r ) ;

102

After Effects scripting reference

MarkerValue object

103

• To get comment values from a particular marker:
v ar c om m e nt O fFi rst Mark er = app. proj e c t . ite m (1) . l aye r (1 ) . prop e r t y( "Marke r " ). ke y Va lu e (1) .c om m e nt ;
var comment OfMarkerAt Ti me4 =
app. proj e c t . ite m ( 1 ) . l aye r ( 1 ) . prop e r t y ( " Marke r " ) . v a lu e At Ti m e ( 4 . 0 , t r u e ) . c om m e nt
v ar m arke r Prop er t y = app.proj e c t . ite m ( 1 ) . l aye r ( 1 ). prop e r t y ( " Mark e r" ) ;
v ar m arke r Va lu e At Ti m e C l o s e st ToTi m e 4 =
m arke r Prop e r t y.ke yVa lu e ( m arke rP rop e r t y. ne are st Ke y In d e x ( 4 . 0 ) ) ;
v ar c om m e nt O fMarke r C l o s e s t To Ti m e 4 = m arke r Va lu e At Ti m e C l o s e st ToTi m e 4 .c om m e nt ;

MarkerValue chapter attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). chapter
Description

A text chapter link for this marker. Chapter links initiate a jump to a chapter in a QuickTime movie or in other
formats that support chapter marks.
Type

String; read/write.

MarkerValue comment attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). c om ment
Description

A text comment for this marker. This comment appears in the Timeline panel next to the layer marker.
Type

String; read/write.

MarkerValue cuePointName attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). c u ePoi nt Name
Description

The Flash Video cue point name, as shown in the Marker dialog box.
Type

String; read/write.

MarkerValue duration attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). du r at i on
Description

The marker’s duration, in seconds. The duration appears in the Timeline panel as a short bar extending from
the marker location.
Type

Floating point; read/write.

103

After Effects scripting reference

MarkerValue object

104

MarkerValue eventCuePoint attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x) . e ve nt Cu e Poi nt
Description

When t r u e , the FlashVideo cue point is for an event; otherwise, it is for navigation.
Type

Boolean; read/write.

MarkerValue frameTarget attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). f r ameTarget
Description

A text frame target for this marker. Together with the URL value, this targets a specific frame within a Web
page.
Type

String; read/write.

MarkerValue getParameters() method
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). ge t Parame te rs( )
Description

Returns the key-value pairs for Flash Video cue-point parameters, for a cue point associated with this marker
value.
Parameters

None.
Returns

An object with an attribute matching each parameter name, containing that parameter’s value.

MarkerValue setParameters() method
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x) . s e t Par ame te rs ( ke yValuePairs )
Description

Associates a set of key-value pairs for Flash Video cue-point parameters, for a cue point associated with this
marker value. A cue point can have any number of parameters, but you can add only three through the user
interface; use this method to add more than three parameters.
Parameters
ke y Va lu e Pai rs

An object containing the key-value pairs as attributes and values. The object’s to St r i ng ()
method is called to assign the string value of each attribute to the named key.

104

After Effects scripting reference

MarkerValue object

105

Returns

Nothing.
Example
v ar mv = n e w Marke r Va lu e ( " My Mar ke r ") ;
v ar p ar m s = ne w O bj e c t ;
p arms.timeToBlin k = 1;
p ar m s . a s s i g n Me = " A st r i n g "
mv. s etPar ameters (p ar ms );
myL aye r. prop e r t y ( " Mar ke r ") .s e t Va lu e At Ti m e ( 2 , mv ) ;

MarkerValue url attribute
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prop e r t y( " Marke r " ) . ke y Va lu e (ind e x). url
Description

A URL for this marker. This URL is an automatic link to a Web page.
Type

String; read/write.

105

After Effects scripting reference

MaskPropertyGroup object

106

MaskPropertyGroup object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k
Description

The MaskPropertyGroup object encapsulates mask attributes in a layer.
• MaskPropertyGroup is a subclass of PropertyGroup. All methods and attributes of PropertyBase and

PropertyGroup, in addition to those listed below, are available when working with MaskPropertyGroup. See
“PropertyBase object” on page 148 and “PropertyGroup object” on page 155.
Attributes
Attribute

Reference

Description

m a sk Mo d e

“MaskPropertyGroup maskMode attribute”
on page 107

The mask mode.

i nve r t e d

“MaskPropertyGroup inverted attribute” on
page 106

When true, the mask is inverted.

roto B e zi e r

“MaskPropertyGroup rotoBezier attribute”
on page 108

When true, the shape of the mask is RotoBezier.

mask Mot i onBlur

“MaskPropertyGroup maskMotionBlur attri- How motion blur is applied to this mask.
bute” on page 107

lo cked

“MaskPropertyGroup locked attribute” on
page 107

When true, the mask is locked.

c ol or

“MaskPropertyGroup color attribute” on
page 106

The color used to draw the mask outline in the user
interface.

m a sk Fe at h e r Fa l l of f

“MaskPropertyGroup maskFeatherFalloff
attribute” on page 107

The feather falloff mode for the mask.

MaskPropertyGroup color attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k ( inde x) . co l or
Description

The color used to draw the mask outline as it appears in the user interface (Composition panel, Layer panel,
and Timeline panel).
Type

Array of three floating-point values, [R, G, B], in the range [0.0..1.0]; read/write.

MaskPropertyGroup inverted attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k ( inde x) . i nve r te d
Description

When true, the mask is inverted; otherwise false.
Type

Boolean; read/write.

106

After Effects scripting reference

MaskPropertyGroup object

107

MaskPropertyGroup locked attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k ( inde x) .l o cke d
Description

When true, the mask is locked and cannot be edited in the user interface; otherwise, false.
Type

Boolean; read/write.

MaskPropertyGroup maskFeatherFalloff attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k ( inde x) .m a s k Fe at h e r Fa l l of f
Description

The feather falloff mode for the mask. Equivalent to the Layer > Mask > Feather Falloff setting.
Type

A Ma sk Fe at he r Fa l l of f enumerated value; read/write. One of:
Mas k Fe at h e rFa l l of f.F F O _ L I N E A R
Mas k Fe at h e rFa l l of f.F F O _ SMO OT H

MaskPropertyGroup maskMode attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k ( inde x) .ma skMo d e
Description

The masking mode for this mask.
Type

A Ma sk Mo d e enumerated value; read/write. One of:
Mask Mo de .NON E
Mask Mo de .A DD
Mask Mo de .SU BT R AC T
Mask Mo de .I NT E R SE C T
Mask Mo de .L IG HT E N
Mask Mo de .DAR K E N
Mas k Mo de .DI F F E R E NC E

MaskPropertyGroup maskMotionBlur attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .ma s k ( inde x) .ma skMot i onBlu r
Description

How motion blur is applied to this mask.

107

After Effects scripting reference

MaskPropertyGroup object

108

Type

A Ma kMot i onBlu r enumerated value; read/write. One of:
Mas k Mot i on Blu r. S A M E _ A S _ L AY E R
Mask Mot i on Blu r. ON
Mask Mot i on Blu r. OF F

MaskPropertyGroup rotoBezier attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .mask (ind ex) .roto B e zi e r
Description

When true, the mask is a RotoBezier shape; otherwise, false.
Type

Boolean; read/write.

108

After Effects scripting reference

OMCollection object

109

OMCollection object
app. proj e c t . re nd e r Q u e u e. ite ms . output Mo du l e s
Description

The OMCollection contains all of the output modules in a render queue. The collection provides access to the
OutputModule objects, but does not provide any additional functionality. The first OutputModule object in
the collection is at index position 1. See “OutputModule object” on page 110
• OMCollection is a subclass of Collection. All methods and attributes of Collection are available when

working with OMCollection. See “Collection object” on page 51.

109

After Effects scripting reference

OutputModule object

110

OutputModule object
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x)
Description

An OutputModule object of a RenderQueueItem generates a single file or sequence via a render operation,
and contains attributes and methods relating to the file to be rendered.
Attributes
Attribute

Reference

Description

file

“OutputModule file attribute” on
page 111

The path and name of the file to be rendered.

p ost R e nde r Ac t i on

“OutputModule postRenderAction attri- An action to be taken after rendering.
bute” on page 111

name

“OutputModule name attribute” on
page 111

te mpl ate s

“OutputModule templates attribute” on All templates for the output module.
page 112

i n clu d e S ou rc e X M P

“OutputModule includeSourceXMP
attribute” on page 111

The user-interface name of the output module.

When true, writes all source footage XMP metadata to
the output file.

Methods
Method

Reference

Description

re move ( )

“OutputModule remove() method” on
page 112

Removes this output module from the render-queue item’s list.

s ave AsTe mpl at e ()

“OutputModule saveAsTemplate()
method” on page 112

Saves a new output-module template.

appl yTemp l at e ()

“OutputModule applyTemplate()
method” on page 110

Applies an output-module template.

OutputModule applyTemplate() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .appl y Te mp l at e (te mplate Name )
Description

Applies the specified existing output-module template.
Parameters
te mpl ate Name

A string containing the name of the template to be applied.

Returns

Nothing.

110

After Effects scripting reference

OutputModule object

111

OutputModule file attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .f i l e
Description

The ExtendScript File object for the file this output module is set to render.
Type

ExtendScript File object; read/write.

OutputModule includeSourceXMP attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .i n clu d e S ou rc e X M P
Description

When true, writes all source footage XMP metadata to the output file. Corresponds to the Include Source
XMP Metadata option in the Output Module Settings dialog box.
Type

Boolean; read/write.

OutputModule name attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .name
Description

The name of the output module, as shown in the user interface.
Type

String; read-only.

OutputModule postRenderAction attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .p ost R e nde r Ac t i on
Description

An action to be performed when the render operation is completed.
Type

A Po st R e nd e r Ac t i on enumerated value (read/write); one of:
p ost R e nde r Ac t i on. NONE
p ost R e nde r Ac t i on. I M PORT
p ost R e nderAc tion.IMPORT_A ND_REPL AC E_US AG E
p ost R e nde r Ac t i on. SET _ PROXY

111

After Effects scripting reference

OutputModule object

112

OutputModule remove() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .re move ( )
Description

Removes this OutputModule object from the collection.
Parameters

None.
Returns

Nothing.

OutputModule saveAsTemplate() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .s ave AsTe mpl ate (name )
Description

Saves this output module as a template and adds it to the te mpl ate s array.
Parameters
name

A string containing the name of the new template.

Returns

Nothing.

OutputModule templates attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x) .te mp l ate s
Description

The names of all output-module templates available in the local installation of After Effects.
Type

Array of strings; read-only.

112

After Effects scripting reference

PlaceholderSource object

113

PlaceholderSource object
app. proj e c t . ite m (ind e x). mainS ourc e
app. proj e c t . ite m (ind e x). proxy S ou rc e
Description

The PlaceholderSource object describes the footage source of a placeholder.
PlaceholderSource is a subclass of FootageSource. All methods and attributes of FootageSource are available
when working with PlaceholderSource. See “FootageSource object” on page 69. PlaceholderSource does not
define any additional methods or attributes.

113

After Effects scripting reference

Project object

114

Project object
app. proj e c t
Description

The project object represents an After Effects project. Attributes provide access to specific objects within the
project, such as imported files or footage and compositions, and also to project settings such as the timecode
base. Methods can import footage, create solids, compositions and folders, and save changes.
Attributes
Attribute

Reference

Description

file

“Project file attribute” on page 117

The file for the currently open project.

ro ot Fol d e r

“Project rootFolder attribute” on
page 121

The folder containing all the contents of the
project; the equivalent of the Project panel

ite ms

“Project items attribute” on page 119

All items in the project.

a c t ive Ite m

“Project activeItem attribute” on
page 115

The currently active item.

bit sPe r C han ne l

“Project bitsPerChannel attribute” on
page 116

The color depth of the current project.

t r ansp are nc yGr i dT hu mbnai ls “Project transparencyGridThumbnails
attribute” on page 123

When true, thumbnail views use the transparency checkerboard pattern.

nu mItems

“Project numItems attribute” on
page 120

The total number of items contained in the
project.

s e l e c t i on

“Project selection attribute” on
page 122

All items selected in the Project panel.

re n d e rQ u e u e

“Project renderQueue attribute” on
page 121

The project’s render queue.

t i me Di spl ay Typ e

“Project timeDisplayType attribute” on
page 122

The time display style, corresponding to the Time
Display Style section in the Project Settings
dialog box.

fo ot age Ti m e co d e D i spl ay -

“Project footageTimecodeDisplayStartType attribute” on page 117

The Footage Start Time setting in the Project
Settings dialog box, which is enabled when
Timecode is selected as the time display style.

f r ame s Us e Fe e t Fr ame s

“Project framesUseFeetFrames attribute” on page 118

The Use Feet + Frames setting in the Project
Settings dialog box.

fe e t Fr ame s Fi l mTy p e

“Project feetFramesFilmType attribute”
on page 117

The Use Feet + Frames menu setting in the
Project Settings dialog box.

f r ame sC ou nt Ty p e

“Project framesCountType attribute” on
page 118

The Frame Count menu setting in the Project
Settings dialog box.

d i spl ay St ar t Frame

“Project displayStartFrame attribute” on The frame at which to start numbering when
page 117
displaying the project.

line arBlending

“Project linearBlending attribute” on
page 120

When true, linear blending is used for the project.

xmpPacke t

“Project xmpPacket attribute” on
page 123

The project’s XMP metadata.

St ar t Ty p e

114

After Effects scripting reference

Project object

115

Methods
Method

Reference

Description

ite m( )

“Project item() method” on page 119

Retrieves an item from the project.

c ons ol i d ate Fo ot a ge ( )

“Project consolidateFootage() method”
on page 116

Consolidates all footage in the project.

re m ove Unus e d Fo ot a ge ( )

“Project removeUnusedFootage()
method” on page 121

Removes unused footage from the project.

re du c e Proj e c t ( )

“Project reduceProject() method” on
page 120

Reduces the project to a specified set of items.

clos e ()

“Project close() method” on page 116

Closes the project with normal save options.

s ave ()

“Project save() method” on page 121

Saves the project.

s ave Wit h Di a l og ()

“Project saveWithDialog() method” on
page 122

Displays a Save dialog box.

i mp or t P l a c eho l d e r ( )

“Project importFileWithDialog()
method” on page 119

Imports a placeholder into the project.

imp or t Fi le()

“Project importFile() method” on
page 118

Imports a file into the project.

i mp or t Fi l e Wit h D i a l o g ( )

“Project importFileWithDialog()
method” on page 119

Displays an Import File dialog box.

show Wi ndow ( )

“Project showWindow() method” on
page 122

Shows or hides the Project panel.

autoFi xE xpre ss ions()

“Project autoFixExpressions() method”
on page 115

Automatically replaces text in all expressions.

Project activeItem attribute
app. proj e c t . a c t ive It e m
Description

The item that is currently active and is to be acted upon, or a null if no item is currently selected or if multiple
items are selected.
Type

Item object or null; read-only.

Project autoFixExpressions() method
app. proj e c t . aut o Fi x E x pre s s i ons ( old Te xt , n e w Te xt )
Description

Automatically replaces text found in broken expressions in the project, if the new text causes the expression
to evaluate without errors.
Parameters
oldText

The text to replace.

n e w Te x t

The new text.

115

After Effects scripting reference

Project object

116

Returns

Nothing.

Project bitsPerChannel attribute
app. proj e c t . bit s Pe r C h an n el
Description

The color depth of the current project, either 8, 16, or 32 bits.
Type

Integer (8, 16, or 32 only); read/write.

Project close() method
app. proj e c t . cl o s e ( clos e O ptions)
Description

Closes the project with the option of saving changes automatically, prompting the user to save changes or
closing without saving changes.
Parameters
clos e O pt ions

Action to be performed on close. A C l o s e O pt i on s enumerated value, one of:

C l o s e O pt i ons. D O_ N OT _ S AV E _ C HAN G E S : Close without saving.
Cl os eO pt ions. PROM PT_TO _SAV E_CHA NG E S : Prompt for whether to save changes before
close.

C l o s e O pt i ons. S AV E _ C HA NG E S : Save automatically on close.

Returns

Boolean. True on success. False if the file has not been previously saved, the user is prompted, and the user
cancels the save.

Project consolidateFootage() method
app. proj e c t . cons ol i d at e Fo ot age ()
Description

Consolidates all footage in the project. Same as the File > Consolidate All Footage command.
Parameters

None.
Returns

Integer; the total number of footage items removed.

116

After Effects scripting reference

Project object

117

Project displayStartFrame attribute
app. proj e c t . di spl aySt ar t Fr ame
Description

An alternate way of setting the Frame Count menu setting in the Project Settings dialog box to 0 or 1, and is
equivalent to using the Fr ame s C ou nt Ty p e. F C _ START_ 0 or Frame s C ou nt Ty p e .F C _ START _ 1 enumerated
values for the f r ame sC ou nt Ty p e attribute. For more information, see “Project framesCountType attribute” on
page 118.
Type

Integer (0 or 1); read/write.

Project feetFramesFilmType attribute
app. proj e c t . fe e t Frame s Fi l mTyp e
Description

The Use Feet + Frames menu setting in the Project Settings dialog box.
Use this attribute instead of the old t i me c o d e Fi l mTyp e attribute.
Type

A Fe e t Fr ame s Fi l mTy p e enumerated value; read/write. One of:
Fe e t Fr ame s Fi l mTy p e. M M 1 6
Fe e t Fr ame s Fi l mTy p e. M M 3 5

Project file attribute
app. proj e c t . f i l e
Description

The ExtendScript File object for the file containing the project that is currently open.
Type

File object or null if project has not been saved; read-only.

Project footageTimecodeDisplayStartType attribute
app. proj e c t . fo ot a ge Ti m e c o d e D i s pl aySt ar t Ty p e
Description

The Footage Start Time setting in the Project Settings dialog box, which is enabled when Timecode is selected
as the time display style.
Type

A Fo ot ageTime co d eDispl ay St ar tTyp e enumerated value; read/write. One of:
Fo ot age Ti m e c o de D ispl aySt ar t Ty p e. F TC S _ START _ 0
Fo ot age Ti m e c o de D ispl aySt ar t Ty p e. F TC S _ U SE _ S OU RC E _ M E DIA

117

After Effects scripting reference

Project object

118

Project framesCountType attribute
app. proj e c t . f r ame s C ou nt Ty p e
Description

The Frame Count menu setting in the Project Settings dialog box.
Type

A Fr ame s C ou nt Ty p e enumerated value; read/write. One of:
Fr ame s C ou nt Ty p e. FC _ STA RT_ 1
Fr ame s C ou nt Ty p e. FC _ STA RT_ 0
Fr ame s C ou nt Ty p e. FC _ T I M E C ODE _ C ON V E R SION

NOTE: Setting this attribute to Fr ame s C ou nt Typ e. F C _T I M E C ODE _ C ONV E R SION resets the d i spl ay St ar t Fr ame attribute to 0.

Project framesUseFeetFrames attribute
app. proj e c t . f r ame s Us e Fe e t Fram e s
Description

The Use Feet + Frames setting in the Project Settings dialog box. True if using Feet + Frames; false if using
Frames.
Type

Boolean; read/write.

Project importFile() method
app. proj e c t . i mp or t Fi l e ( impor tO ptions)
Description

Imports the file specified in the specified ImportOptions object, using the specified options. Same as the
File > Import File command. Creates and returns a new FootageItem object from the file, and adds it to the
project’s ite ms array.
Parameters
i mp or t O pt i ons

An ImportOptions object specifying the file to import and the options for the operation. See
“ImportOptions object” on page 75.

Returns

FootageItem object.
Example
app. proj e c t . i mp or t Fi l e ( ne w Imp or t O pt i ons ( Fi l e ( “s ampl e. p s d” ) )

118

After Effects scripting reference

Project object

119

Project importFileWithDialog() method
app. proj e c t . i mp or t Fi l e Wit hD i a l o g ( )
Description

Shows an Import File dialog box. Same as the File > Import > File command.
Returns

Array of Item objects created during import; or null if the user cancels the dialog box.

Project importPlaceholder() method
app. proj e c t . i mp or t Pl a c ehol d e r (n ame , w idth , height, f ram eR ate, duration )
Description

Creates and returns a new PlaceholderItem object and adds it to the project’s ite ms array. Same as the
File > Import > Placeholder command.
Parameters
name

A string containing the name of the placeholder.

w i dt h

The width of the placeholder in pixels, an integer in the range [4..30000].

heig ht

The height of the placeholder in pixels, an integer in the range [4..30000].

f r ame R at e

The frame rate of the placeholder, a floating-point value in the range [1.0..99.0]

du r at i on

The duration of the placeholder in seconds, a floating-point value in the range [0.0..10800.0].

Returns

PlaceholderItem object.

Project item() method
app. proj e c t . ite m (ind e x)
Description

Retrieves an item at a specified index position.
Parameters
index

The index position of the item, an integer. The first item is at index 1.

Returns

Item object.

Project items attribute
app. proj e c t . ite m s
Description

All of the items in the project.

119

After Effects scripting reference

Project object

120

Type

ItemCollection object; read-only.

Project linearBlending attribute
app. proj e c t . l i ne ar B l e nd i ng
Description

True if linear blending should be used for this project; otherwise false.
Type

Boolean; read/write.

Project numItems attribute
app. proj e c t . nu m Ite ms
Description

The total number of items contained in the project, including folders and all types of footage.
Type

Integer; read-only.
Example
n = app. proj e c t . nu m Ite ms;
a l e r t ( " T h e re are " + n + " ite ms i n t hi s proj e c t . " )

Project reduceProject() method
app. proj e c t . re du ce Proj e c t (ar ray_ of_ ite m s)
Description

Removes all items from the project except those specified. Same as the File > Reduce Project command.
Parameters
ar r ay_ of _ite ms

An array containing the Item objects that are to be kept.

Returns

Integer; the total number of items removed.
Example
var t heItems = ne w Ar ray();
t he It e ms[ t h e Ite ms .l e n gt h ] = app. proj e c t . ite m ( 1 ) ;
t he It e ms[ t h e Ite ms .l e n gt h ] = app. proj e c t . ite m ( 3 ) ;
app. proj e c t . re du ce Proj e c t ( t he It e ms) ;

120

After Effects scripting reference

Project object

121

Project removeUnusedFootage() method
app. proj e c t . re move Unu s e dFo ot age ()
Description

Removes unused footage from the project. Same as the File > Remove Unused Footage command.
Parameters

None.
Returns

Integer; the total number of FootageItem objects removed.

Project renderQueue attribute
app. proj e c t . re nd e r Q u e u e
Description

The render queue of the project.
Type

RenderQueue object; read-only.

Project rootFolder attribute
app. proj e c t . ro ot Fol de r
Description

The root folder containing the contents of the project; this is a virtual folder that contains all items in the
Project panel, but not items contained inside other folders in the Project panel.
Type

FolderItem object; read-only.

Project save() method
app. proj e c t . s ave ( )
app. proj e c t . s ave ( f ile )
Description

Saves the project. The same as the File > Save or File > Save As command. If the project has never previously
been saved and no file is specified, prompts the user for a location and file name. Pass a File object to save a
project to a new file without prompting.
Parameters
file

Optional. An ExtendScript File object for the file to save.

Returns

None.

121

After Effects scripting reference

Project object

122

Project saveWithDialog() method
app. proj e c t . s ave Wit hDi a l o g( )
Description

Shows the Save dialog box. The user can name a file with a location and save the project, or click Cancel to exit
the dialog box.
Parameters

None.
Returns

Boolean; true if the project was saved.

Project selection attribute
app. proj e c t . s el e c t i on
Description

All items selected in the Project panel, in the sort order shown in the Project panel.
Type

Array of Item objects; read-only.

Project showWindow() method
app. proj e c t . showWi nd ow (d o Show )
Description

Shows or hides the Project panel.
Parameters
d o Show

When true, show the Project panel. When false, hide the Project panel.

Returns

Nothing.

Project timeDisplayType attribute
app. proj e c t . t i m e D is pl ay Ty p e
Description

The time display style, corresponding to the Time Display Style section in the Project Settings dialog box.
Type

A Ti me Di sp l ay Typ e enumerated value; read/write. One of:
Ti me Di spl ay Typ e .F R AM E S
Ti me Di spl ay Typ e .T I M E C ODE

122

After Effects scripting reference

Project object

123

Project transparencyGridThumbnails attribute
app. proj e c t . t r ansp are nc y Gr i d Thu mbnai l s
Description

When true, thumbnail views use the transparency checkerboard pattern.
Type

Boolean; read/write.

Project xmpPacket attribute
app. proj e c t . xmp Pa cke t
Description

The project’s XMP metadata, stored as RDF (XML-based). For more information on XMP, see the JavaScript
Tools Guide.
Type

String; read/write.
Example

The following example code accesses the XMP metadata of the current project, and modifies the Label project
metadata field.
v ar proj = app. proj e c t ;
/ / l o ad t he X M P l ibrar y as an E xt end S c r ipt E xte r na l O bj e c t
i f ( E x te r na l O bj e c t . Ad ob e X M P S cr ipt = = u nd e f i n e d ) {
E xte r na l O bj e c t . Ad ob e XM P S c r ipt = n e w
E xte r na l O bj e c t ( ' l ib : Ad ob eX M PS cr ipt ' );
}
v ar m d at a = n e w X M P Me t a ( app.proj e c t . x mp Pa ck e t ) ; // ge t t h e proj e c t’s X M P m e t ad at a
/ / up d ate t he L ab el proj e c t me t a d at a’s v a lu e
v ar s ch e m a N S = X M P Me t a . ge t Name sp a c e U R I ( " x mp " ) ;
v ar prop Nam e = " x mp : L ab el " ;
try {
m d at a . s e t Prop e r t y( s che m a N S , prop Nam e, "f i na l ve rs i on .. . no, re a l ly ! " );
}
c atch( e ) {
alert(e);
}
app. proj e c t . x mp Pa cke t = m d at a . s e r i a l i z e ( ) ;

123

After Effects scripting reference

Property object

124

Property object
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prope r tySpec
Description

The Property object contains value, keyframe, and expression information about a particular AE property of
a layer. An AE property is an value, often animatable, of an effect, mask, or transform within an individual
layer. For examples of how to access properties, see “PropertyBase object” on page 148 and “PropertyGroup
property() method” on page 157.
• Property is a subclass of PropertyBase. All methods and attributes of PropertyBase, in addition to those

listed below, are available when working with Property. See “PropertyBase object” on page 148.
NOTE: JavaScript objects commonly referred to as “properties” are called “attributes” in this guide, to avoid
confusion with the After Effects definition of property.
Attributes
Attribute

Reference

Description

prop e r t y Va lu e Ty p e

“Property propertyValueType attribute”
on page 138

Type of value stored in this property.

v a lu e

“Property value attribute” on page 146

Current value of the property.

hasMin

“Property hasMin attribute” on
page 130

When true, there is a minimum permitted value.

h a s Ma x

“Property hasMax attribute” on
page 130

When true, there is a maximum permitted value.

m i nVa lu e

“Property minValue attribute” on
page 137

The minimum permitted value.

m a x Va lu e

“Property maxValue attribute” on
page 137

The maximum permitted value.

isSp at i a l

“Property isSpatial attribute” on
page 132

When true, the property defines a spatial value.

c an Var y O ve r Ti m e

“Property canVaryOverTime attribute”
on page 129

When true, the property can be keyframed.

i s Ti m e Var y i ng

“Property isTimeVarying attribute” on
page 132

When true, the property has keyframes or an
expression enabled that can vary its values.

nu mKe y s

“Property numKeys attribute” on
page 138

The number of keyframes on this property.

unit sText

“Property unitsText attribute” on
page 146

A text description of the units in which the value is
expressed.

e x pre s s i on

“Property expression attribute” on
page 129

The expression string for this property.

c an S e t E xpre s s i on

“Property canSetExpression attribute”
on page 128

When true, the expression can be set by a script.

e x pre s s i on E n abl e d

“Property expressionEnabled attribute”
on page 129

When true, the expression is used to generate values for the property.

e x pre s s i on E r ror

“Property expressionError attribute” on
page 130

The error, if any, that occurred when the last expression was evaluated.

124

After Effects scripting reference

Property object

125

Attribute

Reference

Description

s e l e c te d Ke ys

“Property selectedKeys attribute” on
page 140

All selected keyframes of the property.

prop e r t y Ind e x

“Property propertyIndex attribute” on
page 138

The position index of this property.

d i me nsi onsS e p ar ate d

“Property dimensionsSeparated attribute” on page 129

When true, the property’s dimensions are represented as separate properties.

i sS e p ar at i on Fol l owe r

“Property isSeparationFollower attribute” on page 131

When true, the property represents one of the
separated dimensions for a multidimensional
property.

i s S e p ar at i on L e ad e r

“Property isSeparationLeader attribute”
on page 131

When true, the property is multidimensional and
can be separated.

s e p ar at i on Di me nsi on

“Property separationDimension attribute” on page 140

For a separated follower, the dimension it represents in the multidimensional leader.

s e p ar at i on L e ad e r

“Property separationLeader attribute”
on page 140

The original multidimensional property for this
separated follower.

Methods
Method

Reference

Description

v a lu e At Ti m e ( )

“Property valueAtTime() method” on
page 146

Gets the value of the property evaluated at given time.

s e t Va lu e ( )

“Property setValue() method” on page 144

Sets the static value of the property.

s e t Va lu e At Ti me ()

“Property setValueAtTime() method” on
page 145

Creates a keyframe for the property.

s e t Va lu e s At Ti m e s ( )

“Property setValuesAtTimes() method” on
page 145

Creates a set of keyframes for the property.

s e t Va lu e At Ke y ()

“Property setValueAtKey() method” on
page 145

Finds a keyframe and sets the value of
the property at that keyframe.

ne arestKe yIndex( )

“Property nearestKeyIndex() method” on
page 138

Gets the keyframe nearest to a specified
time.

ke y Ti me ( )

“Property keyTime() method” on page 136

Gets the time at which a condition
occurs.

ke y Va lu e ()

“Property keyValue() method” on page 137

Gets the value of a keyframe at the time
at which a condition occurs.

a d dKe y ( )

“Property addKey() method” on page 128

Adds a new keyframe to the property at
a given time.

re move Ke y ()

“Property removeKey() method” on
page 139

Removes a keyframe from the property.

i s Int e r p ol at i onTy p e Va l i d ( )

“Property isInterpolationTypeValid()
method” on page 131

When true, this property can be interpolated.

s e t Inte r p ol at i onTyp e At Ke y( )

“Property setInterpolationTypeAtKey()
method” on page 140

Sets the interpolation type for a key.

ke y InInte r p ol at i onTy p e ( )

“Property keyInInterpolationType() method” Gets the 'in' interpolation type for a key.
on page 132

ke y O ut Inte r p ol at i onTy p e ( )

“Property keyOutInterpolationType()
method” on page 133

Gets the 'out' interpolation type for a
key.

125

After Effects scripting reference

Property object

126

Method

Reference

Description

s e t Sp at i a l Tange nt s At Ke y ( )

“Property setSpatialTangentsAtKey()
method” on page 142

Sets the “in” and “out” tangent vectors
for a key.

ke y In Sp at i a l Tange nt ( )

“Property keyInSpatialTangent() method” on Gets the “in” spatial tangent for a key.
page 132

ke y O ut Sp at i a l Tange nt ()

“Property keyOutSpatialTangent() method”
on page 134

Gets the “out” spatial tangent for a key.

s e t Te mp or a l E as e At Ke y ( )

“Property setTemporalEaseAtKey() method”
on page 144

Sets the “in” and “out” temporal ease for
a key.

ke y InTe mp or a l E a s e ( )

“Property keyInTemporalEase() method” on
page 133

Gets the “in” temporal ease for a key.

ke y O ut Te mp or a l E as e ( )

“Property keyOutTemporalEase() method”
on page 134

Gets the “out” temporal ease for a key.

s e t Te mp or a l C ont i nu ou s At Ke y( )

“Property setTemporalContinuousAtKey()
method” on page 143

Sets whether a keyframe has temporal
continuity.

ke y Te mp or a l C ont i nu ou s( )

“Property keyTemporalContinuous()
method” on page 136

Reports whether a keyframe has temporal continuity.

s e t Te mp or a l Auto B e z i e r At Ke y ( )

“Property setTemporalAutoBezierAtKey()
method” on page 143

Sets whether a keyframe has temporal
auto-Bezier.

ke y Te mp or a l Auto B e zi e r ( )

“Property keyTemporalAutoBezier()
method” on page 136

Reports whether a keyframe has temporal auto-Bezier.

s e t Sp at i a l C ont i nu ou s At Ke y ( )

“Property setSpatialContinuousAtKey()
method” on page 142

Sets whether a keyframe has spatial
continuity.

ke y Sp at i a l C ont i nu ou s ( )

“Property keySpatialContinuous() method”
on page 135

Reports whether a keyframe has spatial
continuity.

s e t Sp at i a l Auto B e zi e r At Ke y

“Property setSpatialAutoBezierAtKey()
method” on page 142

Sets whether a keyframe has spatial
auto-Bezier.

ke y Sp at i a l AutoB e z i e r( )

“Property keySpatialAutoBezier() method”
on page 135

Reports whether a keyframe has spatial
auto-Bezier.

s e t R ov i ngAt Ke y ( )

“Property setRovingAtKey() method” on
page 141

Sets whether a keyframe is roving.

ke y R ov i ng ()

“Property keyRoving() method” on page 134 Reports whether a keyframe is roving.

s e t S el e c te d At Ke y( )

“Property setSelectedAtKey() method” on
page 141

Sets whether a keyframe is selected.

ke y S e l e c te d ( )

“Property keySelected() method” on
page 135

Reports whether a keyframe is selected.

g e t S e p arat i on Fol l owe r ( )

“Property getSeparationFollower() method”
on page 130

For a separated, multidimensional
property, retrieves a specific follower
property.

Example: Get and set the value of opacity
v ar myProp e r t y = myL aye r. op a cit y ;
/ / op a cit y h a s prop e r t yVa lu e Ty p e of O n e D, and is s tore d as a f l o at
myProp e r t y.s e t Va lu e ( 5 0 ) ; / / s e t op a cit y to 5 0%
/ / Var i abl e myO p a c it y i s a f l o at v a lu e
v ar myO p a c it y = myProp e r t y.v a lu e ;

126

After Effects scripting reference

Property object

127

Example: Get and set the value of a position
v ar myProp e r t y = myL aye r. p o sit i on;
/ / p o s it i on h as prop e r t y Va lu e Ty p e of T h re e D _ SPAT IA L , and i s store d as an ar r ay of 3 f l o at s
myProp er ty.s etVa lu e([1 0.0, 30 .0, 0.0] );
/ / Var i abl e myPosit i on is an ar r ay of 3 f l o at s
v ar myPos it i on = my Prop e r t y. v a lu e ;
Example: Change the value of a mask shape to be open instead of closed
v ar myMask = my l aye r. mask( 1);
v ar myProp e r t y = myMask .ma sk Pat h ;
my S h ap e = myProp e r t y. v a lu e ;
myShap e.clo s e d = f a ls e;
myProp e r t y.s e t Va lu e ( my S h ap e ) ;
Example: Get the value of a color at a particular time

A color is stored as an array of four floats, [r,g,b,opacity]. This sets the value of the red component of a light's
color at time 4 to be half of that at time 2:
v ar myProp e r t y = myL i g ht .c ol or ;
v ar c ol or Va lu e = myProp e r t y. v a lu e At Ti m e ( 2 , t r u e ) ;
c ol or Va lu e [0] = 0 .5 * c ol or Va lu e [ 0];
myProp e r t y.s e t Va lu e At Ti m e ( 4 ,c ol or Va lu e ) ;
Example: Check that a scale calculated by an expression at time 3.5 is the expected value of [10,50]
v ar myProp e r t y = myL aye r. s c a l e ;
/ / fa l s e v a lu e of pre E x pre s s i on m e ans e v a lu ate t he e x pre ss i on
v ar s c a l e Va lu e = my Prop e r t y. v a lu e At Ti me ( 3 . 5 , f a l s e ) ;
i f (s c a l e Va lu e [0] = = 10 & & s c a l e Va lu e [1] = = 50 ) {
a l e r t (" hu r ray" );
}
els e {
a l e r t (" o op s ") ;
}
Example: Keyframe a rotation from 0 to 90 and back again

The animation is 10 seconds, and the middle keyframe is at the 5 second mark. Rotation properties are stored
as a OneD value.
myProp e r t y = myL aye r. rot at i on ;
myProp e r t y.s e t Va lu e At Ti m e ( 0 , 0 ) ;
myProp e r t y.s e t Va lu e At Ti m e ( 5 , 9 0 ) ;
myProp e r t y.s e t Va lu e At Ti m e ( 1 0, 0 );
Example: Change the keyframe values for the first three keyframes of some source text
myProp e r t y = myTe xt L aye r. s ou rc e Te xt ;
i f ( my Prop e r t y.nu m Ke y s < 3 ) {
a l e r t ( " e r ror, I t hou g ht t he re w e re 3 k e y f ram e s " ) ;
}
els e {

127

After Effects scripting reference

Property object

128

myProp e r t y.s e t Va lu e At Ke y ( 1 , n e w Te x t D o c u m e nt ( " ke y nu mb e r 1 ") ) ;
myProp e r t y.s e t Va lu e At Ke y ( 2 , n e w Te x t D o c u m e nt ( " ke y nu mb e r 2 ") ) ;
myProp e r t y.s e t Va lu e At Ke y ( 3 , n e w Te x t D o c u m e nt ( " ke y nu mb e r 3 ") ) ;
}
Example: Set values using the convenience syntax for position, scale, color, or source text
/ / T h e s e t w o are e qu iv a l e nt . T h e s e con d f i l l s i n a d e f au lt of 0 .
myL aye r. p o s it i on. s e t Va lu e ( [ 2 0 , 3 0, 0 ]) ;
myL aye r. p o s it i on. s e t Va lu e ( [ 2 0 , 3 0] ) ;
/ / T h e s e t w o are e qu iv a l e nt . T h e s e con d f i l l s i n a d e f au lt of 1 0 0 .
myL aye r. s c a l e. s e t Va lu e ( [ 5 0 , 5 0 , 1 0 0 ] ) ;
myL aye r. s c a l e. s e t Va lu e ( [ 5 0 , 5 0 ] ) ;
/ / T h e s e t w o are e qu iv a l e nt . T h e s e con d f i l l s i n a d e f au lt of 1 . 0
myL i g ht .c ol or. s e t Va lu e ( [ . 8 , . 3 , .1 , 1 . 0 ] );
myL i g ht .c ol or. s e t Va lu e ( [ . 8 , . 3 , .1 ] );
/ / T h e s e t w o are e qu iv a l e nt . T h e s e con d c re ate s a Te x t D o c u m e nt
myTe x t L ay e r. s ou rc e Te x t . s e t Va lu e ( ne w Te x t D o c u me nt ( "f o o ") );
myTe x t L ay e r. s ou rc e Te x t . s e t Va lu e ( " f o o ") ;

Property addKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. a dd Ke y (time )
Description

Adds a new keyframe or marker to the named property at the specified time and returns the index of the new
keyframe.
Parameters
t i me

The time, in seconds, at which to add the keyframe. A floating-point value. The beginning of the composition is 0.

Returns

Integer; the index of the new keyframe or marker.

Property canSetExpression attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. c anS e t E x pre ss i on
Description

When true, the named property is of a type whose expression can be set by a script. See also “Property
expression attribute” on page 129.
Type

Boolean; read-only.

128

After Effects scripting reference

Property object

129

Property canVaryOverTime attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. c anVar y O ve rTi m e
Description

When true, the named property can vary over time—that is, keyframe values or expressions can be written to
this property.
Type

Boolean; read-only.

Property dimensionsSeparated attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. d i m e ns i ons S e p a r ate d
Description

When true, the property’s dimensions are represented as separate properties. For example, if the layer’s
position is represented as X Position and Y Position properties in the Timeline panel, the Position property
has this attribute set to true.
NOTE: This attribute applies only when the i s S e p ar at i on L e ad e r attribute is t r u e .
Type

Boolean; read/write.

Property expression attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. e x pre ss i on
Description

The expression for the named property. Writeable only when c an S e t E xpre s s i on for the named property is
true. When you specify a value for this attribute, the string is evaluated.
• If the string contains a valid expression, e x pre ss i onE n abl e d becomes true.
• If the string does not contain a valid expression, an error is generated, and e x pre s s i onE n abl e d becomes

false.
• If you set the attribute to the empty string, e x pre ss i onE n abl e d becomes false, but no error is generated.
Type

String; read/write if c an S e t E xpre ss i on for the named property is true.

Property expressionEnabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. e x pre ss i on E nabl e d
Description

When true, the named property uses its associated expression to generate a value. When false, the keyframe
information or static value of the property is used. This attribute can be set to true only if c an S e t E xpre ss i on
for the named property is true and e x pre ss i on contains a valid expression string.

129

After Effects scripting reference

Property object

130

Type

Boolean; read/write.

Property expressionError attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. e x pre ss i on E r ror
Description

Contains the error, if any, generated by evaluation of the string most recently set in e x pre ss i on . If no
expression string has been specified, or if the last expression string evaluated without error, contains the empty
string ("").
Type

String; read-only.

Property getSeparationFollower() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ge t S e p ar at i onFol l owe r (d i m )
Description

For a separated, multidimensional property, retrieves a specific follower property. For example, you can use
this method on the Position property to access the separated X Position and Y Position properties.
NOTE: This attribute applies only when the i s S e p ar at i on L e ad e r attribute is t r u e .
Parameters
dim

The dimension number (starting at 0).

Returns

Property object, or an error if the property is not multidimensional or does not have the specified dimension.

Property hasMax attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. has Max
Description

When true, there is a maximum permitted value for the named property; otherwise false.
Type

Boolean; read-only.

Property hasMin attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. has Mi n
Description

When true, there is a minimum permitted value for the named property; otherwise false.

130

After Effects scripting reference

Property object

131

Type

Boolean; read-only.

Property isInterpolationTypeValid() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s Inte r p ol at i onTy p e Va l i d ( ty pe)
Description

Returns true if the named property can be interpolated using the specified keyframe interpolation type.
Parameters
t yp e

A Ke y f r ame Inte r p ol at i onTyp e enumerated value; one of:

Ke y f r ame Inte r p ol at i onTyp e. L I NE AR
Ke y f r ame Inte r p ol at i onTyp e. BE Z IE R
Ke y f r ame Inte r p ol at i onTyp e. HOL D
Returns

Boolean.

Property isSeparationFollower attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec.isS ep arat ionFol lower
Description

When true, the property represents one of the separated dimensions for a multidimensional property. For
example, the X Position property has this attribute set to true.
NOTE: The original, consolidated, multidimensional property is the “separation leader” and the new, separated,
single-dimensional properties are its “separation followers”.
Type

Boolean; read-only.

Property isSeparationLeader attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s S e p arat i on L e a d e r
Description

When true, the property is multidimensional and can be separated. For example, the Position property has
this attribute set to true.
NOTE: The original, consolidated, multidimensional property is the “separation leader” and the new, separated,
single-dimensional properties are its “separation followers”.
Type

Boolean; read-only.

131

After Effects scripting reference

Property object

132

Property isSpatial attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s Sp at i a l
Description

When true, the named property defines a spatial value. Examples are position and effect point controls.
Type

Boolean; read-only.

Property isTimeVarying attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s Ti m e Var y i n g
Description

When true, the named property is time varying—that is, it has keyframes or an enabled expression. When this
attribute is true, the attribute c an Var y O ve r Ti m e must also be true.
Type

Boolean; read-only.

Property keyInInterpolationType() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y In Inte r p ol at i onTy p e (ke yInde x)
Description

Returns the 'in' interpolation type for the specified keyframe.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a d dKe y or n e are s t Ke y-

Ind e x method.
Returns

A Ke y f r ame Inte r p ol at i onTy p e enumerated value; one of:
Ke y f r ame Inte r p ol at i onTyp e. L IN E AR
Ke y f r ame Inte r p ol at i onTyp e. BE Z IE R
Ke y f r ame Inte r p ol at i onTyp e. HOL D

Property keyInSpatialTangent() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y In Sp at i a l Tang e nt ( ke yInd ex )
Description

Returns the incoming spatial tangent for the specified keyframe, if the named property is spatial (that is, the
value type is TwoD _SPAT IA L or T hre e D_ SPATIA L ).
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a d dKe y or n e are s t Ke y-

Ind e x method.

132

After Effects scripting reference

Property object

133

Returns

Array of floating-point values:
• If the property value type is Prop e r t yVa lu e Ty p e. Two D _ SPAT IA L , the array contains 2 floating-point

values.
• If the property value type is Prop e r t yVa lu e Ty p e. T h re e D _ SPAT IA L , the array contains 3 floating-point

values.
• If the property value type is neither of these types, an exception is generated.

Property keyInTemporalEase() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y InTe mp or a l E a s e (ke yInde x)
Description

Returns the incoming temporal ease for the specified keyframe.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Array of KeyframeEase objects:
• If the property value type is Prop er t yVa lu eTyp e. TwoD , the array contains 2 objects.
• If the property value type is Prop e r t yVa lu e Ty p e. T h re e D , the array contains 3 objects.
• For any other value type, the array contains 1 object.

Property keyOutInterpolationType() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y O ut Inte r p ol at i onTy p e ( ke yInd ex )
Description

Returns the outgoing interpolation type for the specified keyframe.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

A Ke y f r ame Inte r p ol at i onTy p e enumerated value; one of:
Ke y f r ame Inte r p ol at i onTyp e. L IN E AR
Ke y f r ame Inte r p ol at i onTyp e. BE Z IE R
Ke y f r ame Inte r p ol at i onTyp e. HOL D

133

After Effects scripting reference

Property object

134

Property keyOutSpatialTangent() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y O ut Sp at i a l Tange nt (ke yInde x)
Description

Returns the outgoing spatial tangent for the specified keyframe.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Array of floating-point values:
• If the property value type is Prop e r t yVa lu e Ty p e. Two D _ SPAT IA L , the array contains 2 floating-point

values.
• If the property value type is Prop e r t yVa lu e Ty p e. T h re e D _ SPAT IA L , the array contains 3 floating-point

values.
• If the property value type is neither of these types, an exception is generated.

Property keyOutTemporalEase() method
app. proj e c t . ite m ( ind e x) .l aye r( ind ex ). proper tySp ec . ke yO ut Te mp or a l E as e (ke y Inde x)
Description

Returns the outgoing temporal ease for the specified keyframe.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Array of KeyframeEase objects:
• If the property value type is Prop er t yVa lu eTyp e. TwoD , the array contains 2 objects.
• If the property value type is Prop e r t yVa lu e Ty p e. T h re e D , the array contains 3 objects.
• For any other value type, the array contains 1 object.

Property keyRoving() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y R ov i ng (ke y Inde x)
Description

Returns true if the specified keyframe is roving. The first and last keyframe in a property cannot rove; if you
try to set roving for one of these, the operation is ignored, and ke yR ov ing ( ) continues to return false.
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.

134

After Effects scripting reference

Property object

135

Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Boolean.

Property keySelected() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y S e l e c te d( ke yInd ex )
Description

Returns true if the specified keyframe is selected.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Boolean.

Property keySpatialAutoBezier() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Sp at i a l AutoB e zi e r ( ke yInd ex )
Description

Returns true if the specified keyframe has spatial auto-Bezier interpolation. (This type of interpolation affects
this keyframe only if ke y Sp at i a l C ont i nu ou s (ke yInde x) is also true.)
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Boolean.

Property keySpatialContinuous() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Sp at i a l C ont i nu ou s(ke y Inde x)
Description

Returns true if the specified keyframe has spatial continuity.
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.

135

After Effects scripting reference

Property object

136

Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Boolean.

Property keyTemporalAutoBezier() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Te mp or a l AutoB e z i e r (ke yInde x)
Description

Returns true if the specified keyframe has temporal auto-Bezier interpolation.
Temporal auto-Bezier interpolation affects this keyframe only if the keyframe interpolation type is Ke y f ra meInter p ol at ionTyp e.B E ZIER for both ke y InInte r p ol at i onTy p e ( ke yInd ex ) and ke yO ut Inter p ol at i onTyp e ( ke yInd e x) .
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Boolean.

Property keyTemporalContinuous() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Te mp or a l C ont i nu ou s ( ke yInd ex )
Description

Returns true if the specified keyframe has temporal continuity.
Temporal continuity affects this keyframe only if keyframe interpolation type is Ke y f rame Inte r p ol at i onTyp e .B E ZI E R for both ke y InInte r p ol at i onTy p e ( ke yInd ex ) and ke yO ut Inter p ol at ionTyp e( ke yInd e x) .
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
Returns

Boolean.

Property keyTime() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Ti m e ( ke yInd ex )
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Ti m e ( marke r C omme nt )
Description

Finds the specified keyframe or marker and returns the time at which it occurs.

136

After Effects scripting reference

Property object

137

If no keyframe or marker can be found that matches the argument, this method generates an exception, and
an error is displayed.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a d d Ke y or ne ar-

e s t Ke yInde x method.
markerC omment

The comment string attached to a marker (see “MarkerValue comment attribute” on page 103).

Returns

Floating-point value.

Property keyValue() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Va lu e (ke yInde x)
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. ke y Va lu e (marke r C omment)
Description

Finds the specified keyframe or marker and returns its current value.
If no keyframe or marker can be found that matches the argument, this method generates an exception, and
an error is displayed.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a d d Ke y or ne ar-

e s t Ke yInde x method.
markerC omment

The comment string attached to a marker (see “MarkerValue comment attribute” on page 103).

Returns

Floating-point value for keyframes, MarkerValue object for markers.

Property maxValue attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. m a x Va lu e
Description

The maximum permitted value of the named property. If the h a s Ma x attribute is false, an exception occurs,
and an error is generated.
Type

Floating-point value; read-only.

Property minValue attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. m i n Va lu e
Description

The minimum permitted value of the named property. If the hasMin attribute is false, an exception occurs,
and an error is generated.

137

After Effects scripting reference

Property object

138

Type

Floating-point value; read-only.

Property nearestKeyIndex() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. n e are s t Ke y Ind e x ( time )
Description

Returns the index of the keyframe nearest to the specified time.
Parameters
t i me

The time in seconds; a floating-point value. The beginning of the composition is 0.

Returns

Integer.

Property numKeys attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. nu m Ke y s
Description

The number of keyframes in the named property. If the value is 0, the property is not being keyframed.
Type

Integer; read-only.

Property propertyIndex attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y In d e x
Description

The position index of the named property. The first property is at index position 1.
Type

Integer; read-only.

Property propertyValueType attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y Va lu e Ty p e
Description

The type of value stored in the named property. The Prop e r t yVa lu e Ty p e enumeration has one value for each
type of data that can be stored in or retrieved from a property. Each type of data is stored and retrieved in a
different kind of structure. All property objects store data according to one of these categories.
For example, a 3D spatial property (such as a layer's position) is stored as an array of three floating point
values. When setting a value for position, pass in such an array, as follows:
my l aye r.prop e r t y( "p os it i on" ) . s e t Va lu e ( [ 1 0 ,2 0, 0 ] ) ;

138

After Effects scripting reference

Property object

139

In contrast, a shape property (such as a layer's mask shape) is stored as a Shape object. When setting a value
for a shape, pass a Shape object, as follows:
var myShap e = ne w Shap e() ;
myShap e.ve r t ices = [[0 ,0],[0,10 0],[1 00,10 0],[1 00,0]] ;
v ar myMask = my l aye r. prop e r t y( "A DBE Mask Par ad e " ). prop e r t y (1) ;
myMask. prop e r t y (" ADBE Ma sk Shap e") . s e tValue(myShap e);
Type

A P rop e r t y Va lu e Ty p e enumerated value; read/write. One of:
E

Prop e r t y Va lu e Ty p e. NO _ VA LU E

Stores no data.

Prop e r t y Va lu e Ty p e. T h re e D _ SPAT IA L

Array of three floating-point positional values. For example, an Anchor
Point value might be [10.0, 20.2, 0.0]

Prop e r t y Va lu e Ty p e. T h re e D

Array of three floating-point quantitative values. For example, a Scale
value might be [100.0, 20.2, 0.0]

Prop e r t y Va lu e Ty p e. Two D_ SPAT IA L

Array of 2 floating-point positional values For example, an Anchor Point
value might be [5.1, 10.0]

Prop e r t y Va lu e Ty p e. Two D

Array of 2 floating-point quantitative values. For example, a Scale value
might be [5.1, 100.0]

Prop e r t y Va lu e Ty p e. O n eD

A floating-point value.

Prop e r t y Va lu e Ty p e. C OLOR

Array of 4 floating-point values in the range [0.0..1.0]. For example, [0.8,
0.3, 0.1, 1.0]

Prop e r t y Va lu e Ty p e. C U STOM _ VA LU E

Custom property value, such as the Histogram property for the Levels
effect.

Prop e r t y Va lu e Ty p e. M A R K E R

MarkerValue object; see “MarkerValue object” on page 102.

Prop e r t y Va lu e Ty p e. L AY E R _ I N DE X

Integer; a value of 0 means no layer.

Prop e r t y Va lu e Ty p e. M A SK _ I N DE X

Integer; a value of 0 means no mask.

Prop e r t y Va lu e Ty p e. SHA PE

Shape object; see “Shape object” on page 172.

Prop e r t y Va lu e Ty p e. T E X T _ D O C UM E N T

TextDocument object; see “TextDocument object” on page 182.

Property removeKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. re m ove Ke y( ke yInd ex )
Description

Removes the specified keyframe from the named property. If no keyframe with the specified index exists,
generates an exception and displays an error.
When a keyframe is removed, the remaining index numbers change. To remove more than one keyframe, you
must start with the highest index number and work down to the lowest to ensure that the remaining indices
reference the same keyframe after each removal.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.

139

After Effects scripting reference

Property object

140

Returns

Nothing.

Property selectedKeys attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e l e c te d Ke y s
Description

The indices of all the selected keyframes in the named property. If no keyframes are selected, or if the property
has no keyframes, returns an empty array.
Type

Array of integers; read-only.

Property separationDimension attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e p arat i on D i m e ns i on
Description

For a separated follower, the dimension number it represents in the multidimensional leader. The first
dimension starts at 0. For example, the Y Position property has a s e p ar at i on D i m e n s i on value of 1; X Position
has a value of 0.
Type

Integer; read-only.

Property separationLeader attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e p arat i on L e a d e r
Description

The original multidimensional property for this separated follower. For example, if the current property is
Y Position, this attribute’s value points to the Position property.
NOTE: The original, consolidated, multidimensional property is the “separation leader” and the new, separated,
single-dimensional properties are its “separation followers”.
Type

Property object; read-only.

Property setInterpolationTypeAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Inte r p o l at i onTy p e At Ke y (ke yInde x, inTy p e,
out Ty pe )
Description

Sets the ‘in’ and ‘out’ interpolation types for the specified keyframe.

140

After Effects scripting reference

Property object

141

Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a d d Ke y
or n e are s t Ke yInd e x method.

i nTy p e

The incoming interpolation type. A Ke y f r ame Int e r p ol at i onTyp e enumerated value; one
of:

Ke y f r ame Inte r p ol at i onTyp e. L I NE AR
Ke y f r ame Inte r p ol at i onTyp e. BE Z IE R
Ke y f r ame Inte r p ol at i onTyp e. HOL D
(Optional) The outgoing interpolation type. If not supplied, the ‘out’ type is set to the i nTyp e
value. A Ke y f r ame Inte r p ol at i onTy p e enumerated value; one of:

out Ty p e

Ke y f r ame Inte r p ol at i onTyp e. L I NE AR
Ke y f r ame Inte r p ol at i onTyp e. BE Z IE R
Ke y f r ame Inte r p ol at i onTyp e. HOL D
Returns

Nothing.

Property setRovingAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t R ov i n gAt Ke y (ke yInd e x, ne w Val)
Description

Turns roving on or off for the specified keyframe. The first and last keyframe in a property cannot rove; if you
try to set roving for one of these, the operation is ignored, and ke yR ov ing ( ) continues to return false.
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the ad d Ke y or ne arestKe y-

Inde x method.
newVal

True to turn roving on, false to turn roving off.

Returns

Nothing.

Property setSelectedAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t S el e c t e d At Ke y ( ke yInd ex , onO ff )
Description

Selects or deselects the specified keyframe.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
onO f f

True to select the keyframe, false to deselect it.

141

After Effects scripting reference

Property object

142

Returns

Nothing.

Property setSpatialAutoBezierAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Sp at i a l Auto B e zi e r At Ke y ( k e yInd e x , ne w Va l )
Description

Turns spatial auto-Bezier interpolation on or off for the specified keyframe.
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
newVal

True to turn spatial auto-Bezier on, false to turn it off.

Returns

Nothing.

Property setSpatialContinuousAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Sp at i a l C ont i nu ou s At Ke y (ke yInd e x, ne w Val)
Description

Turns spatial continuity on or off for the specified keyframe.
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
newVal

True to turn spatial continuity on, false to turn it off.

Returns

Nothing.

Property setSpatialTangentsAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Sp at i a l Tange nt s At Ke y (ke y In de x, inTange nt ,
out Tang ent)
Description

Sets the incoming and outgoing tangent vectors for the specified keyframe.
If the property value type is neither Two D_ SPAT IAL nor T h re e D _ SPAT IA L , an exception is generated.

142

After Effects scripting reference

Property object

143

Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
i nTan ge nt

The incoming tangent vector. An array of 2 or 3 floating-point values.

• If the property value type is Prop e r t y Va lu e Ty p e. Two D_ SPAT IA L , the array contains 2 values.
• If the property value type is Prop e r t y Va lu e Ty p e. T h re e D _ SPAT IA L , the array contains 3 values.
out Tange nt

(Optional) The outgoing tangent vector. If not supplied, the ‘out’ tangent is set to the i nTange nt value. An
array of 2 or 3 floating-point values.

• If the property value type is Prop e r t y Va lu e Ty p e. Two D_ SPAT IA L , the array contains 2 values.
• If the property value type is Prop e r t y Va lu e Ty p e. T h re e D _ SPAT IA L , the array contains 3 values.
Returns

Nothing.

Property setTemporalAutoBezierAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Te mp ora l Aut o B e z i e r At Ke y ( ke yInd ex , ne wVal )
Description

Turns temporal auto-Bezier interpolation on or off for the specified keyframe. When this is turned on, it
affects this keyframe only if ke y Sp at i a l C ont i nu ou s ( k e y Inde x) is also true.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
newVal

True to turn temporal auto-Bezier on, false to turn it off.

Returns

Nothing.

Property setTemporalContinuousAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Te mp ora l C ont i nu ous At Ke y (ke yInde x, ne w Val )
Description

Turns temporal continuity on or off for the specified keyframe.
When temporal continuity is turned on, it affects this keyframe only if the keyframe interpolation type is
Ke y f r ame Inte r p ol at i onTyp e. BE Z IE R for both ke yInInt e r p ol at i onTyp e ( ke yInd e x) and ke yO ut Inte r p ol a t i onTyp e ( ke yInd e x) .
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
newVal

True to turn temporal continuity on, false to turn it off.

143

After Effects scripting reference

Property object

144

Returns

Nothing.

Property setTemporalEaseAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Te mp ora l E as eAt Ke y (ke y In de x , inTe mp oral Ea s e,
out Te mp oralE a s e)
Description

Sets the incoming and outgoing temporal ease for the specified keyframe. See “KeyframeEase object” on
page 84.
Parameters
The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne ar-

ke y Ind e x

e st Ke y Ind e x method.
i nTe mp or a l E as e

The incoming temporal ease. An array of 1, 2, or 3 KeyframeEase objects.

• If the property value type is Prop e r t y Va lu e Ty p e .Two D , the array contains 2 objects.
• If the property value type is Prop e r t y Va lu e Ty p e .T h re e D , the array contains 3 objects.
• For all other value types, the array contains 1 object.
out Te mp or a l E as e

(Optional) The outgoing temporal ease. If not supplied, the outgoing ease is set to the i nTe mp or a -

l E as e value. An array of 1, 2, or 3 KeyframeEase objects.

• If the property value type is Prop e r t y Va lu e Ty p e .Two D , the array contains 2 objects.
• If the property value type is Prop e r t y Va lu e Ty p e .T h re e D , the array contains 3 objects.
• For all other value types, the array contains 1 object.
Returns

Nothing.

Property setValue() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Va lu e ( ne w Value )
Description

Sets the static value of a property that has no keyframes.
If the named property has keyframes, this method generates an exception and displays an error. To set the
value of a property with keyframes, use “Property setValueAtTime() method” on page 145 or “Property setValueAtKey() method” on page 145.
Parameters
n e w Va lu e

A value appropriate for the type of property being set; see “Property propertyValueType attribute” on page 138.

Returns

Nothing.

144

After Effects scripting reference

Property object

145

Property setValueAtKey() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Va lu e At Ke y( ke yInd ex , ne wValue)
Description

Finds the specified keyframe and sets its value.
If the named property has no keyframes, or no keyframe with the specified index, this method generates an
exception and displays an error.
Parameters
ke y Ind e x

The index for the keyframe. An integer in the range [1..numKeys], as returned by the a dd Ke y or ne are st -

Ke y Ind e x method.
n e w Va lu e

A value appropriate for the type of property being set; see “Property propertyValueType attribute” on
page 138.

Returns

Nothing.

Property setValueAtTime() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Va lu e At Ti me ( time , ne wValue)
Description

Sets the value of a keyframe at the specified time. Creates a new keyframe for the named property, if one does
not currently exist for the specified time, and sets its value.
Parameters
t i me

The time in seconds, a floating-point value. The beginning of the composition is 0.

n e w Va lu e

A value appropriate for the type of property being set; see “Property propertyValueType attribute” on page 138.

Returns

Nothing.

Property setValuesAtTimes() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e t Va lu e s At Ti m e s (tim es , ne w Values )
Description

Sets values for a set of keyframes at specified of times. Creates a new keyframe for the named property, if one
does not currently exist for a specified time, and sets its value.
Times and values are expressed as arrays; the arrays must be of the same length.
Parameters
t i me s

An array of times, in seconds. Each time is a floating-point value. The beginning of the composition is 0.

145

After Effects scripting reference

Property object

146

n e w Va lu e s

A array of values appropriate for the type of property being set; see “Property propertyValueType attribute” on page 138.

Returns

Nothing.

Property unitsText attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. u n it s Te x t
Description

The text description of the units in which the value is expressed.
Type

String; read-only.

Property value attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. v a lu e
Description

The value of the named property at the current time.
• If e x pre s s i onE n abl e d is true, returns the evaluated expression value.
• If there are keyframes, returns the keyframed value at the current time.
• Otherwise, returns the static value.

The type of value returned depends on the property value type. See examples for “Property object” on
page 124.
Type

A value appropriate for the type of the property (see “Property propertyValueType attribute” on page 138);
read-only.

Property valueAtTime() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. v a lu e At Ti m e ( time , preE x pressi on)
Description

The value of the named property as evaluated at the specified time.
Note that the type of value returned is not made explicit; it will be of a different type, depending on the
property evaluated.
Parameters
t i me

The time in seconds; a floating-point value. The beginning of the composition is 0.

pre E x pre s s i on

If the property has an expression and this is true, return the value for the specified time without
applying the expression to it. When false, return the result of evaluating the expression for the
specified time.
Ignored if the property does not have an associated expression.

146

After Effects scripting reference

Property object

147

Returns

A value appropriate for the type of the property (see “Property propertyValueType attribute” on page 138).

147

After Effects scripting reference

PropertyBase object

148

PropertyBase object
app. proj e c t . ite m (ind e x). l aye r ( inde x) . prope r tySpec
Description

Properties are accessed by name through layers, using various kinds of expression syntax, as controlled by
application preferences. For example, the following are all ways of access properties in the Effects group:
v ar e f fe c t 1 = app. proj e c t . ite m ( 1 ) . l aye r ( 1 ). e f fe c t ( " Add Gr ai n " ) ( "Vi e w i ng Mo d e " ) ;
v ar e f fe c t 1 a gai n = app. proj e c t . ite m ( 1 ) .l ay e r ( 1 ) .e f fe c t . a d dGr ai n .v i e w i ng Mo d e ;
v ar e f fe c t 1 a g ai nto o = app.proj e c t . it e m ( 1 ) . l aye r ( 1 )( " E f fe c t s ") .a d d Gr ai n . v i e w i ng Mo d e ;
v ar e f fe c t 1a gai nto o 2 = app. proj e c t .ite m( 1) .l aye r( 1)( " E f fe c t s" )(" Ad d Grai n" )( " Vi e w i ng Mo d e ") ;

See also “PropertyGroup property() method” on page 157.
• PropertyBase is the base class for both Property and PropertyGroup, so PropertyBase attributes and

methods are available when working with properties and property groups. See “Property object” on
page 124 and “PropertyGroup object” on page 155.
Reference invalidation

When something occurs that changes an object sufficiently for the reference to become invalid, script references to that object can generate errors. In simple cases this is straightforward. For example, if you delete an
object, a reference to the deleted object generates the warning "Object is Invalid":
v ar l ayer 1 = app.proj e c t . it em (1 ). l aye r (1 );
l aye r 1 .re m ove ( ) ;
a l e r t ( l ay er 1 .name ) ; / / i nv a l i d re fe re nc e to d e l e te d obj e c t

Similarly, if you reference an AE property in a deleted object, the warning occurs:
v ar l ayer 1 = app.proj e c t . it em (1 ). l aye r (1 );
v ar l ayer 1 p o s it i on = l aye r1 .t r an s for m. p o s it i on ;
l aye r 1 .re m ove ( ) ;
a l e r t ( l ay er 1 p os it i on .v a lu e ) ; / / i nv a l i d re fe re n c e to prop e r t y i n s el e c te d obj e c t

A less straightforward case is when a property is removed from a property group. In this case, After Effects
generates the "Object is Invalid" error when you subsequently reference that item or other items in the group,
because their index positions have changed. For example:
v ar e f fe c t 1 = app. proj e c t . ite m ( 1 ) . l aye r ( 1 ). e f fe c t ( 1 ) ;
v ar e f fe c t 2 = app. proj e c t . ite m ( 1 ) . l aye r ( 1 ). e f fe c t ( 2 ) ;
v ar e f fe c t 2 p ar am = app. proj e c t . ite m ( 1 ) . l aye r ( 1 ) . e f fe c t ( 2 ). bl e n dWit hO r i g i n a l ;
e f fe c t 1 . re m ove ( ) ;
a l e r t ( e f fe c t 2 . n am e ) ; / / i nv a l i d re fe re n c e b e c aus e g roup i nd e x p o s it i ons h ave change d
Attributes
Attribute

Reference

Description

name

“PropertyBase name attribute” on
page 152

Name of the property.

matchName

“PropertyBase matchName attribute”
on page 152

A special name for the property used to build unique naming paths.

148

After Effects scripting reference

PropertyBase object

149

Attribute

Reference

Description

prop e r t y Ind e x

“PropertyBase propertyIndex attribute”
on page 153

Index of this property within its parent group.

prop e r t y D e pt h

“PropertyBase propertyDepth attribute” The number of levels of parent groups between this property and
on page 153
the containing layer.

prop e r t y Typ e

“PropertyBase propertyType attribute”
on page 154

p are nt Prop e r t y “PropertyBase parentProperty attri-

The property type.

The immediate parent group of this property.

bute” on page 153

i s Mo d i f i e d

“PropertyBase isModified attribute” on
page 151

When true, the property has been changed since its creation.

c an S e t E n abl e d

“PropertyBase canSetEnabled attribute” When true, the user interface displays an eyeball icon for this propon page 150
erty.

e n abl e d

“PropertyBase enabled attribute” on
page 151

When true, this property is enabled.

a c t ive

“PropertyBase active attribute” on
page 149

When true, this property is active.

elide d

“PropertyBase elided attribute” on
page 150

When true, this property is not displayed in the user interface.

i s E f fe c t

“PropertyBase isEffect attribute” on
page 151

When true, this property is an effect.

isMask

“PropertyBase isMask attribute” on
page 151

When true, this property is a mask.

s e l e c te d

“PropertyBase selected attribute” on
page 154

When true, this property is selected.

Methods
Method

Reference

Description

prop e r t y Group ()

“PropertyBase propertyGroup()
method” on page 153

Gets the parent group for this property.

re move ( )

“PropertyBase remove() method” on
page 154

Removes this from the project.

moveTo()

“PropertyBase moveTo() method” on
page 152

Moves this property to a new position in its parent group.

dupl i c at e ( )

“PropertyBase duplicate() method” on
page 150

Duplicates this property object.

PropertyBase active attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. a c t ive
Description

When true, this property is active. For a layer, this corresponds to the setting of the eyeball icon and if the
current time is between the layer’s in and out points. For an effect and all properties, it is the same as the
e n abl e d attribute, except that it’s read-only.

149

After Effects scripting reference

PropertyBase object

150

Type

Boolean; read-only.

PropertyBase canSetEnabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. c anS e t E n abl e d
Description

When true, you can set the e n ab l e d attribute value. Generally, this is true if the user interface displays an
eyeball icon for this property; it is true for all layers.
Type

Boolean; read-only.

PropertyBase duplicate() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. dupl i c ate ( )
Description

If this property is a child of an indexed group, creates and returns a new PropertyBase object with the same
attribute values as this one.
If this property is not a child of an indexed group, the method generates an exception and displays an error.
An indexed group has the type Prop e r t y Ty p e. I N DE X E D _ G ROU P ; see “PropertyBase propertyType attribute”
on page 154.
Parameters

None.
Returns

PropertyBase object.

PropertyBase elided attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. el i de d
Description

When true, this property is a group used to organize other properties. The property is not displayed in the user
interface and its child properties are not indented in the Timeline panel.
For example, for a text layer with two animators and no properties twirled down, you might see:
Te xt
Pat h O pt i ons
More O pt i ons
Anim ator 1
Anim ator 2

In this example, “Animator 1” and “Animator 2” are contained in a PropertyBase called “Text Animators.” This
parent group is not displayed in the user interface, and so the two child properties are not indented in the
Timeline panel.

150

After Effects scripting reference

PropertyBase object

151

Type

Boolean; read-only.

PropertyBase enabled attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. e n abl e d
Description

When true, this property is enabled. It corresponds to the setting of the eyeball icon, if there is one; otherwise,
the default is true.
Type

Boolean; read/write if c anS e t E nabl e d is true, read-only if c an S e t E n abl e d is false.

PropertyBase isEffect attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s E f fe c t
Description

When true, this property is an effect PropertyGroup.
Type

Boolean; read-only.

PropertyBase isMask attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s Mask
Description

When true, this property is a mask PropertyGroup.
Type

Boolean; read-only.

PropertyBase isModified attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. i s Mo d i f i e d
Description

When true, this property has been changed since its creation.
Type

Boolean; read-only.

151

After Effects scripting reference

PropertyBase object

152

PropertyBase matchName attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec.mat ch Name
Description

A special name for the property used to build unique naming paths. The match name is not displayed, but you
can refer to it in scripts. Every property has a unique match-name identifier. Match names are stable from
version to version regardless of the display name (the name attribute value) or any changes to the application.
Unlike the display name, it is not localized.
An indexed group may not have a name value, but always has a match Name value. (An indexed group has the
type Prop e r t yTy p e. I N DE X E D _ G R OU P ; see “PropertyBase propertyType attribute” on page 154.)
Type

String; read-only.

PropertyBase moveTo() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. m ove To (n e w Ind e x)
Description

Moves this property to a new position in its parent property group.
This method is valid only for children of indexed groups; if it is not, or if the index value is not valid, the
method generates an exception and displays an error. (An indexed group has the type Prop e rt yTyp e. IN DE X E D _ G ROU P ; see “PropertyBase propertyType attribute” on page 154.)
NOTE: Using this method invalidates existing references to other children in the same indexed group. For
example, if you have three effects on a layer, each effect assigned to a different variable, moving one of the effects
invalidates the references for all of these variables. You will need to reassign them.
Parameters
n e w In d e x

The new index position at which to place this property in its group. An integer.

Returns

Nothing.

PropertyBase name attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. n ame
Description

The display name of the property. (Compare “PropertyBase matchName attribute” on page 152.)
It is an error to set the name value if the property is not a child of an indexed group (that is, a property group
that has the type Prop e r t y Typ e. IN DE X E D _ G ROU P ; see “PropertyBase propertyType attribute” on page 154).
Type

String; read/write for a child of an indexed group; otherwise read-only.

152

After Effects scripting reference

PropertyBase object

153

PropertyBase parentProperty attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. p are nt Prop er t y
Description

The property group that is the immediate parent of this property, or null if this PropertyBase is a layer.
Type

PropertyGroup object or null; read-only.

PropertyBase propertyDepth attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y D e pt h
Description

The number of levels of parent groups between this property and the containing layer. The value 0 for a layer.
Type

Integer; read-only.

PropertyBase propertyGroup() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y Group ()
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y Group (countUp )
Description

Gets the PropertyGroup object for an ancestor group of this property at a specified level of the parent-child
hierarchy.
Parameters
c ou nt Up

Optional. The number of levels to ascend within the parent-child hierarchy. An integer in the
range [1..prop e r t y D e pt h ]. Default is 1, which gets the immediate parent.

Returns

PropertyGroup object, or null if the count reaches the containing layer.

PropertyBase propertyIndex attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y In d e x
Description

The position index of this property within its parent group, if it is a child of an indexed group (a property
group that has the type Prop e r t y Ty p e. I N DE X E D _ G ROU P ; see “PropertyBase propertyType attribute” on
page 154).
Type

Integer; read-only.

153

After Effects scripting reference

PropertyBase object

154

PropertyBase propertyType attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. prop e r t y Typ e
Description

The type of this property.
Type

A P rop e r t y Typ e enumerated value; read/write. One of:
Prop e r t y Ty p e. PROPE RT Y

A single property such as position or zoom.

Prop e r t y Ty p e. I N DE X E D _ G ROU P

A property group whose members have an editable name and an index. Effects
and masks are indexed groups. For example, the masks property of a layer
refers to a variable number of individual masks by index number.

Prop e r t y Ty p e. NA M E D_ G ROU P

A property group in which the member names are not editable. Layers are
named groups.

PropertyBase remove() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. re m ove ( )
Description

Removes this property from its parent group. If this is a property group, it removes the child properties as well.
This method is valid only for children of indexed groups; if it is not, or if the index value is not valid, the
method generates an exception and displays an error. (An indexed group has the type Prop e rt yTyp e. IN DE X E D _ G ROU P ; see “PropertyBase propertyType attribute” on page 154.)
This method can be called on a text animation property (that is, any animator that has been set to a text layer).
Parameters

None.
Returns

Nothing.

PropertyBase selected attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t ySpec. s e l e c te d
Description

When true, this property is selected. Set to true to select the property, or to false to deselect it.
Sampling this attribute repeatedly for a large number of properties can slow down system performance. To
read the full set of selected properties of a composition or layer, use the s el e c t e d Prop e r t i e s attribute of a Comp
or Layer object.
Type

Boolean; read/write.

154

After Effects scripting reference

PropertyGroup object

155

PropertyGroup object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t yGroup Sp ec
Description

The PropertyGroup object represents a group of properties. It can contain Property objects and other
PropertyGroup objects. Property groups can be nested to provide a parent-child hierarchy, with a Layer object
at the top (root) down to a single Property object, such as the mask feather of the third mask. To traverse the
group hierarchy, use PropertyBase methods and attributes; see “PropertyBase propertyGroup() method” on
page 153.
For examples of how to access properties and property groups, see “PropertyBase object” on page 148.
• PropertyGroup is a subclass of PropertyBase. All methods and attributes of PropertyBase, in addition to

those listed below, are available when working with PropertyGroup. See “PropertyBase object” on page 148.
• PropertyGroup is a base class for MaskPropertyGroup. PropertyGroup attributes and methods are available

when working with mask groups. See “MaskPropertyGroup object” on page 106.
Attributes
Attribute

Reference

Description

nu mProp e r t i e s

“PropertyGroup numProperties attribute” on page 156 The number of indexed properties in the group.

Methods
Method

Reference

Description

prop e r t y ()

“PropertyGroup property() method” on
page 157

Gets a member property or group.

c an Ad dP rop e r t y ()

“PropertyGroup canAddProperty() method”
on page 156

Reports whether a property can be added to the group.

a d dProp e r t y ( )

“PropertyGroup addProperty() method” on
page 155

Adds a property to the group.

PropertyGroup addProperty() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t yGroup Sp ec. ad d Prop e r t y( nam e)
Description

Creates and returns a PropertyBase object with the specified name, and adds it to this group.
In general, you can only add properties to an indexed group (a property group that has the type
Prop e r t y Ty p e. I N DE X E D _ G ROU P ; see “PropertyBase propertyType attribute” on page 154) The only
exception is a text animator property, which can be added to a named group (a property group that has the
type Prop e r t yTy p e. NA M E D_ G ROU P) .
If this method cannot create a property with the specified name, it generates an exception. To check that you
can add a particular property to this group, call c an Ad d Prop e r t y before calling this method. (See “PropertyGroup canAddProperty() method” on page 156.)

155

After Effects scripting reference

PropertyGroup object

156

Parameters
name

The display name or match name of the property to add. (See “PropertyBase matchName attribute” on page 152).
The following names are supported:

• Any match name for a property that can be added through the user interface. For example, “ADBE Mask Atom”,
“ADBE Paint Atom”, “ADBE Text Position”, “ADBE Text Anchor Point”.

• When adding to an ADBE Mask Parade: “ADBE Mask Atom”, “Mask”.
• When adding to an ADBE Effect Parade, any effect by match name, such as “ADBE Bulge”, “ADBE Glo2”, “APC Vegas”.
• Any effect by display name, such as “Bulge”, “Glow”, “Vegas”.
• For text animators, “ADBE Text Animator”.
• For selectors, Range Selector has the name “ADBE Text Selector”, Wiggly Selector has the name “ADBE Text Wiggly
Selector”, and Expression Selector has the name “ADBE Text Expressible Selector”.

Returns

PropertyBase object.

PropertyGroup canAddProperty() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t yGroup Sp ec. c an Add Prop e r t y( name )
Description

Returns true if a property with the given name can be added to this property group. For example, you can only
add mask to a mask group. The only legal input arguments are “mask” or “ADBE Mask Atom”.
ma sk Group. c an Add Prop e r t y( " mask" ); // re tu r ns t r u e
ma sk Group. c an Add Prop e r t y( " ADBE Mask Atom" ); //retu r ns t r u e
mask Group. c an Add Prop er ty( " blend " ); // re tur ns fa ls e
Parameters
name

The display name or match name of the property to be checked. (See “PropertyGroup addProperty() method” on page 155).

Returns

Boolean.

PropertyGroup numProperties attribute
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t yGroup Sp ec. nu m Prop e r t i e s
Description

The number of indexed properties in this group.
For layers, this method returns a value of 3, corresponding to the mask, effect, and motion tracker groups,
which are the indexed groups within the layer. However, layers also have many other properties available only
by name; see the “PropertyGroup property() method” on page 157.
Type

Integer; read-only.

156

After Effects scripting reference

PropertyGroup object

157

PropertyGroup property() method
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t yGroup Sp ec. prop e r t y( ind ex )
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t yGroup Sp ec. prop e r t y( name)
Description

Finds and returns a child property of this group, as specified by either its index or name.
A name specification can use the same syntax that is available with expressions. The following are all allowed
and are equivalent:
my l aye r.p osit i on
my l aye r ( " p o s it i on " )
my l aye r.prop e r t y( "p osit i on" )
my l aye r ( 1)
my l aye r.prop e r t y( 1)

Some properties of a layer, such as position and zoom, can be accessed only by name.
When using the name to find a property that is multiple levels down, you must make more than one call to
this method. For example, the following call searches two levels down, and returns the first mask in the mask
group:
myL aye r. prop e r t y ( " A DB E Mas k s " ) . prop er t y ( 1)
Parameters
index

The index for the child property, in this is an indexed group. An integer in the range [0..nu m Prop e r-

t i e s ].
name

The name of the child property. This can be:

• Any match name
• Any name in expression “parenthesis style” syntax, meaning the display name or the compact English
name

• Any name in expression “intercap style” syntax
For supported property names, see the table below.

Returns

PropertyBase object or null if no child property with the specified string name is found.
Properties accessible by name
From any Layer

• "ADBE Mask Parade", or “Masks”
• "ADBE Effect Parade", or “Effects”
• "ADBE MTrackers", or “Motion Trackers”

157

After Effects scripting reference

PropertyGroup object

158

From an AVLayer

• "Anchor Point" or "anchorPoint"
• "Position" or "position"
• "Scale" or "scale"
• "Rotation" or "rotation"
• "Z Rotation" or "zRotation" or "Rotation Z" or "rotationZ"
• "Opacity" or "opacity"
• "Marker" or "marker"

From an AVLayer with a non-still source

• "Time Remap" or "timeRemapEnabled"

From an AVLayer with an audio component

• "Audio Levels" or "audioLevels"

From a camera layer

• "Zoom" or "zoom"
• "Depth of Field" or "depthOfField"
• "Focus Distance" or "focusDistance"
• "Aperture" or "aperture"
• "Blur Level" or "blurLevel"

From a light layer

• "Intensity" or "intensity"
• "Color" or "color"
• "Cone Angle" or "coneAngle"
• "Cone Feather" or "coneFeather"
• "Shadow Darkness" or "shadowDarkness"
• "Shadow Diffusion" or "shadowDiffusion"
• "Casts Shadows" or "castsShadows"

From a 3D layer

• "Accepts Shadows" or "acceptsShadows"
• "Accepts Lights" or "acceptsLights"
• "Ambient" or "ambient"
• "Diffuse" or "diffuse"
• "Specular" or "specular" (these are for the Specular Intensity property)
• "Shininess" or "shininess" (these are for the Specular Shininess property)
• "Casts Shadows" or "castsShadows"
• "Light Transmission" or "lightTransmission"
• "Metal" or "metal"

From a camera, light or 3D layer

• "X Rotation" or "xRotation" or "Rotation X" or "rotationX"
• "Y Rotation" or "yRotation" or "Rotation Y" or "rotationY"
• "Orientation" or "orientation"

From a text layer

• "Source Text" or "sourceText" or "Text" or "text"

From a PropertyGroup "ADBE Mask Parade"

• "ADBE Mask Atom"

From a PropertyGroup "ADBE Mask Atom"

• "ADBE Mask Shape", or “maskShape”, or “maskPath”
• "ADBE Mask Feather", or “maskFeather”
• "ADBE Mask Opacity", or “maskOpacity”
• "ADBE Mask Offset", or “maskOffset”

158

After Effects scripting reference

PropertyGroup object

159

Examples

1 If a layer named “myLayer” has a Box Blur effect, you can retrieve the effect in any of the following ways:
myL aye r. prop e r t y (“E f fe c t s” ) .prop e r t y(“B ox Blu r” );
myL aye r. prop e r t y (“E f fe c t s” ) .prop e r t y(“ b oxBlu r”) ;
myL aye r. prop e r t y (“E f fe c t s” ) .prop e r t y(“ADB E B ox Blu r” );

2 If a layer named “myLayer” has a mask named “Mask 1” you can retrieve it as follows:
myL aye r. prop e r t y (“Ma sk s” ) .prop e r t y( “Ma sk 1” );

3 To get a Bulge Center value from a Bulge effect, you can use either of the following:
myL aye r. prop e r t y ( “E f fe c t s” ) .prop e r t y( “Bu l ge” ) .prop e r t y( “Bu l ge C e nte r”) ;
myL aye r. prop e r t y ( “E f fe c t s” ) .prop e r t y( “Bu l ge” ) .prop e r t y( “ bu l ge C e nte r” ) ;

159

After Effects scripting reference

RenderQueue object

160

RenderQueue object
app. proj e c t . re nd e r Q u e u e
Description

The RenderQueue object represents the render automation process, the data and functionality that is available
through the Render Queue panel of a particular After Effects project. Attributes provide access to items in the
render queue and their render status. Methods can start, pause, and stop the rendering process.
The RenderQueueItem object provides access to the specific settings for an item to be rendered. See “RenderQueueItem object” on page 163.
Attributes
Attribute

Reference

Description

re nd e r i ng

“RenderQueue rendering attribute” on page 162

When true, a render is in progress.

nu mItems

“RenderQueue numItems attribute” on page 161

The total number of items in the render queue.

ite ms

“RenderQueue items attribute” on page 161

The collection of items in the render queue.

Methods
Method

Reference

Description

show Wi ndow ( )

“RenderQueue showWindow() method” Show or hides the Render Queue panel.
on page 162

re nd e r( )

“RenderQueue render() method” on
page 161

Starts the rendering process; does not return until render is
complete.

p au s e R e nd e r i ng ( )

“RenderQueue pauseRendering()
method” on page 161

Pauses or restarts the rendering process.

s top R e n d e r i n g( )

“RenderQueue stopRendering()
method” on page 162

Stops the rendering process.

ite m( )

“RenderQueue item() method” on
page 160

Gets a render-queue item from the collection.

RenderQueue item() method
app. proj e c t . re nd e r Q u e u e. ite m ( inde x )
Description

Gets a specified item from the ite ms collection.
Parameters
index

The position index of the item. An integer in the range [0..nu mIte ms ].

Returns

RenderQueueItem object.

160

After Effects scripting reference

RenderQueue object

161

RenderQueue items attribute
app. proj e c t . re nd e r Q u e u e. ite ms
Description

A collection of all items in the render queue. See “RenderQueueItem object” on page 163.
Type

RQItemCollection object; read-only.

RenderQueue numItems attribute
app. proj e c t . re nd e r Q u e u e. nu m Ite m s
Description

The total number of items in the render queue.
Type

Integer; read-only.

RenderQueue pauseRendering() method
app. proj e c t . re nd e r Q u e u e. p au s e R e nd e r i ng (p au s e)
Description

Pauses the current rendering process, or continues a paused rendering process. This is the same as clicking
Pause in the Render Queue panel during a render. You can call this method from an onSt atu sC hange d or
onE r ror callback. See “RenderQueueItem onStatusChanged attribute” on page 165 and “Application onError
attribute” on page 24.
Parameters
p au s e

True to pause a current render process, false to continue a paused render.

Returns

Nothing.

RenderQueue render() method
app. proj e c t . re nd e r Q u e u e. re n d e r( )
Description

Starts the rendering process. This is the same as clicking Render in the Render Queue panel. The method does
not return until the render process is complete. To pause or stop the rendering process, call p au s e R e nde r i ng ( )
or stop R e nd e r i ng () from an onE r ror or onSt atus C hange d callback.
• To respond to errors during the rendering process, define a callback function in app.onE r ror ; see “Appli-

cation onError attribute” on page 24.
• To respond to changes in the status of a particular item while the render is progressing, define a callback

function in R e n d e rQ u e u e It em . on St atu s C hange d in the associated RenderQueueItem object; see “RenderQueueItem onStatusChanged attribute” on page 165.

161

After Effects scripting reference

RenderQueue object

162

Parameters

None.
Returns

Nothing.

RenderQueue rendering attribute
app. proj e c t . re nd e r Q u e u e. re n d e r i ng
Description

When true, the rendering process is in progress or paused. When false, it is stopped.
Type

Boolean; read-only.

RenderQueue showWindow() method
app. proj e c t . re nd e r Q u e u e. s h ow Wi n dow( do Show)
Description

Shows or hides the Render Queue panel.
Parameters
d o Show

When true, show the Render Queue panel. When false, hide it.

Returns

Nothing.

RenderQueue stopRendering() method
app. proj e c t . re nd e r Q u e u e. s top R e n d e r i n g( )
Description

Stops the rendering process. This is the same as clicking Stop in the Render Queue panel during a render. You
can call this method from an onSt atus C hange d or onE r ror callback. See “RenderQueueItem onStatusChanged attribute” on page 165 and “Application onError attribute” on page 24.
Parameters

None.
Returns

Nothing.

162

After Effects scripting reference

RenderQueueItem object

163

RenderQueueItem object
app. proj e c t . re nd e r Q u e u e. ite m ( inde x )
Description

The RenderQueueItem object represents an individual item in the render queue. It provides access to the
specific settings for an item to be rendered. Create the object by adding a composition to the Render Queue
with the RQItemCollection object; see “RQItemCollection add() method” on page 169.
Attributes
Attribute

Reference

Description

nu mO utput Mo du l e s

“RenderQueueItem numOutputModules
attribute” on page 165

The total number of Output Modules assigned to the
item.

re nd e r

“RenderQueueItem render attribute” on
page 166

When true, this item is rendered when the queue is
started.

st ar tTime

“RenderQueueItem startTime attribute” on
page 167

The time when rendering began for the item.

e l ap s e d S e c ond s

“RenderQueueItem elapsedSeconds attribute” on page 164

The time elapsed in the current rendering of this item.

t i me Sp anSt ar t

“RenderQueueItem timeSpanStart attribute” on page 168

The start time in the composition to be rendered.

t i me Sp anD u r at i on

“RenderQueueItem timeSpanDuration
attribute” on page 168

The duration of the composition to be rendered.

sk ip Fr ames

“RenderQueueItem skipFrames attribute”
on page 167

The number of frames to skip when rendering this item.

c omp

“RenderQueueItem comp attribute” on
page 164

The composition to be rendered by this item.

output Mo du l e s

“RenderQueueItem outputModules attribute” on page 166

The collection of Output Modules for this item.

te mpl ate s

“RenderQueueItem templates attribute” on A set of Render Settings templates.
page 168

st atus

“RenderQueueItem status attribute” on
page 167

onSt atu sC hange d

“RenderQueueItem onStatusChanged attri- A callback function that is called during the rendering
bute” on page 165
process when the status of the item changes.

l o g Ty p e

“RenderQueueItem logType attribute” on
page 165

The current rendering status of the item.

A log type for this item.

Methods
Method

Reference

Description

output Mo du l e ( )

“RenderQueueItem outputModule() method” on
page 166

Gets an Output Module for the item.

re move ( )

“RenderQueueItem remove() method” on page 166

Removes the item from the render queue.

s ave AsTe mpl at e ()

“RenderQueueItem saveAsTemplate() method” on
page 167

Saves a new Render Settings template.

163

After Effects scripting reference

RenderQueueItem object

164

Method

Reference

Description

appl yTemp l at e ()

“RenderQueueItem applyTemplate() method” on
page 164

Applies a Render Settings template.

dupl i c at e

“RenderQueueItem duplicate() method” on page 164

Duplicates this item.

RenderQueueItem applyTemplate() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . apply Te mpl ate ( templateName )
Description

Applies a Render Settings template to the item. See also “RenderQueueItem saveAsTemplate() method” on
page 167 and “RenderQueueItem templates attribute” on page 168.
Parameters
te mpl ate Name

A string containing the name of the template to apply.

Returns

Nothing.

RenderQueueItem comp attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . comp
Description

The composition that will be rendered by this render-queue item. To change the composition, you must delete
this render-queue item and create a new one.
Type

CompItem object; read-only.

RenderQueueItem duplicate() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . dup l i c ate ( )
Description

Creates a duplicate of this item and adds it this render queue.
NOTE: Duplicating an item whose status is “Done” sets the new item’s status to “Queued”.
Parameters

None.
Returns

RenderQueueItem object.

RenderQueueItem elapsedSeconds attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . el ap s e d S e conds

164

After Effects scripting reference

RenderQueueItem object

165

Description

The number of seconds spent rendering this item.
Type

Integer, or null if item has not been rendered; read-only.

RenderQueueItem logType attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . l o g Ty p e
Description

A log type for this item, indicating which events should be logged while this item is being rendered.
Type

A L og Ty p e enumerated value; (read/write). One of:
L o gTy p e. E R ROR S_ ONLY
L o gTy p e. E R ROR S _ A N D _ SE T T I N G S
L o gTy p e. E R ROR S _ A N D _ P E R _ F R AM E _ I N F O

RenderQueueItem numOutputModules attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . nu mO utput Mo du l e s
Description

The total number of Output Modules assigned to this item.
Type

Integer; read-only.

RenderQueueItem onStatusChanged attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . on St atu sC hange d
Description

The name of a callback function that is called whenever the value of the R e n d e rQ u e u e It e m . st atu s attribute
changes. See “RenderQueueItem status attribute” on page 167.
You cannot make changes to render queue items or to the application while rendering is in progress or paused;
you can, however, use this callback to pause or stop the rendering process. See “RenderQueue pauseRendering() method” on page 161 and “RenderQueue stopRendering() method” on page 162.
See also “Application onError attribute” on page 24.
Type

A function name string, or null if no function is assigned.
Example
f u nc t i on mySt atus C hange d ( ) {
a l e r t ( app.proj e c t . re nd e r Q u e u e .ite m ( 1 ) . s t atus)
}

165

After Effects scripting reference

RenderQueueItem object

166

app. proj e c t . re nd e r Q u e u e. ite m ( 1 ) . onSt atu s C hange d = my St atu s C h ange d( ) ;
app. proj e c t . re nd e r Q u e u e. ite m ( 1 ) . re n d e r = f a l s e ; / / ch ange s st atu s and s h ow s d i a l o g

RenderQueueItem outputModules attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e s
Description

The collection of Output Modules for the item.
Type

OMCollection object; read-only.

RenderQueueItem outputModule() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . output Mo du l e (inde x)
Description

Gets an output module with the specified index position.
Parameters
index

The position index of the output module. An integer in the range [1..nu mO utput Mo du l e s ].

Returns

OutputModule object.

RenderQueueItem remove() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . re move ()
Description

Removes this item from the render queue.
Parameters

None.
Returns

Nothing.

RenderQueueItem render attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . re nd e r
Description

When true, the item will be rendered when the render queue is started. When set to true, the R e n d e rQ u e u e Ite m .s t atus is set to RQIte m St atu s . QU E U E D . When set to false, st atu s is set to RQIte mSt atus. U NQU E UE D .

166

After Effects scripting reference

RenderQueueItem object

167

Type

Boolean; read/write.

RenderQueueItem saveAsTemplate() method
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . s ave As Te mpl ate ( name)
Description

Saves the item’s current render settings as a new template with the specified name.
Parameters
name

A string containing the name of the new template.

Returns

Nothing.

RenderQueueItem skipFrames attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . sk ip Fr ame s
Description

The number of frames to skip when rendering this item. Use this to do rendering tests that are faster than a
full render.
A value of 0 skip no frames, and results in regular rendering of all frames. A value of 1 skips every other frame.
This is equivalent to "rendering on twos." Higher values skip a larger number of frames.
The total length of time remains unchanged. For example, if skip has a value of 1, a sequence output would
have half the number of frames and in movie output, each frame would be double the duration.
Type

Integer in the range [0..99]. Read/write.

RenderQueueItem startTime attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . st ar t Ti me
Description

The day and time that this item started rendering.
Type

Date object, or null if the item has not started rendering; read-only.

RenderQueueItem status attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . st atu s
Description

The current render status of the item.

167

After Effects scripting reference

RenderQueueItem object

168

Type

An RQIt e mSt atu s enumerated value; read-only. One of:
RQIte m St atu s . W IL L _ C ON T I N U E

Rendering process has been paused.

RQIte m St atu s . N E E D S _ OUT P U T

Item lacks a valid output path.

RQIte m St atu s. UNQUE U E D

Item is listed in the Render Queue panel but composition is not ready to render.

RQIte m St atu s. QU E UE D

Composition is ready to render.

RQIte m St atu s. R E NDE R I NG

Composition is rendering

RQIte m St atu s. USE R _ STOPPE D

Rendering process was stopped by user or script.

RQIte m St atu s . E R R _ STOP P E D

Rendering process was stopped due to an error.

RQIte m St atu s. D ON E

Rendering process for the item is complete.

RenderQueueItem templates attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . te mpl ate s
Description

The names of all Render Settings templates available for the item. See also “RenderQueueItem saveAsTemplate() method” on page 167.
Type

Array of strings; read-only.

RenderQueueItem timeSpanDuration attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . t i m e Sp an D u r at i on
Description

The duration in seconds of the composition to be rendered. The duration is determined by subtracting the
start time from the end time. Setting this value is the same as setting a custom end time in the Render Settings
dialog box.
Type

Floating-point value; read/write.

RenderQueueItem timeSpanStart attribute
app. proj e c t . re nd e r Q u e u e. ite m( inde x) . t i m e Sp an St ar t
Description

The time in the composition, in seconds, at which rendering will begin. Setting this value is the same as setting
a custom start time in the Render Settings dialog box.
Type

Floating-point value; read/write.

168

After Effects scripting reference

RQItemCollection object

169

RQItemCollection object
app. proj e c t . re nd e r Q u e u e. ite ms
Description

The RQItemCollection contains all of the render-queue items in a project, as shown in the Render Queue
panel of the project. The collection provides access to the RenderQueueItem objects, and allows you to create
them from compositions. The first RenderQueueItem object in the collection is at index position 1. See
“RenderQueueItem object” on page 163
• RQItemCollection is a subclass of Collection. All methods and attributes of Collection are available when

working with RQItemCollection. See “Collection object” on page 51.
Methods
Method

Reference

Description

a d d( )

“RQItemCollection add() method” on page 169

Adds a composition to the Render Queue.

RQItemCollection add() method
app. proj e c t . re nd e r Q u e u e. ite ms . a d d( comp )
Description

Adds a composition to the Render Queue, creating a RenderQueueItem.
Parameters
c omp

The CompItem object for the composition to be added.

Returns

RenderQueueItem object.

169

After Effects scripting reference

Settings object

170

Settings object
Description

The Settings object provides an easy way to manage settings for scripts. The settings are saved in the After
Effects preferences file and are persistent between application sessions. Settings are identified by section and
key within the file, and each key name is associated with a value. In the preferences file, section names are
enclosed in brackets and quotation marks, and key names are listing in quotation marks below the section
name. All values are strings.
You can create new settings with this object, as well as accessing existing settings.
Methods
Method

Reference

Description

s ave S e tt i ng ( )

“Settings saveSetting() method” on page 171

Saves a default value for a setting.

ge t S e tt i n g( )

“Settings getSetting() method” on page 170

Retrieves a setting value.

haveS e tting ( )

“Settings haveSetting() method” on page 170

Reports whether a specified setting is assigned.

Settings getSetting() method
app. setting s. ge t S ett i ng (s ecti onNam e, ke yName )
Description

Retrieves a scripting preferences item value from the preferences file.
Parameters
s e c t i onName

A string containing the name of a settings section

ke y Name

A string containing the key name of the setting item.

Returns

String.
Example

If you have saved a setting named with the key name “Aligned Clone” in the “Eraser - Paint Settings” section,
you can retrieve the value with this script:
v ar n = app.s e tt i ng s . ge t S e tt i ng ( " E r as e r - Pai nt S e tt i ng s " , " A l i g n e d C l one " ) ;
a l er t("The s e tt ing is " + n);

Settings haveSetting() method
app. setting s. h ave S e tt i ng (s ec tionNam e, ke yName )
Description

Returns true if the specified scripting preferences item exists and has a value.

170

After Effects scripting reference

Settings object

171

Parameters
s e c t i onName

A string containing the name of a settings section

ke y Name

A string containing the key name of the setting item.

Returns

Boolean.

Settings saveSetting() method
app. setting s. s ave S e tt i ng (s ec tionNam e, ke yName , v alue)
Description

Saves a default value for a scripting preferences item.
Parameters
s e c t i onName

A string containing the name of a settings section

ke y Name

A string containing the key name of the setting item.

v a lu e

A string containing the new value.

Returns

Nothing.

171

After Effects scripting reference

Shape object

172

Shape object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t y (inde x) . prop e r t y( " m ask Shap e ") . v a lu e
Description

The Shape object encapsulates information describing a shape in a shape layer, or the outline shape of a Mask.
It is the value of the “Mask Path” AE properties, and of the "Path" AE property of a shape layer. Use the
constructor, ne w Sh ap e ( ) , to create a new, empty Shape object, then set the attributes individually to define
the shape.
A shape has a set of anchor points, or vertices, and a pair of direction handles, or tangent vectors, for each
anchor point. A tangent vector (in a non-RotoBezier mask) determines the direction of the line that is drawn
to or from an anchor point. There is one incoming tangent vector and one outgoing tangent vector associated
with each vertex in the shape.
A tangent value is a pair of x,y coordinates specified relative to the associated vertex. For example, a tangent
of [-1,-1] is located above and to the left of the vertex and has a 45 degree slope, regardless of the actual location
of the vertex. The longer a handle is, the greater its influence; for example, an incoming shape segment stays
closer to the vector for an i nTange nt of [-2,-2] than it does for an i nTange nt of
[-1,-1], even though both of these come toward the vertex from the same direction.
If a shape is not closed, the i nTange nt for the first vertex and the out Tange nt for the final vertex are ignored.
If the shape is closed, these two vectors specify the direction handles of the final connecting segment out of
the final vertex and back into the first vertex.
RotoBezier masks calculate their tangents automatically. (See “MaskPropertyGroup rotoBezier attribute” on
page 108.) If a shape is used in a RotoBezier mask, the tangent values are ignored. This means that, for
RotoBezier masks, you can construct a shape by setting only the ve r t i c e s attribute and setting both i nTange nt s
and out Tange nt s to null. When you access the new shape, its tangent values are filled with the automatically
calculated tangent values.
For closed mask shapes, variable-width mask feather points can exist anywhere along the mask path. Feather
points are part of the Mask Path property. Reference a specific feather point by the number of the mask path
segment (portion of the path between adjacent vertices) where it appears.
NOTE: The feather points on a mask are listed in an array in the order that they were created.
Example: Create a square mask

A square is a closed shape with 4 vertices. The i nTange nt s and out Tange nt s for connected straight-line
segments are 0, the default, and do not need to be explicitly set.
var myShap e = ne w Shap e() ;
myShap e.ve r t ices = [[0 ,0], [ 0,100 ], [ 100,10 0], [10 0,0]] ;
myShap e.clo s e d = t r ue;
Example: Create a “U” shaped mask

A "U" is an open shape with the same 4 vertices used in the square:
var myShap e = ne w Shap e() ;
myShap e.ve r t ices = [[0 ,0], [ 0,100 ], [ 100,10 0], [10 0,0]] ;
myShap e.clo s e d = f a ls e;

172

After Effects scripting reference

Shape object

173

Example: Create an oval

An oval is a closed shape with 4 vertices and with i nTange nt and out Tange nt values:
var myShap e = ne w Shap e() ;
myShap e.ve r t ices = [[3 00,50 ], [20 0,150 ],[300 ,250] ,[ 400 ,1 50] ];
myShap e.inTangents = [[ 55.23 ,0 ], [0,-55.23 ],[-55.23 ,0 ],[0,55 .2 3]] ;
myShap e.outTange nt s = [[ -55.23,0] ,[ 0,55.23 ],[55 .2 3,0],[0 ,-55 .2 3]] ;
myShap e.clo s e d = t r ue;
Example: Create a square mask with two feather points

A large square mask with two feather points, one closer to the left end the second mask segment (off the
bottom edge) with a radius of 30 pixels and the other one centered the third mask segment (off the right edge)
with a larger radius of 100 pixels.
var myShap e = ne w Shap e() ;
myShap e.ve r t ices = [[1 00,10 0], [10 0,400] , [4 00,40 0], [ 400 ,1 00] ]; // s e gments draw n counterclo ckw is e
myShap e.clo s e d = t r ue;
my S h ap e.fe at h e r S e g L o c s = [ 1 ,2 ] ; / / s e g m e nt s are nu m b e re d st ar t i ng at 0 , s o s e con d s e g me nt is 1
myShap e.fe at he r R el S e g L o c s = [0 .1 5, 0 .5 ]; // 0 .1 5 i s cl os e r to t he l owe r- l e f t c or ne r of t he s qu are
myShap e.fe at her R ad ii = [ 30, 100 ]; // s e c ond fe at her p oint (on r i g ht-sid e s e g ment) has a l arger r a dius
Attributes
Attribute

Reference

Description

clos e d

“Shape closed attribute” on page 173

When true, the shape is a closed curve.

ve r t i c e s

“Shape vertices attribute” on page 177

The anchor points of the shape.

i nTan ge nt s

“Shape inTangents attribute” on page 176 The tangent vectors coming into the shape vertices.

out Tange nt s

“Shape outTangents attribute” on
page 176

The tangent vectors coming out of the shape vertices.

fe at he rS e gL o c s

“Shape featherSegLocs attribute” on
page 175

The mask path segment (sections of a mask path
between vertices) containing each feather point.

fe at he rR el S e gL o c s

“Shape featherRelSegLocs attribute” on
page 175

The relative position of each feather point on its mask
path segment.

fe at he rR a di i

“Shape featherRadii attribute” on
page 174

The feather amount (radius) for each feather point.

fe at he rInte r p s

“Shape featherInterps attribute” on
page 174

The feather radius interpolation type for each feather
point.

fe at he rTe nsi ons

“Shape featherTensions attribute” on
page 176

The feather tension at each feather point.

fe at he rTy p e s

“Shape featherTypes attribute” on
page 176

The direction (inner or outer) of each feather point.

fe at h e rR el C or n e r A ng l e s

“Shape featherRelCornerAngles attribute” The relative angle between the two normals on either
on page 174
side of a curved outer feather boundary at a corner on
a mask path.

Shape closed attribute
shap e O bjec t. v a lu e. cl o s e d

173

After Effects scripting reference

Shape object

174

Description

When true, the first and last vertices are connected to form a closed curve. When false, the closing segment is
not drawn.
Type

Boolean; read/write.

Shape featherInterps attribute
shap e O bjec t. v a lu e. fe at he r Int er p s
Description

An array containing each feather point’s radius interpolation type (0 for non-Hold feather points, 1 for Hold
feather points).
NOTE: Values are stored in the array in the order that feather points are created.
Type

Array of integers (0 or 1); read/write.

Shape featherRadii attribute
shap e O bjec t. v a lu e. fe at he r R a d i i
Description

An array containing each feather point’s radius (feather amount); inner feather points have negative values.
NOTE: Values are stored in the array in the order that feather points are created.
Type

Array of floating-point values; read/write.

Shape featherRelCornerAngles attribute
shap e O bjec t. v a lu e. fe at he r R e l C or n e r A ng l e s
Description

An array containing each feather point’s relative angle percentage between the two normals on either side of
a curved outer feather boundary at a corner on a mask path. The angle value is 0% for feather points not at
corners.
NOTE: Values are stored in the array in the order that feather points are created.
Type

Array of floating-point percentage values (0 to 100); read/write.

174

After Effects scripting reference

Shape object

175

Shape featherRelSegLocs attribute
shap e O bjec t. v a lu e. fe at he r R e l S e g L o cs
Description

An array containing each feather point’s relative position, from 0 to 1, on its mask path segment (section of
the mask path between vertices, numbered starting at 0).
NOTE: Values are stored in the array in the order that feather points are created.
To move a feather point to a different mask path segment, first change the fe at he r S e g L o c s attribute value, then
this attribute.
Type

Array of floating-point values (0 to 1); read/write.

Shape featherSegLocs attribute
shap e O bjec t. v a lu e. fe at he r S e g L o cs
Description

An array containing each feather point’s mask path segment number (section of the mask path between
vertices, numbered starting at 0).
NOTE: Values are stored in the array in the order that feather points are created.
Move a feather point to a different segment by changing both its segment number (this attribute) and,
optionally, its fe at he rR el S e gL o c s attribute value.
Type

Array of integers; read/write.
Example
/ / Assum i ng a re c t ang l e clos e d mask ( s egment s nu mb ere d 0-3) has 3 mask fe at her p oints ,
/ / m ove a l l 3 fe at h e r p oi nt s t o t he f i rst m as k s eg me nt .
/ / G e t t he S h ap e o bj e c t for t he m a sk , a ss u m e d h e re to b e t he f i rst m as k on t he l aye r.
var my_mask Sh ap e = laye r.mask(1 ). prop er ty (" ADBE Mask Shap e" ) .va lu e;
/ / C h e ck w h e re m as k fe at he r p oi nt s are l o c ate d.
/ / Not e : The y are st ore d i n t he ord e r t hat t he y are a d de d.
v ar w he re _ are _ myMas k Fe at h e rPoi nt s = my _ m ask Sh ap e. fe at h e r S e g L o cs ;
/ / Move a l l 3 fe at h e r p oi nt s to t he f i rst m as k s e g me nt ( nu mb e re d 0 ).
my_ m a sk Sh ap e. fe at h e r S e gL o c s = [ 0 , 0 , 0 ] ;
/ / Up d ate t he mask p at h.
l aye r. mask( 1). prop er ty (" ADBE Ma sk Shap e") . s e tValue(my_mask Shap e) ;

175

After Effects scripting reference

Shape object

176

Shape featherTensions attribute
shap e O bjec t. v a lu e. fe at he r Te n s i ons
Description

An array containing each feather point’s tension amount, from 0 (0% tension) to 1 (100% tension).
NOTE: Values are stored in the array in the order that feather points are created.
Type

Array of floating-point values (0 to 1); read/write.

Shape featherTypes attribute
shap e O bjec t. v a lu e. fe at he r Typ e s
Description

An array containing each feather point’s direction, either 0 (outer feather point) or 1 (inner feather point).
NOTE: You cannot change the direction of a feather point after it has been created.
NOTE: Values are stored in the array in the order that feather points are created.
Type

Array of integers (0 or 1); read/write.

Shape inTangents attribute
shap e O bjec t. v a lu e. i nTange nt s
Description

The incoming tangent vectors, or direction handles, associated with the vertices of the shape. Specify each
vector as an array of two floating-point values, and collect the vectors into an array the same length as the
ve r t i c e s array.
Each tangent value defaults to [0,0]. When the mask shape is not RotoBezier, this results in a straight line
segment.
If the shape is in a RotoBezier mask, all tangent values are ignored and the tangents are automatically calculated.
Type

Array of floating-point pair arrays; read/write.

Shape outTangents attribute
shap e O bjec t. v a lu e. out Tange nt s
Description

The outgoing tangent vectors, or direction handles, associated with the vertices of the shape. Specify each
vector as an array of two floating-point values, and collect the vectors into an array the same length as the
ve r t i c e s array.

176

After Effects scripting reference

Shape object

177

Each tangent value defaults to [0,0]. When the mask shape is not RotoBezier, this results in a straight line
segment.
If the shape is in a RotoBezier mask, all tangent values are ignored and the tangents are automatically calculated.
Type

Array of floating-point pair arrays; read/write.

Shape vertices attribute
shap e O bjec t. v a lu e. ve r t i ce s
Description

The anchor points of the shape. Specify each point as an array of two floating-point values, and collect the
point pairs into an array for the complete set of points. For example:
myShap e.ve r t ices = [[0 ,0], [ 0,1], [1,1] , [1,0 ]];
Type

Array of floating-point pair arrays; read/write.

177

After Effects scripting reference

ShapeLayer object

178

ShapeLayer object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x )
Description

The ShapeLayer object represents a shape layer within a composition. Create it using the LayerCollection
object’s ad dShap e () method; see “LayerCollection addShape() method” on page 97. It can be accessed in an
item’s layer collection either by index number or by a name string.
• ShapeLayer is a subclass of AVLayer, which is a subclass of Layer. All methods and attributes of AVLayer

and Layer are available when working with ShapeLayer. See “Layer object” on page 86 and “AVLayer object”
on page 38.

178

After Effects scripting reference

SolidSource object

179

SolidSource object
app. proj e c t . ite m ( i n d e x ) . m ai n S ou rc e
app. proj e c t . ite m ( i n d e x ) . proxy S ou rc e
Description

The SolidSource object represents a solid-color footage source.
• SolidSource is a subclass of FootageSource. All methods and attributes of FootageSource, in addition to

those listed below, are available when working with SolidSource. See “FootageSource object” on page 69.
Attributes
Attribute

Reference

Description

c ol or

“SolidSource color attribute” on page 179

The color of the solid.

SolidSource color attribute
s ol i d S ou rc e. c o l or
Description

The color of the solid, expressed as red, green, and blue values.
Type

Array of three floating-point values, [R, G, B], in the range [0.0..1.0]; read/write.

179

After Effects scripting reference

System object

180

System object
s y st e m
Description

The System object provides access to attributes found on the user’s system, such as the user name and the name
and version of the operating system. It is available through the s y ste m global variable.
Example
a l e r t ( "You r O S i s " + s ys te m . o s Name + " r u n n i ng ve rsi on " + s ys te m . o s Ve rs i on) ;
c on f i r m (" You are : " + s ys te m .u s e r Name + " r u n n i ng on " + s y ste m .m ach i n eNam e + ". " );
Attributes
Attribute

Reference

Description

u s e r Nam e

“System userName attribute” on page 181

The current user name.

machi neName

“System machineName attribute” on page 181 The name of the host computer.

os Name

“System osName attribute” on page 181

The name of the operating system.

os Ve rsion

“System osVersion attribute” on page 181

The version of the operating system.

Method

Reference

Description

c a l l Sys te m ()

“System callSystem() method” on page 180

Execute’s a command on the system’s command line.

Methods

System callSystem() method
s y st e m. c a l l Sy s te m ( c m d L i n e ToE xe c ute ) ;
Description

Executes a system command, as if you had typed it on the operating system’s command line. Returns whatever
the system outputs in response to the command, if anything.
In Windows, you can invoke commands using the /c switch for the c m d.e xe command, passing the command
to run in escaped quotes (\ " .. . \" ). For example, the following retrieves the current time and displays it to the
user:
v ar t i m e St r = s ys te m .c a l l Sy ste m (" c m d. e xe /c \" t i m e / t \" " );
a l e r t ( " Cu r re nt t i me i s " + t i m e St r ) ;
Parameters
c m d L i n e To E xe c ut e

A string containing the command and its parameters.

Returns

The output from the command.

180

After Effects scripting reference

System object

181

System machineName attribute
s y st e m. machineName
Description

The name of the computer on which After Effects is running.
Type

String; read-only.

System osName attribute
s y st e m. osName
Description

The name of the operating system on which After Effects is running.
NOTE: As of Windows 7, this attribute returns a blank value. Use $.os instead.
Type

String; read-only.

System osVersion attribute
s y st e m. osVe rs ion
Description

The version of the current local operating system.
Type

String; read-only.

System userName attribute
s y st e m. us e rName
Description

The name of the user currently logged on to the system.
Type

String; read-only.

181

After Effects scripting reference

TextDocument object

182

TextDocument object
n e w Te x t D o c u m e nt (d oc Te x t)
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x ) .prop e r t y ( " S ou rce Te x t " ) .v a lu e
Description

The TextDocument object stores a value for a TextLayer's Source Text property. Create it with the constructor,
passing the string to be encapsulated.
Examples

This sets a value of some source text and displays an alert showing the new value:
v ar myTe xt D o c u me nt = ne w Te xt D o c u me nt (" Happy C a ke " );
myTe xt L aye r. prop er t y( " S ou rc e Te xt " ). s e t Va lu e (myTe xt D o c u me nt );
a l e r t ( myTe x t L ay e r. prop e r t y ( " S ou rc e Te x t " ) . v a lu e ) ;

This sets keyframe values for text that show different words over time:
v ar te x t Prop = myTe xt L aye r. prop e r t y (" S ou rc e Te xt " );
te x t Prop. s e t Va lu e At Ti m e ( 0 , n e w Te x t D o c u m e nt ( " Happy ") ) ;
te x t Prop. s e t Va lu e At Ti m e ( .3 3 , n e w Te x t D o c u m e nt ( " c a k e ") ) ;
te x t Prop. s e t Va lu e At Ti m e ( .6 6 , n e w Te x t D o c u m e nt ( " is ") ) ;
te x t Prop. s e t Va lu e At Ti m e ( 1 , n e w Te x t D o c u m e nt ( " y u m my ! " ) ) ;

This sets various character and paragraph settings for some text:
v ar te x t Prop = my Te xt L aye r. prop e r t y ("S ou rc e Te xt " );
v ar te x t D o c u me nt = te x t Prop. v a lu e ;
mySt r i ng = " Happy h ol i d ays ! " ;
te x t D o c u m e nt . re s e t C har St y l e ( ) ;
te x t D o c u me nt . font Si ze = 60 ;
te x t D o c u m e nt . f i l l C ol or = [ 1 , 0 , 0 ] ;
te x t D o c u me nt . st roke C ol or = [0, 1, 0] ;
te x t D o c u me nt . st roke Wi dt h = 2 ;
te x t D o c u m e nt . font = " Ti m e s Ne w R omanP SM T " ;
te x t D o c u m e nt . s t ro ke O ve r Fi l l = t r u e ;
te x t D o c u m e nt . apply St ro ke = t r u e;
te x t D o c u m e nt . apply Fi l l = t r u e ;
te x t D o c u me nt . te x t = mySt r i ng ;
te x t D o c u m e nt . ju s t i f i c at i on = Par ag raph Ju s t i f i c at i on. C E N T E R _ J U STI F Y;
te x t D o c u me nt . t r ack i ng = 50 ;
te x t Prop. s e t Va lu e ( te x t D o c u m e nt ) ;
Attributes
Attribute

Reference

Description

te x t

“TextDocument text attribute” on page 187

The text layer’s Source Text value.

font

“TextDocument font attribute” on page 184

The text layer’s font specified by its PostScript
name.

font Si ze

“TextDocument fontSize attribute” on page 185

The text layer’s font size in pixels.

appl yFi l l

“TextDocument applyFill attribute” on page 183

When true, the text layer shows a fill.

182

After Effects scripting reference

TextDocument object

183

Attribute

Reference

Description

appl ySt roke

“TextDocument applyStroke attribute” on page 183

When true, the text layer shows a stroke.

f i l l C ol or

“TextDocument fillColor attribute” on page 184

The text layer’s fill color.

s t roke C ol or

“TextDocument strokeColor attribute” on page 186

The text layer’s stroke color.

s t roke O ve r Fi l l

“TextDocument strokeOverFill attribute” on page 186 Indicates the rendering order for the fill and stroke
of a text layer.

s t roke Wi dt h

“TextDocument strokeWidth attribute” on page 186

The text layer’s stroke thickness.

ju s t i f i c at i on

“TextDocument justification attribute” on page 185

The paragraph justification for the text layer.

t r ack i ng

“TextDocument tracking attribute” on page 187

The text layer’s spacing between characters.

p oi nt Te x t

“TextDocument pointText attribute” on page 185

When true, the text layer is point (unbounded)
text.

b oxTe xt

“TextDocument boxText attribute” on page 184

When true, the text layer is paragraph (bounded)
text.

b oxTe xt Si z e

“TextDocument boxTextSize attribute” on page 184

For box text, the pixel dimensions for the text
bounds.

Methods
Method

Reference

Description

re s e tC har St y le()

“TextDocument resetCharStyle() method” on
page 185

Restores the default character settings in the
Character panel.

re s e t Par ag r aph St y l e ( )

“TextDocument resetParagraphStyle() method” Restores the default paragraph settings in the
on page 186
Paragraph panel.

TextDocument applyFill attribute
te xtD oc um ent .app lyFi l l
Description

When true, the text layer shows a fill. Access the f i l l C ol or attribute for the actual color. When false, only a
stroke is shown.
Type

Boolean; read/write.

TextDocument applyStroke attribute
te xtD oc um ent .app lySt roke
Description

When true, the text layer shows a stroke. Access the st roke C ol or attribute for the actual color and st roke Wi dt h
for its thickness. When false, only a fill is shown.
Type

Boolean; read/write.

183

After Effects scripting reference

TextDocument object

184

TextDocument boxText attribute
te xtD oc um ent .b oxTe xt
Description

True if a text layer is a layer of paragraph (bounded) text; otherwise false.
Type

Boolean; read-only.

TextDocument boxTextSize attribute
te xtD oc um ent .b oxTe xt Si z e
Description

The size of a paragraph (box) text layer as a [width, height] array of pixel dimensions.
Type

Array of two integers (minimum value of 1); read/write.

TextDocument fillColor attribute
te xtD oc um ent .f i l l C ol or
Description

The text layer’s fill color, as an array of [r, g, b] floating-point values. For example, in an 8-bpc project, a red
value of 255 would be 1.0, and in a 32-bpc project, an overbright blue value can be something like 3.2.
NOTE: If the text layer has different fill color settings for each character, this attribute returns the setting for the
first character. Also, if you change the value, it resets all characters in the text layer to the specified setting.
Type

Array [r, g, b] of floating-point values; read/write.

TextDocument font attribute
te xtD oc um ent .font
Description

The text layer’s font specified by its PostScript name.
NOTE: If the text layer has different font settings for each character, this attribute returns the setting for the first
character. Also, if you change the value, it resets all characters in the text layer to the specified setting.
Type

String; read/write.

184

After Effects scripting reference

TextDocument object

185

TextDocument fontSize attribute
te xtD oc um ent .font Si ze
Description

The text layer’s font size in pixels.
NOTE: If the text layer has different font size settings for each character, this attribute returns the setting for the
first character. Also, if you change the value, it resets all characters in the text layer to the specified setting.
Type

Floating-point value (0.1 to 1296, inclusive); read/write.

TextDocument justification attribute
te xtD oc um ent .just i f i c at i on
Description

The paragraph justification for the text layer.
Type

A Par ag r aph Ju st i f i c at i on enumerated value; read-only. One of:
Par ag raph Ju s t i f i c at i on. L E F T _ J U ST I FY
Par ag raph Ju s t i f i c at i on. R IG H T _ J U ST I F Y
Par ag raph Ju s t i f i c at i on. C E N T E R _ J U STI F Y
Par ag raph Ju s t i f i c at i on. F U L L _ J UST IF Y _ L AS T L I N E _ L E F T
Par ag raph Ju s t i f i c at i on. F U L L _ J UST IF Y _ L AS T L I N E _ R IG H T
Par ag raph Ju s t i f i c at i on. F U L L _ J UST IF Y _ L AS T L I N E _ C E N T E R
Par ag raph Ju s t i f i c at i on. F U L L _ J UST IF Y _ L AS T L I N E _ F U L L

TextDocument pointText attribute
te xtD oc um ent .p oi nt Te xt
Description

True if a text layer is a layer of point (unbounded) text; otherwise false.
Type

Boolean; read-only.

TextDocument resetCharStyle() method
te xtD oc um ent .re s e t C h ar St y l e ( )
Description

Restores the default text character characteristics in the Character panel.
Parameters

None.

185

After Effects scripting reference

TextDocument object

186

Returns

Nothing.

TextDocument resetParagraphStyle() method
te xtD oc um ent .re s e t Par ag r aph St y l e ( )
Description

Restores the default text paragraph characteristics in the Paragraph panel.
Parameters

None.
Returns

Nothing.

TextDocument strokeColor attribute
te xtD oc um ent .st roke C ol or
Description

The text layer’s stroke color, as an array of [r, g, b] floating-point values. For example, in an 8-bpc project, a
red value of 255 would be 1.0, and in a 32-bpc project, an overbright blue value can be something like 3.2.
NOTE: If the text layer has different stroke color settings for each character, this attribute returns the setting for
the first character. Also, if you change the value, it resets all characters in the text layer to the specified setting.
Type

Array [r, g, b] of floating-point values; read/write.

TextDocument strokeOverFill attribute
te xtD oc um ent .st roke O ve r Fi l l
Description

Indicates the rendering order for the fill and stroke of a text layer. When true, the stroke appears over the fill.
NOTE: If the text layer has different fill/stroke rendering order settings for each character, this attribute returns
the setting for the first character. Also, if you change the value, it resets all characters in the text layer to the
specified setting.
Type

Boolean; read/write.

TextDocument strokeWidth attribute
te xtD oc um ent .st roke Wi dt h
Description

The text layer’s stroke thickness in pixels.

186

After Effects scripting reference

TextDocument object

187

NOTE: If the text layer has different stroke width settings for each character, this attribute returns the setting for
the first character. Also, if you change the value, it resets all characters in the text layer to the specified setting.
Type

Floating-point value (0 to 1000, inclusive); read/write.

TextDocument text attribute
te xtD oc um ent .t e xt
Description

The text value for the text layer’s Source Text property.
Type

String; read/write.

TextDocument tracking attribute
te x t D o c u me nt . t r ack i ng
Description

The text layer’s spacing between characters.
NOTE: If the text layer has different tracking settings for each character, this attribute returns the setting for the
first character. Also, if you change the value, it resets all characters in the text layer to the specified setting.
Type

Floating-point value; read/write.

187

After Effects scripting reference

TextLayer object

188

TextLayer object
app. proj e c t . ite m ( i n d e x ) . l aye r ( i nd e x )
Description

The TextLayer object represents a text layer within a composition. Create it using the LayerCollection object’s
a d dTe x t method; see “LayerCollection addText() method” on page 98. It can be accessed in an item’s layer
collection either by index number or by a name string.
• TextLayer is a subclass of AVLayer, which is a subclass of Layer. All methods and attributes of AVLayer and

Layer are available when working with TextLayer. See “Layer object” on page 86 and “AVLayer object” on
page 38.
AE Properties

TextLayer defines no additional attributes, but has the following AE properties and property groups, in
addition to those inherited from AVLayer:
Te xt
S ou rc e Te xt
Pat h O pt i ons
Pat h
R e ve rs e Pat h
Pe r p e nd i c u l ar To Pat h
Forc e A l i g n m e nt
Fi rst Marg i n
L a st Marg i n
More O pt i ons
Anchor Poi nt Groupi ng
Groupi ng A lign ment
Fi ll & St roke
Inte r- C har a c te r Bl e ndi ng
Anim ators
Unused Properties and Attributes

The Ti me R e m ap and Mot i on Tr a cke rs properties, inherited from AVLayer, are not applicable to text layers,
and their related AVLayer attributes are not used:
canS etTi meRemapEnabled
t i meRemapEnabl ed
t r ack Matte Ty p e
isTrackMatte
ha sTr a ckMatte

188

After Effects scripting reference

Viewer object

189

Viewer object
app. a c t ive Vi e we r
Description

The Viewer object represents a Composition, Layer, or Footage panel.
Example

This maximizes the active viewer panel, and displays its type if it contains a composition:
v ar a c t ive Vi e we r = app. a c t ive Vi e we r ;
a c t ive Vi e wer. m a x i m i z e d = t r u e ;
i f ( a c t ive Vi e we r.t yp e = = Vi e we r Typ e. V IEW E R _ C OM P O SIT ION )
a l e r t (" C omp osit i on p ane l i s a c t ive. " );
Attributes
Attribute

Reference

Description

t yp e

“Viewer type attribute” on page 190

The type of content in the viewer.

a c t ive

“Viewer active attribute” on page 189

When true, the viewer is focused.

maxim i ze d

“Viewer maximized attribute” on page 189

When true, the viewer is at its maximized size.

Method

Reference

Description

s e t Ac t ive ()

“Viewer setActive() method” on page 190

Moves the viewer to front and places focus on it.

Methods

Viewer active attribute
v ie we r.a c t i ve
Description

When true, indicates if the viewer panel is focused, and thereby frontmost.
Type

Boolean; read-only.

Viewer maximized attribute
v ie we r.ma x i m i z e d
Description

When true, indicates if the viewer panel is at its maximized size.
Type

Boolean; read/write.

189

After Effects scripting reference

Viewer object

190

Viewer setActive() method
v ie we r.s e t Ac t ive ()
Description

Moves the viewer panel to the front and places focus on it, making it active. Calling this method will set the
viewer’s a c t ive attribute to true.
Parameters

None.
Returns

Boolean indicating if the viewer panel was made active.

Viewer type attribute
v ie we r.t yp e
Description

The content in the viewer panel.
Type

A Vi e we rTy p e enumerated value; read-only. One of:
Vi e we r Typ e. V IEW E R _ C OM PO SIT ION
Vi e we r Typ e. V IEW E R _ L AY E R
Vi e we r Typ e. V IEW E R _ F O OTAG E

190

Examples

This section describes some of the sample scripts available from the File > Scripts menu, giving an overview of
what they do and a description of how they work.
This set of examples is by no means exhaustive, but it does demonstrate some of scripting’s more complex
features in action. It also shows some typical programming constructions from JavaScript that apply to
scripting.
For more examples from Adobe and from other After Effects users, visit Adobe Exchange at http://
www.adobe.com/go/exchange/, and choose the Scripts category in the Adobe After Effects section.

New render locations
This script, C hange R e nd e r L o c at i ons. jsx , allows the user to select queued items in the render queue and
assign a new render destination for them.
This script does the following:
• Prompts the user for a new folder to use as a render destination.
• Checks that the user entered a new location (and didn’t cancel), then creates a loop for each selected render

queue item, and for each output module in it.
• If an item is queued, gives the current render location a new name and location, and displays an alert stating

the new file path.

Smart import
This script, Smar t Imp or t .j sx , allows the user to import the full, nested contents of a folder just by selecting it.
It attempts to detect whether each item is a still, moving footage, or an image sequence. The user still has to
make other choices in dialog boxes, such as which layer of a multi-layer image (such as a PSD file) to import.
This script does the following:
• Prompts the user for a folder whose contents are to be imported, and checks that the user chooses a folder

rather than cancelling.
• Defines a function, pro c e ss Fol d e r () , to import each of the files in the chosen folder, which uses several

helper functions.
• Defines a helper function, te st For S e qu e nc e () , to test whether a given file is part of a sequence. This uses

regular expressions, which are a special type of JavaScript designed to reduce the number of steps required
to evaluate a string.
The first one tests for the presence of sequential numbers anywhere in the file name, followed by another
making certain that the sequential files aren’t of a type that can’t be imported as a sequence (moving image
files). The function then checks adjacent files to see if a sequence exists, stopping after we’ve evaluated ten
files to save processing time.

191

Examples

Render and e-mail

192

If no match is found for a number string, assumes there is no image sequence and checks for an array
consisting of the matched string and its location within the file name.
If all files are part of a numbered sequence, assumes a sequence and returns the first file of that sequence.
• Defines a helper function to pop up error dialog boxes if there is a problem with any file we are attempting

to import.
• Defines a helper function to actually import any image sequence discovered using te st For S e qu e nce ( ) .

There is an option for forcing alphabetical order in sequences, which is commented out in the script as
written. If you want to force alphabetical order, uncomment the line i mp or t O pt i ons .force A lp h ab e t i c a l =
true.
• Calls the main function, pro c essFol der() .

Render and e-mail
This script, Render and E mai l. js x , renders all queued items in an open project and sends an e-mail report to
indicate when the render has completed. It makes use of two other scripts that follow, e m ai l _ m e t h o ds . j s x (to
send the e-mail properly) and C hange E mai l S e tt i ng s. js x (which establishes the sender, recipient, and e-mail
server); these two scripts are in the (support) subfolder of the Scripts folder on disk.
This script does the following:
• Establishes conditions under which the script will run. An open project with at least one item queued is

required.
• Checks whether e-mail settings are already saved in the preferences. If not, run the C hange E mai l
S e tt i ng s.js x script (via File > Scripts > Run Script File), which prompts the user for the mail gateway and

sender and recipient addresses. (If there are saved settings that you need to change, you can always run the
script to make new settings that overwrite the existing ones.)
• Render the items in the render queue.
• When rendering is complete, creates a text string for the e-mail message that contains the start time of the

render, the render time of each item in the queue, and the total render time.
• E-mails the message, using the settings (such as the server) from the e m ai l _ m e t h o ds . j s x script
• Displays an error if for any reason it is unable to send the mail.

A helper script, e m ai l _ m e t ho ds .j s x , creates an e-mail object, using the ExtendScript Socket object. For details
of that utility, see the Creative Suite 6 JavaScript Tools Guide.
Another helper script, emai l_s e tup. js x , prompts the user for the server name, e-mail sender, and e-mail
recipient that are saved as Settings. You can run this script as standalone any time you want to change the
settings. This script is a good example of how to create settings that are saved in preferences for the sole use of
scripting (as opposed to altering existing After Effects preferences settings).

Convert selected properties to markers
This script, C onve r t S el e c t e d Prop e r t i e s t o Marke rs .j s x , goes through the properties in each layer that are
currently selected in the Timeline panel, and converts the value of each property at each frame time to a Flash
Video event cue point in a marker.

192

Examples

Convert selected properties to markers

193

This script adds a layer-time marker on the layer at the same time as each keyframe for each selected property.
Each marker is associated with an event-type Flash Video cue point, and the cue point is given a parameter
whose name is the name of the property and whose value is the property’s value at that time. If the selected
property has an expression, a marker is created for each frame, with the values sampled at each frame.
Note: This script does not convert properties that have complex value types, such as the Path property for a paint
stroke, the Curves property of a Curve effect, or a gradient property.
When you render the composition as Flash video, all markers that contain cue-point data are converted to
Flash Video cue points.

193



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Language                        : en
XMP Toolkit                     : Adobe XMP Core 5.2-c001 63.139439, 2010/10/03-12:08:50
Copyright                       : 2012 Adobe Systems Inc.
Producer                        : Acrobat Distiller 10.1.3 (Windows)
Format                          : application/pdf
Title                           : After Effects CS6 Scripting Guide
Creator                         : Adobe System Inc.
Description                     : scripting for After Effects
Create Date                     : 2012:06:20 09:25:21Z
Creator Tool                    : FrameMaker 10.0
Modify Date                     : 2012:06:20 09:27:58-07:00
Metadata Date                   : 2012:06:20 09:27:58-07:00
Document ID                     : uuid:c16b5299-158b-4f7f-a1e9-f815677d1768
Instance ID                     : uuid:f2dcf023-fab4-4b5c-bc3e-a41211460201
Page Mode                       : UseOutlines
Page Count                      : 193
Author                          : Adobe System Inc.
Keywords                        : JavaScript, ExtendScript, scripting
Subject                         : scripting for After Effects
EXIF Metadata provided by EXIF.tools

Navigation menu