after-effects
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAfter Effects Animation Principles
After Effects 动画原则
Implement all 12 Disney animation principles using After Effects' powerful animation tools.
利用After Effects强大的动画工具实现全部12条迪士尼动画原则。
1. Squash and Stretch
1. 挤压与拉伸
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)
javascript
// Expression for automatic squash/stretch
s = transform.scale[1];
x = 100 + (100 - s) * 0.5;
[x, s]或者手动操作:
- 为Scale X和Scale Y设置反向关键帧
- 当Y轴压缩时,X轴展开
- 保持体积不变(X * Y ≈ 恒定值)
2. Anticipation
2. 预备动作
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.
时间轴结构:
- 0-10帧:蓄力阶段(下蹲、向后拉)
- 10-12帧:过渡阶段
- 12-30帧:主要动作
- 30-40帧:稳定阶段
为预备动作的关键帧添加Easy Ease,实现流畅的蓄力效果。
3. Staging
3. 舞台布局
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
技巧:
- 使用景深效果(Camera > Depth of Field)
- 为背景图层添加模糊效果
- 使用暗角引导视觉焦点
- 调整次要元素的不透明度
- 为主体设置更亮的灯光
4. Straight Ahead / Pose to Pose
4. 逐帧动画 / 关键姿势动画
Pose to Pose (recommended):
- Set keyframes at key poses
- Fill in breakdowns
- Use Graph Editor to adjust timing
Straight Ahead:
- Animate frame-by-frame
- Use Onion Skin (Layer > Onion Skin)
推荐使用关键姿势动画:
- 在关键姿势处设置关键帧
- 填充过渡帧
- 使用Graph Editor调整时间节奏
逐帧动画:
- 逐帧制作动画
- 使用洋葱皮工具(Layer > Onion Skin)
5. Follow Through and Overlapping Action
5. 跟随动作与重叠动作
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
javascript
// Delay expression for child layers
thisComp.layer("Parent").transform.position.valueAtTime(time - 0.05)或者:
- 将子图层的关键帧偏移2-5帧
- 结合父子关系与延迟wiggle效果
- 为结束值应用弹簧表达式
6. Slow In and Slow Out
6. 缓入缓出
- 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)- 选中关键帧 > 按F9(Easy Ease)
- 在Graph Editor中调整贝塞尔手柄
- 曲线越陡峭,运动速度越快
- 曲线越平缓,运动速度越慢
javascript
// Custom ease expression
ease(time, inPoint, outPoint, startValue, endValue)7. Arc
7. 弧线运动
Techniques:
- Draw motion path with Pen tool
- Use Position property's bezier handles
- Layer > Transform > Auto-Orient
- Apply path from shape layer to position
技巧:
- 使用钢笔工具绘制运动路径
- 利用Position属性的贝塞尔手柄
- 图层 > 变换 > 自动定向(Auto-Orient)
- 将形状图层的路径应用到Position属性
8. Secondary Action
8. 次要动作
- 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
9. 时间节奏
| 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).
| 帧数 | 感受 |
|---|---|
| 2-4 | 明快、瞬间 |
| 6-8 | 快速、充满活力 |
| 12-15 | 正常节奏 |
| 20-30 | 缓慢、沉重 |
| 40+ | 戏剧性、有分量 |
调整合成帧率以营造整体氛围(24fps电影感,30fps流畅感)。
10. Exaggeration
10. 夸张表现
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
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;
}将数值推至超出真实范围的20-50%:
- 更大的缩放比例
- 更夸张的旋转角度
- 更具戏剧性的时间节奏
11. Solid Drawing
11. 扎实造型
- Use 3D layers for depth
- Apply cameras with perspective
- Animate Z position
- Use light and shadow
- Consider volume in all poses
- 使用3D图层营造深度
- 应用带透视效果的摄像机
- 为Z轴位置制作动画
- 使用灯光与阴影
- 在所有姿势中考虑体积感
12. Appeal
12. 吸引力
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);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
- Lottie:Bodymovin插件 → JSON格式
- GIF:Media Encoder
- 视频:H.264、ProRes
- 精灵图:脚本 > 渲染精灵图(Scripts > Render Sprite Sheet)