major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
126 lines (101 loc) • 6.29 kB
Markdown
name: adobe-after-effects
description: "Create and update After Effects compositions, expressions, and render queues using ExtendScript and Essential Graphics workflows."
category: video-editing
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["after-effects", "extendscript", "expressions", "render-queue", "mograph", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# Adobe After Effects Motion Graphics AI Skill Guide (Claude)
## Overview & Engine Architecture
Adobe After Effects is a layer-based compositing and motion design tool organized around **Projects → Compositions → Layers**, with **expressions** (JavaScript-like), **effects**, **masks/shapes**, **3D cameras**, and the **Render Queue / Media Encoder** delivery path. Automation uses **ExtendScript (JSX)** against the AE DOM (`app.project`, `CompItem`, `AVLayer`). Claude operates as a Principal Motion Systems Engineer, specializing in **comp scaffolding**, **expression-driven rigs**, **batch render queue setup**, and **Essential Graphics template hygiene**.
### After Effects Composition & Scripting Stack
```
┌─────────────────────────────────────────────────────────────┐
│ After Effects Architecture │
│ │
│ Project Graph │
│ ├── FootageItem / FolderItem / CompItem │
│ ├── Layer types (AV, Shape, Text, Camera, Light, Null) │
│ └── Properties / Keyframes / Expressions │
│ │
│ Automation │
│ ├── ExtendScript DOM + JSON polyfills as needed │
│ ├── Expressions engine (time, value, thisComp, thisLayer) │
│ └── renderQueue items & output modules │
│ │
│ Delivery │
│ ├── Render Queue / AME │
│ ├── Essential Graphics (.mogrt) │
│ └── Dynamic Link with Premiere │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **Comp Spec First**: Define width, height, frame rate, and duration before creating layers.
2. **Expressions vs Keyframes**: Prefer expressions for procedural/linked motion; keyframes for intentional animation curves.
3. **Render Queue Automation**: Create `OutputModule` settings explicitly (format, path, post-render actions).
4. **Null / Parent Rigs**: Build controller nulls for reusable motion systems instead of hardcoding layer indices.
5. **Version Portability**: Avoid undocumented scripting quirks; test JSX against the studio's AE major version.
## Production ExtendScript: Build Lower-Third Comp + Queue Render
```javascript
// ==============================================================================
// After Effects ExtendScript: create a lower-third comp and add to render queue
// ==============================================================================
(function () {
app.beginUndoGroup("Create Lower Third");
var proj = app.project;
var comp = proj.items.addComp("LT_Hero", 1920, 1080, 1.0, 5.0, 30);
var solid = comp.layers.addSolid([0.05, 0.55, 0.9], "Bar", 640, 96, 1.0);
solid.position.setValue([420, 860]);
var textLayer = comp.layers.addText("Product Launch");
var textProp = textLayer.property("Source Text");
var textDoc = textProp.value;
textDoc.fontSize = 48;
textDoc.fillColor = [1, 1, 1];
textDoc.font = "Arial-BoldMT";
textProp.setValue(textDoc);
textLayer.position.setValue([420, 860]);
// Simple slide-in via expression on Position
solid.property("Position").expression =
"var t = time; var x = ease(t, 0, 0.6, -200, 420); [x, 860]";
var rq = app.project.renderQueue.items.add(comp);
var om = rq.outputModule(1);
// Apply a named template if present in the user's AE install:
try {
om.applyTemplate("H.264 - Match Render Settings - 15 Mbps");
} catch (e) {
// Fallback: leave default module; user picks preset
}
om.file = new File("~/Desktop/LT_Hero_Out.mp4");
app.endUndoGroup();
alert("Lower-third comp created and queued: " + comp.name);
})();
```
---
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Expression errors (yellow banner)** | Syntax / missing property path. | Open expression editor; use `thisComp.layer("Name")` carefully. |
| **Render queue template missing** | Output module template name not installed. | Catch applyTemplate errors; instruct user to pick local preset. |
| **Text font substitution** | Font not on machine. | Use licensed studio fonts; check Character panel font list. |
| **Dynamic Link stale frames** | Premiere/AE cache desync. | Refresh Dynamic Link / purge memory & disk cache. |
## Essential Expression Snippets
```javascript
// Smooth follow of another layer's position
var target = thisComp.layer("Controller");
ease(time, 0, 1, target.transform.position, target.transform.position)
// Better: use linear interpolation toward target each frame via loopOut or valueAtTime patterns
```
### Essential Paths
- **Scripts**: AE `Scripts` / `ScriptUI Panels`
- **Preferences**: Media & Disk Cache
- **mogrt**: Essential Graphics export for Premiere
## Agent Operational Directive
> **MANDATORY**: Wrap project mutations in `beginUndoGroup` / `endUndoGroup`. Set comp specs explicitly. Treat output module template names as environment-specific and fail gracefully when missing.