---
name: after-effects
description: Use when implementing Disney's 12 animation principles in Adobe After Effects
---

# After Effects Animation Principles

Implement all 12 Disney animation principles using After Effects' powerful animation tools.

## 1. Squash and Stretch

```javascript
// Expression for automatic squash/stretch
s = transform.scale[1];
x = 100 + (100 - s) * 0.5;
[x, s]
```

Or manually:
- Keyframe Scale X and Y inversely
- When Y compresses, X expands
- Maintain volume (X * Y ≈ constant)

## 2. Anticipation

Timeline structure:
- **0-10f**: Wind-up (crouch, pull back)
- **10-12f**: Transition
- **12-30f**: Main action
- **30-40f**: Settle

Use Easy Ease on anticipation keyframes for smooth wind-up.

## 3. Staging

Techniques:
- Use depth of field (Camera > Depth of Field)
- Apply blur to background layers
- Use vignettes to direct focus
- Adjust opacity of secondary elements
- Light the main subject brighter

## 4. Straight Ahead / Pose to Pose

**Pose to Pose (recommended):**
1. Set keyframes at key poses
2. Fill in breakdowns
3. Use Graph Editor to adjust timing

**Straight Ahead:**
- Animate frame-by-frame
- Use Onion Skin (Layer > Onion Skin)

## 5. Follow Through and Overlapping Action

```javascript
// Delay expression for child layers
thisComp.layer("Parent").transform.position.valueAtTime(time - 0.05)
```

Or:
- Offset child keyframes by 2-5 frames
- Use parenting with delayed wiggle
- Apply spring expression to end values

## 6. Slow In and Slow Out

- Select keyframes > F9 (Easy Ease)
- Graph Editor > Adjust bezier handles
- Steeper curve = faster movement
- Flatter curve = slower movement

```javascript
// Custom ease expression
ease(time, inPoint, outPoint, startValue, endValue)
```

## 7. Arc

Techniques:
- Draw motion path with Pen tool
- Use Position property's bezier handles
- Layer > Transform > Auto-Orient
- Apply path from shape layer to position

## 8. Secondary Action

- Animate main action first
- Add secondary on separate layer/property
- Offset timing slightly
- Secondary should complement, not compete

Example: Character waves → Hair follows → Clothing shifts

## 9. Timing

| Frames | Feel |
|--------|------|
| 2-4 | Snappy, instant |
| 6-8 | Quick, energetic |
| 12-15 | Normal pace |
| 20-30 | Slow, heavy |
| 40+ | Dramatic, weighted |

Adjust composition frame rate for overall feel (24fps cinematic, 30fps smooth).

## 10. Exaggeration

```javascript
// Overshoot expression
amp = 15;
freq = 3;
decay = 5;
t = time - key(numKeys).time;
if (t > 0) {
  value + amp * Math.sin(t * freq * Math.PI * 2) / Math.exp(t * decay);
} else {
  value;
}
```

Push values 20-50% beyond realistic:
- Larger scales
- Wider rotations
- More dramatic timing

## 11. Solid Drawing

- Use 3D layers for depth
- Apply cameras with perspective
- Animate Z position
- Use light and shadow
- Consider volume in all poses

## 12. Appeal

Design principles:
- Clear silhouettes at every pose
- Smooth curves over sharp angles
- Consistent character proportions
- Pleasing timing patterns
- Clean, readable motion paths

## Essential Expressions

```javascript
// Wiggle
wiggle(frequency, amplitude)

// Loop
loopOut("cycle")

// Time remap
timeRemap = linear(time, 0, duration, 0, 1)

// Bounce
n = 0;
if (numKeys > 0) {
  n = nearestKey(time).index;
  if (key(n).time > time) n--;
}
if (n == 0) t = 0;
else t = time - key(n).time;
amp = 80; freq = 3; decay = 8;
value + amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
```

## Export Options

- **Lottie**: Bodymovin plugin → JSON
- **GIF**: Media Encoder
- **Video**: H.264, ProRes
- **Sprite Sheet**: Scripts > Render Sprite Sheet


---
Source attribution: dylantarre
Original project: https://github.com/dylantarre/animation-principles/blob/83597134ba8ff59838270f94d7ac7282ffa3b54d/skills/09-by-tool-framework/after-effects/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Dave AI.

## Upstream license notice

MIT License

Copyright (c) 2024 Dylan Tarre

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Dave AI resource metadata

Creator / publisher: dylantarre
Original project: https://github.com/dylantarre/animation-principles/blob/83597134ba8ff59838270f94d7ac7282ffa3b54d/skills/09-by-tool-framework/after-effects/SKILL.md
Attribution basis: Recovered original package and original project license at a pinned revision

Fields of work: Design
Roles: Graphic Designer, Motion Designer, UX Designer
Specialties: Design
Tools: Adobe Creative Suite
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: a12145d1469ff81476d3953769ea5b3ab57c245d8e06e3a4ac9fe17d1b0f572c
Metadata reviewed: 2026-10-27
This metadata supersedes earlier Dave AI catalog attribution. Original instruction and supporting files are preserved.
