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
- Comp Spec First: Define width, height, frame rate, and duration before creating layers.
- Expressions vs Keyframes: Prefer expressions for procedural/linked motion; keyframes for intentional animation curves.
- Render Queue Automation: Create
OutputModulesettings explicitly (format, path, post-render actions). - Null / Parent Rigs: Build controller nulls for reusable motion systems instead of hardcoding layer indices.
- Version Portability: Avoid undocumented scripting quirks; test JSX against the studio's AE major version.
Production ExtendScript: Build Lower-Third Comp + Queue Render
// ==============================================================================
// 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
// 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.