Text¶
Part of the text skill: these tools appear once it is loaded — by ae_enable_skill with text, or by find_tool when a search returns one of them.
ae_text_info ¶
Everything about a text layer: the document with its text, font, size, colours, character and paragraph settings, whether it is point or box text, its paragraphs and composed lines as character ranges, the source text keyframes, every animator with its properties and selectors (with the paths the keyframe tools take), and the path options when the text runs along a mask.
read-only · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"layer"
]
}
ae_text_style ¶
Style a text layer: the text itself, the font (by PostScript name, or by family and style as ae_text_fonts lists them), size, fill and stroke, justification, tracking, kerning, leading, baseline shift, faux bold and italic, caps, horizontal and vertical scale, paragraph margins and indents, box size, and the axes of a variable font. With start and end, paragraph or line only those characters change. The answer is the document as it stands afterwards; ae_text_layout has the paragraph direction, composer and box settings.
only adds · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
time |
number? |
— | null |
Style the document at this time, as a keyframe when the source text is animated. |
start |
integer? |
— | null |
First character the style applies to, 0 first; the whole text when start and end are empty. |
end |
integer? |
— | null |
Character after the last one the style applies to. |
paragraph |
integer? |
— | null |
Change one paragraph, 1 first; ae_text_info lists them. |
paragraphEnd |
integer? |
— | null |
The last paragraph the change applies to, with paragraph. |
line |
integer? |
— | null |
Style one composed line, as the text wraps, 1 first; ae_text_info lists them. |
lineEnd |
integer? |
— | null |
The last composed line the style applies to, with line. |
text |
string? |
— | null |
The new text. |
font |
string? |
— | null |
Font by PostScript name, as ae_text_fonts gives it. |
fontFamily |
string? |
— | null |
Font family name; pair with fontStyle. |
fontStyle |
string? |
— | null |
Font style within the family, Regular when empty. |
fontAxes |
any |
— | null |
For a variable font: the axis values as an object by tag, such as {"wght": 700, "wdth": 90}; axes left out keep the font's defaults. ae_text_fonts with variable lists the axes and their ranges. |
fontSize |
number? |
— | null |
Font size in pixels. |
fillColor |
any |
— | null |
[r, g, b] with components 0 to 1, or #rrggbb. |
strokeColor |
any |
— | null |
[r, g, b] with components 0 to 1, or #rrggbb. |
strokeWidth |
number? |
— | null |
Stroke width in pixels. |
strokeOverFill |
boolean? |
— | null |
Draw the stroke over the fill rather than under it. |
applyFill |
boolean? |
— | null |
Fill the characters at all. |
applyStroke |
boolean? |
— | null |
Stroke the characters at all. |
justification |
string? |
— | null |
LEFT_JUSTIFY, CENTER_JUSTIFY, RIGHT_JUSTIFY, FULL_JUSTIFY_LASTLINE_LEFT, FULL_JUSTIFY_LASTLINE_CENTER, FULL_JUSTIFY_LASTLINE_RIGHT or FULL_JUSTIFY_LASTLINE_FULL. |
tracking |
number? |
— | null |
Tracking in thousandths of an em. |
leading |
number? |
— | null |
Leading in pixels; switches auto leading off. |
autoLeading |
boolean? |
— | null |
Let the leading follow the font size. |
baselineShift |
number? |
— | null |
Baseline shift in pixels. |
fauxBold |
boolean? |
— | null |
Faux bold. |
fauxItalic |
boolean? |
— | null |
Faux italic. |
allCaps |
boolean? |
— | null |
All caps. |
smallCaps |
boolean? |
— | null |
Small caps. |
superscript |
boolean? |
— | null |
Superscript. |
subscript |
boolean? |
— | null |
Subscript. |
horizontalScale |
number? |
— | null |
Horizontal scale in percent. |
verticalScale |
number? |
— | null |
Vertical scale in percent. |
tsume |
number? |
— | null |
Tsume, the proportional spacing of CJK characters, in percent. |
ligature |
boolean? |
— | null |
Use ligatures. |
firstLineIndent |
number? |
— | null |
First line indent in pixels. |
leftMargin |
number? |
— | null |
Left margin in pixels. |
rightMargin |
number? |
— | null |
Right margin in pixels. |
spaceBefore |
number? |
— | null |
Space before each paragraph in pixels. |
spaceAfter |
number? |
— | null |
Space after each paragraph in pixels. |
boxSize |
array? |
— | null |
For box text: [width, height] of the box in pixels. |
kerning |
number? |
— | null |
Manual kerning between the character and the next, in thousandths of an em. |
noBreak |
boolean? |
— | null |
Keep the characters from breaking across lines. |
autoKern |
string? |
— | null |
Automatic kerning: METRIC_KERN, OPTICAL_KERN or NO_AUTO_KERN. |
caps |
string? |
— | null |
Caps: FONT_NORMAL_CAPS, FONT_SMALL_CAPS, FONT_ALL_CAPS or FONT_ALL_SMALL_CAPS. |
baselineOption |
string? |
— | null |
Baseline: FONT_NORMAL_BASELINE, FONT_FAUXED_SUPERSCRIPT or FONT_FAUXED_SUBSCRIPT. |
lineJoin |
string? |
— | null |
Stroke line join: LINE_JOIN_MITER, LINE_JOIN_ROUND or LINE_JOIN_BEVEL. |
baselineDirection |
string? |
— | null |
In vertical text: BASELINE_WITH_STREAM, BASELINE_VERTICAL_ROTATED or BASELINE_VERTICAL_CROSS_STREAM. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
},
"time": {
"description": "Style the document at this time, as a keyframe when the source text is animated.",
"type": [
"number",
"null"
],
"default": null
},
"start": {
"description": "First character the style applies to, 0 first; the whole text when start and end are empty.",
"type": [
"integer",
"null"
],
"default": null
},
"end": {
"description": "Character after the last one the style applies to.",
"type": [
"integer",
"null"
],
"default": null
},
"paragraph": {
"description": "Change one paragraph, 1 first; ae_text_info lists them.",
"type": [
"integer",
"null"
],
"default": null
},
"paragraphEnd": {
"description": "The last paragraph the change applies to, with paragraph.",
"type": [
"integer",
"null"
],
"default": null
},
"line": {
"description": "Style one composed line, as the text wraps, 1 first; ae_text_info lists them.",
"type": [
"integer",
"null"
],
"default": null
},
"lineEnd": {
"description": "The last composed line the style applies to, with line.",
"type": [
"integer",
"null"
],
"default": null
},
"text": {
"description": "The new text.",
"type": [
"string",
"null"
],
"default": null
},
"font": {
"description": "Font by PostScript name, as ae_text_fonts gives it.",
"type": [
"string",
"null"
],
"default": null
},
"fontFamily": {
"description": "Font family name; pair with fontStyle.",
"type": [
"string",
"null"
],
"default": null
},
"fontStyle": {
"description": "Font style within the family, Regular when empty.",
"type": [
"string",
"null"
],
"default": null
},
"fontAxes": {
"description": "For a variable font: the axis values as an object by tag, such as {\u0022wght\u0022: 700, \u0022wdth\u0022: 90}; axes left out keep the font\u0027s defaults. ae_text_fonts with variable lists the axes and their ranges.",
"default": null
},
"fontSize": {
"description": "Font size in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"fillColor": {
"description": "[r, g, b] with components 0 to 1, or #rrggbb.",
"default": null
},
"strokeColor": {
"description": "[r, g, b] with components 0 to 1, or #rrggbb.",
"default": null
},
"strokeWidth": {
"description": "Stroke width in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"strokeOverFill": {
"description": "Draw the stroke over the fill rather than under it.",
"type": [
"boolean",
"null"
],
"default": null
},
"applyFill": {
"description": "Fill the characters at all.",
"type": [
"boolean",
"null"
],
"default": null
},
"applyStroke": {
"description": "Stroke the characters at all.",
"type": [
"boolean",
"null"
],
"default": null
},
"justification": {
"description": "LEFT_JUSTIFY, CENTER_JUSTIFY, RIGHT_JUSTIFY, FULL_JUSTIFY_LASTLINE_LEFT, FULL_JUSTIFY_LASTLINE_CENTER, FULL_JUSTIFY_LASTLINE_RIGHT or FULL_JUSTIFY_LASTLINE_FULL.",
"type": [
"string",
"null"
],
"default": null
},
"tracking": {
"description": "Tracking in thousandths of an em.",
"type": [
"number",
"null"
],
"default": null
},
"leading": {
"description": "Leading in pixels; switches auto leading off.",
"type": [
"number",
"null"
],
"default": null
},
"autoLeading": {
"description": "Let the leading follow the font size.",
"type": [
"boolean",
"null"
],
"default": null
},
"baselineShift": {
"description": "Baseline shift in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"fauxBold": {
"description": "Faux bold.",
"type": [
"boolean",
"null"
],
"default": null
},
"fauxItalic": {
"description": "Faux italic.",
"type": [
"boolean",
"null"
],
"default": null
},
"allCaps": {
"description": "All caps.",
"type": [
"boolean",
"null"
],
"default": null
},
"smallCaps": {
"description": "Small caps.",
"type": [
"boolean",
"null"
],
"default": null
},
"superscript": {
"description": "Superscript.",
"type": [
"boolean",
"null"
],
"default": null
},
"subscript": {
"description": "Subscript.",
"type": [
"boolean",
"null"
],
"default": null
},
"horizontalScale": {
"description": "Horizontal scale in percent.",
"type": [
"number",
"null"
],
"default": null
},
"verticalScale": {
"description": "Vertical scale in percent.",
"type": [
"number",
"null"
],
"default": null
},
"tsume": {
"description": "Tsume, the proportional spacing of CJK characters, in percent.",
"type": [
"number",
"null"
],
"default": null
},
"ligature": {
"description": "Use ligatures.",
"type": [
"boolean",
"null"
],
"default": null
},
"firstLineIndent": {
"description": "First line indent in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"leftMargin": {
"description": "Left margin in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"rightMargin": {
"description": "Right margin in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"spaceBefore": {
"description": "Space before each paragraph in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"spaceAfter": {
"description": "Space after each paragraph in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"boxSize": {
"description": "For box text: [width, height] of the box in pixels.",
"type": [
"array",
"null"
],
"items": {
"type": "number"
},
"default": null
},
"kerning": {
"description": "Manual kerning between the character and the next, in thousandths of an em.",
"type": [
"number",
"null"
],
"default": null
},
"noBreak": {
"description": "Keep the characters from breaking across lines.",
"type": [
"boolean",
"null"
],
"default": null
},
"autoKern": {
"description": "Automatic kerning: METRIC_KERN, OPTICAL_KERN or NO_AUTO_KERN.",
"type": [
"string",
"null"
],
"default": null
},
"caps": {
"description": "Caps: FONT_NORMAL_CAPS, FONT_SMALL_CAPS, FONT_ALL_CAPS or FONT_ALL_SMALL_CAPS.",
"type": [
"string",
"null"
],
"default": null
},
"baselineOption": {
"description": "Baseline: FONT_NORMAL_BASELINE, FONT_FAUXED_SUPERSCRIPT or FONT_FAUXED_SUBSCRIPT.",
"type": [
"string",
"null"
],
"default": null
},
"lineJoin": {
"description": "Stroke line join: LINE_JOIN_MITER, LINE_JOIN_ROUND or LINE_JOIN_BEVEL.",
"type": [
"string",
"null"
],
"default": null
},
"baselineDirection": {
"description": "In vertical text: BASELINE_WITH_STREAM, BASELINE_VERTICAL_ROTATED or BASELINE_VERTICAL_CROSS_STREAM.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"layer"
]
}
ae_text_layout ¶
Paragraph and box settings of a text layer: direction, leading type, composer engine, digit set, hyphenation, hanging punctuation, start and end indents, line orientation, and for box text the auto-fit policy, vertical alignment, first baseline and inset; or reset the character or paragraph styles. With paragraph only that paragraph changes.
only adds · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
time |
number? |
— | null |
Change the document at this time, as a keyframe when the source text is animated. |
paragraph |
integer? |
— | null |
Change one paragraph, 1 first; ae_text_info lists them. |
paragraphEnd |
integer? |
— | null |
The last paragraph the change applies to, with paragraph. |
direction |
string? |
— | null |
DIRECTION_LEFT_TO_RIGHT or DIRECTION_RIGHT_TO_LEFT. |
leadingType |
string? |
— | null |
ROMAN_LEADING_TYPE or JAPANESE_LEADING_TYPE. |
composer |
string? |
— | null |
LATIN_CJK_ENGINE or UNIVERSAL_TYPE_ENGINE, the latter for Arabic, Hebrew and Indic scripts. |
everyLineComposer |
boolean? |
— | null |
Compose every line of a paragraph together for evener breaks. |
digitSet |
string? |
— | null |
DEFAULT_DIGITS, ARABIC_DIGITS, ARABIC_DIGITS_RTL, HINDI_DIGITS or FARSI_DIGITS. |
autoHyphenate |
boolean? |
— | null |
Hyphenate automatically. |
hangingRoman |
boolean? |
— | null |
Hang Roman punctuation outside the margins. |
startIndent |
number? |
— | null |
Indent from the start of the line in pixels. |
endIndent |
number? |
— | null |
Indent from the end of the line in pixels. |
lineOrientation |
string? |
— | null |
HORIZONTAL, VERTICAL_RIGHT_TO_LEFT or VERTICAL_LEFT_TO_RIGHT. |
boxAutoFit |
string? |
— | null |
For box text, how the box grows with the text: NONE, HEIGHT_CURSOR, HEIGHT_PRECISE_BOUNDS or HEIGHT_BASELINE. |
boxVerticalAlignment |
string? |
— | null |
For box text: TOP, CENTER, BOTTOM or JUSTIFY. |
boxFirstBaseline |
string? |
— | null |
For box text, where the first baseline sits: ASCENT, CAP_HEIGHT, LEADING, X_HEIGHT, EM_BOX, LEGACY_METRIC, TYPO_ASCENT, MINIMUM_VALUE_ROMAN or MINIMUM_VALUE_ASIAN. |
boxFirstBaselineMinimum |
number? |
— | null |
For box text: the least distance of the first baseline from the top, in pixels. |
boxInset |
number? |
— | null |
For box text: inset of the text from the box edges, in pixels. |
reset |
string? |
— | null |
Reset the styles to the defaults first: character, paragraph or both. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
},
"time": {
"description": "Change the document at this time, as a keyframe when the source text is animated.",
"type": [
"number",
"null"
],
"default": null
},
"paragraph": {
"description": "Change one paragraph, 1 first; ae_text_info lists them.",
"type": [
"integer",
"null"
],
"default": null
},
"paragraphEnd": {
"description": "The last paragraph the change applies to, with paragraph.",
"type": [
"integer",
"null"
],
"default": null
},
"direction": {
"description": "DIRECTION_LEFT_TO_RIGHT or DIRECTION_RIGHT_TO_LEFT.",
"type": [
"string",
"null"
],
"default": null
},
"leadingType": {
"description": "ROMAN_LEADING_TYPE or JAPANESE_LEADING_TYPE.",
"type": [
"string",
"null"
],
"default": null
},
"composer": {
"description": "LATIN_CJK_ENGINE or UNIVERSAL_TYPE_ENGINE, the latter for Arabic, Hebrew and Indic scripts.",
"type": [
"string",
"null"
],
"default": null
},
"everyLineComposer": {
"description": "Compose every line of a paragraph together for evener breaks.",
"type": [
"boolean",
"null"
],
"default": null
},
"digitSet": {
"description": "DEFAULT_DIGITS, ARABIC_DIGITS, ARABIC_DIGITS_RTL, HINDI_DIGITS or FARSI_DIGITS.",
"type": [
"string",
"null"
],
"default": null
},
"autoHyphenate": {
"description": "Hyphenate automatically.",
"type": [
"boolean",
"null"
],
"default": null
},
"hangingRoman": {
"description": "Hang Roman punctuation outside the margins.",
"type": [
"boolean",
"null"
],
"default": null
},
"startIndent": {
"description": "Indent from the start of the line in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"endIndent": {
"description": "Indent from the end of the line in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"lineOrientation": {
"description": "HORIZONTAL, VERTICAL_RIGHT_TO_LEFT or VERTICAL_LEFT_TO_RIGHT.",
"type": [
"string",
"null"
],
"default": null
},
"boxAutoFit": {
"description": "For box text, how the box grows with the text: NONE, HEIGHT_CURSOR, HEIGHT_PRECISE_BOUNDS or HEIGHT_BASELINE.",
"type": [
"string",
"null"
],
"default": null
},
"boxVerticalAlignment": {
"description": "For box text: TOP, CENTER, BOTTOM or JUSTIFY.",
"type": [
"string",
"null"
],
"default": null
},
"boxFirstBaseline": {
"description": "For box text, where the first baseline sits: ASCENT, CAP_HEIGHT, LEADING, X_HEIGHT, EM_BOX, LEGACY_METRIC, TYPO_ASCENT, MINIMUM_VALUE_ROMAN or MINIMUM_VALUE_ASIAN.",
"type": [
"string",
"null"
],
"default": null
},
"boxFirstBaselineMinimum": {
"description": "For box text: the least distance of the first baseline from the top, in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"boxInset": {
"description": "For box text: inset of the text from the box edges, in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"reset": {
"description": "Reset the styles to the defaults first: character, paragraph or both.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"layer"
]
}
ae_text_fonts ¶
The fonts installed on this machine as After Effects sees them: family, style and PostScript name, with a query to narrow the list, or only one font by PostScript name, family or id, only the missing ones, only variable fonts with their axes, only fonts for a writing script or with glyphs for a text. Use the names it gives in ae_text_style; a font the project asks for but the machine lacks is marked substituted.
read-only · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string? |
— | null |
Keep only fonts whose family, style or PostScript name contains this, case-insensitive. |
limit |
integer |
— | 50 |
Most fonts to list; 50 by default. |
postscriptName |
string? |
— | null |
Only the font with this PostScript name. |
id |
integer? |
— | null |
Only the font with this id, as detail gives it. |
family |
string? |
— | null |
Only this family, with face to pick one style. |
face |
string? |
— | null |
The style within family, such as Bold. |
missing |
boolean |
— | false |
Only the fonts the project asks for and the machine lacks or substitutes. |
variable |
boolean |
— | false |
Only variable fonts, with their axes. |
script |
string? |
— | null |
Only fonts that write this script: a CTScript name such as CT_CYRILLIC_SCRIPT, CT_ARABIC_SCRIPT or CT_JAPANESE_SCRIPT. |
glyphsFor |
string? |
— | null |
Only fonts with glyphs for every character of this text; the answer also says which scripts the text uses and the default font for each. |
detail |
boolean |
— | false |
Every detail per font: id, full name, file, version, type and writing scripts. |
JSON Schema
{
"type": "object",
"properties": {
"query": {
"description": "Keep only fonts whose family, style or PostScript name contains this, case-insensitive.",
"type": [
"string",
"null"
],
"default": null
},
"limit": {
"description": "Most fonts to list; 50 by default.",
"type": "integer",
"default": 50
},
"postscriptName": {
"description": "Only the font with this PostScript name.",
"type": [
"string",
"null"
],
"default": null
},
"id": {
"description": "Only the font with this id, as detail gives it.",
"type": [
"integer",
"null"
],
"default": null
},
"family": {
"description": "Only this family, with face to pick one style.",
"type": [
"string",
"null"
],
"default": null
},
"face": {
"description": "The style within family, such as Bold.",
"type": [
"string",
"null"
],
"default": null
},
"missing": {
"description": "Only the fonts the project asks for and the machine lacks or substitutes.",
"type": "boolean",
"default": false
},
"variable": {
"description": "Only variable fonts, with their axes.",
"type": "boolean",
"default": false
},
"script": {
"description": "Only fonts that write this script: a CTScript name such as CT_CYRILLIC_SCRIPT, CT_ARABIC_SCRIPT or CT_JAPANESE_SCRIPT.",
"type": [
"string",
"null"
],
"default": null
},
"glyphsFor": {
"description": "Only fonts with glyphs for every character of this text; the answer also says which scripts the text uses and the default font for each.",
"type": [
"string",
"null"
],
"default": null
},
"detail": {
"description": "Every detail per font: id, full name, file, version, type and writing scripts.",
"type": "boolean",
"default": false
}
}
}
ae_add_text_animator ¶
Add a text animator to a text layer: the properties it animates (opacity, position, scale, tracking, fill colour and the rest, with their values) and a selector that says which characters, words or lines it reaches. Keyframe the selector's start, end or offset with ae_set_keyframes on the paths the answer gives, and the characters animate one after another.
only adds · every call adds · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
name |
string? |
— | null |
Name of the animator. |
properties |
object? |
— | null |
The properties the animator carries and their values, as an object: anchor_point, position, scale, skew, skew_axis, rotation, x_rotation, y_rotation, opacity, fill_color, fill_hue, fill_saturation, fill_brightness, fill_opacity, stroke_color, stroke_hue, stroke_saturation, stroke_brightness, stroke_opacity, stroke_width, tracking, tracking_type, line_anchor, line_spacing, character_offset, character_value, blur; axis_<tag> such as axis_wght animates an axis of the layer's variable font; a match name works too, and null adds the property at its default. |
selector |
object? |
— | null |
The selector as an object: type (range, the default; wiggly; expression), name, index to address an existing one; for range: start, end, offset (percent, or characters when units is index), units (percent, index), based_on (characters, characters_excluding_spaces, words, lines), mode (add, subtract, intersect, min, max, difference), amount, shape (square, ramp_up, ramp_down, triangle, round, smooth), smoothness, ease_high, ease_low, randomize, seed; for wiggly: max, min, frequency, correlation, temporal_phase, spatial_phase, lock_dimensions, seed; for expression: amount as the expression text. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
},
"name": {
"description": "Name of the animator.",
"type": [
"string",
"null"
],
"default": null
},
"properties": {
"description": "The properties the animator carries and their values, as an object: anchor_point, position, scale, skew, skew_axis, rotation, x_rotation, y_rotation, opacity, fill_color, fill_hue, fill_saturation, fill_brightness, fill_opacity, stroke_color, stroke_hue, stroke_saturation, stroke_brightness, stroke_opacity, stroke_width, tracking, tracking_type, line_anchor, line_spacing, character_offset, character_value, blur; axis_\u003Ctag\u003E such as axis_wght animates an axis of the layer\u0027s variable font; a match name works too, and null adds the property at its default.",
"type": [
"object",
"null"
],
"default": null
},
"selector": {
"description": "The selector as an object: type (range, the default; wiggly; expression), name, index to address an existing one; for range: start, end, offset (percent, or characters when units is index), units (percent, index), based_on (characters, characters_excluding_spaces, words, lines), mode (add, subtract, intersect, min, max, difference), amount, shape (square, ramp_up, ramp_down, triangle, round, smooth), smoothness, ease_high, ease_low, randomize, seed; for wiggly: max, min, frequency, correlation, temporal_phase, spatial_phase, lock_dimensions, seed; for expression: amount as the expression text.",
"type": [
"object",
"null"
],
"default": null
}
},
"required": [
"layer"
]
}
ae_update_text_animator ¶
Change a text animator: rename, switch on or off, add or set properties, change its selector or add another one. Values on the animator's properties are set as they stand; keyframe them with the animation tools on the paths ae_text_info gives.
only adds · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
animator |
string |
yes | — | The animator by its name or its index in the layer's Animators, 1 first. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
name |
string? |
— | null |
New name. |
enabled |
boolean? |
— | null |
Switch the animator on or off. |
properties |
object? |
— | null |
The properties the animator carries and their values, as an object: anchor_point, position, scale, skew, skew_axis, rotation, x_rotation, y_rotation, opacity, fill_color, fill_hue, fill_saturation, fill_brightness, fill_opacity, stroke_color, stroke_hue, stroke_saturation, stroke_brightness, stroke_opacity, stroke_width, tracking, tracking_type, line_anchor, line_spacing, character_offset, character_value, blur; axis_<tag> such as axis_wght animates an axis of the layer's variable font; a match name works too, and null adds the property at its default. |
selector |
object? |
— | null |
The selector as an object: type (range, the default; wiggly; expression), name, index to address an existing one; for range: start, end, offset (percent, or characters when units is index), units (percent, index), based_on (characters, characters_excluding_spaces, words, lines), mode (add, subtract, intersect, min, max, difference), amount, shape (square, ramp_up, ramp_down, triangle, round, smooth), smoothness, ease_high, ease_low, randomize, seed; for wiggly: max, min, frequency, correlation, temporal_phase, spatial_phase, lock_dimensions, seed; for expression: amount as the expression text. |
addSelector |
boolean |
— | false |
Add the selector as a new one instead of changing the existing selector of its type. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"animator": {
"description": "The animator by its name or its index in the layer\u0027s Animators, 1 first.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
},
"name": {
"description": "New name.",
"type": [
"string",
"null"
],
"default": null
},
"enabled": {
"description": "Switch the animator on or off.",
"type": [
"boolean",
"null"
],
"default": null
},
"properties": {
"description": "The properties the animator carries and their values, as an object: anchor_point, position, scale, skew, skew_axis, rotation, x_rotation, y_rotation, opacity, fill_color, fill_hue, fill_saturation, fill_brightness, fill_opacity, stroke_color, stroke_hue, stroke_saturation, stroke_brightness, stroke_opacity, stroke_width, tracking, tracking_type, line_anchor, line_spacing, character_offset, character_value, blur; axis_\u003Ctag\u003E such as axis_wght animates an axis of the layer\u0027s variable font; a match name works too, and null adds the property at its default.",
"type": [
"object",
"null"
],
"default": null
},
"selector": {
"description": "The selector as an object: type (range, the default; wiggly; expression), name, index to address an existing one; for range: start, end, offset (percent, or characters when units is index), units (percent, index), based_on (characters, characters_excluding_spaces, words, lines), mode (add, subtract, intersect, min, max, difference), amount, shape (square, ramp_up, ramp_down, triangle, round, smooth), smoothness, ease_high, ease_low, randomize, seed; for wiggly: max, min, frequency, correlation, temporal_phase, spatial_phase, lock_dimensions, seed; for expression: amount as the expression text.",
"type": [
"object",
"null"
],
"default": null
},
"addSelector": {
"description": "Add the selector as a new one instead of changing the existing selector of its type.",
"type": "boolean",
"default": false
}
},
"required": [
"layer",
"animator"
]
}
ae_remove_text_animator ¶
Remove a text animator, or only one of its properties or selectors when one is named.
may overwrite or delete · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
animator |
string |
yes | — | The animator by its name or its index in the layer's Animators, 1 first. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
property |
string? |
— | null |
Remove only this property of the animator, by alias or match name. |
selector |
integer? |
— | null |
Remove only this selector of the animator, by index. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"animator": {
"description": "The animator by its name or its index in the layer\u0027s Animators, 1 first.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
},
"property": {
"description": "Remove only this property of the animator, by alias or match name.",
"type": [
"string",
"null"
],
"default": null
},
"selector": {
"description": "Remove only this selector of the animator, by index.",
"type": [
"integer",
"null"
],
"default": null
}
},
"required": [
"layer",
"animator"
]
}
ae_text_path ¶
Run the text of a layer along one of its masks, or take it off the path: which mask, reversed, perpendicular to the path, forced alignment, and the first and last margins. Draw the mask on the text layer first with ae_set_property on Masks.
only adds · repeat-safe · stays inside After Effects.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
layer |
string |
yes | — | The text layer by name or index. |
comp |
string? |
— | null |
The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project. |
mask |
string? |
— | null |
The mask on the layer the text follows, by name or index; the word none takes the text off its path. |
reverse |
boolean? |
— | null |
Run the text the other way along the path. |
perpendicular |
boolean? |
— | null |
Stand the characters perpendicular to the path. |
forceAlignment |
boolean? |
— | null |
Spread the text between the first and last margins. |
firstMargin |
number? |
— | null |
Where the text starts along the path, in pixels. |
lastMargin |
number? |
— | null |
Where the text ends along the path, in pixels. |
JSON Schema
{
"type": "object",
"properties": {
"layer": {
"description": "The text layer by name or index.",
"type": "string"
},
"comp": {
"description": "The composition by name or id; when empty, the active one, else the one worked on last, else the only one in the project.",
"type": [
"string",
"null"
],
"default": null
},
"mask": {
"description": "The mask on the layer the text follows, by name or index; the word none takes the text off its path.",
"type": [
"string",
"null"
],
"default": null
},
"reverse": {
"description": "Run the text the other way along the path.",
"type": [
"boolean",
"null"
],
"default": null
},
"perpendicular": {
"description": "Stand the characters perpendicular to the path.",
"type": [
"boolean",
"null"
],
"default": null
},
"forceAlignment": {
"description": "Spread the text between the first and last margins.",
"type": [
"boolean",
"null"
],
"default": null
},
"firstMargin": {
"description": "Where the text starts along the path, in pixels.",
"type": [
"number",
"null"
],
"default": null
},
"lastMargin": {
"description": "Where the text ends along the path, in pixels.",
"type": [
"number",
"null"
],
"default": null
}
},
"required": [
"layer"
]
}