mcpField
A
after-effects

after-effects

github.com/dylantarre创意与媒体134907 次安装43 周前更新
代码仓库

关于 after-effects

面向 After Effects 动效设计的实用技能,使用关键帧、表达式和合成技巧实现迪士尼 12 条动画原则。适用于制作动画素材,并导出为 Lottie、GIF、视频或精灵图集。

主要功能

  1. 01用表达式实现挤压与拉伸
  2. 02关键帧和图表编辑器工作流
  3. 03运动路径与图层错位
  4. 04时序和夸张表现技巧
  5. 05导出 Lottie、GIF、视频和精灵图集

适用场景

  1. 01用表达式制作挤压与拉伸
  2. 02构建分阶段的关键帧序列
  3. 03为分层动作添加跟随效果
  4. 04导出为所列动画格式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dylantarre/animation-principles --skill after-effects

安装后在 Claude Code 中输入/after-effects确认已加载。

详细介绍

After Effects 动画原理

使用 After Effects 强大的动画工具实现迪士尼的全部 12 条动画原理。

1. 挤压与拉伸

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

或手动操作:

  • 反向设置 X 和 Y 缩放的关键帧
  • Y 轴压缩时,X 轴扩展
  • 保持体积(X * Y ≈ 常量)

2. 预备动作

时间线结构:

  • 0-10f:蓄势(下蹲、后拉)
  • 10-12f:过渡
  • 12-30f:主要动作
  • 30-40f:收势

对预备动作的关键帧应用 Easy Ease,让蓄势动作更流畅。

3. 演出布局

技巧:

  • 使用景深(Camera > Depth of Field)
  • 对背景图层应用模糊
  • 使用暗角引导视觉焦点
  • 调整次要元素的不透明度
  • 让主角更明亮

4. 直线动作与姿势到姿势

姿势到姿势(推荐):

  1. 在关键姿势处设置关键帧
  2. 补充过渡姿势
  3. 使用 Graph Editor 调整时序

直线动作:

  • 逐帧制作动画
  • 使用 Onion Skin(Layer > Onion Skin)

5. 跟随动作与重叠动作

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

或:

  • 将子级关键帧错开 2-5 帧
  • 使用带延迟 wiggle 的父子级关系
  • 对结束值应用弹簧表达式

6. 慢入与慢出

  • 选择关键帧 > F9(Easy Ease)
  • Graph Editor > 调整贝塞尔手柄
  • 曲线越陡,运动越快
  • 曲线越平缓,运动越慢
// Custom ease expression
ease(time, inPoint, outPoint, startValue, endValue)

7. 弧线运动

技巧:

  • 使用 Pen 工具绘制运动路径
  • 使用 Position 属性的贝塞尔手柄
  • Layer > Transform > Auto-Orient
  • 将形状图层的路径应用到位置属性

8. 次要动作

  • 先制作主要动作
  • 在单独的图层或属性上添加次要动作
  • 适当错开时序
  • 次要动作应起到衬托作用,而非喧宾夺主

示例:角色挥手 → 头发跟随摆动 → 衣物晃动

9. 时序

帧数感觉
2-4干脆、瞬间完成
6-8快速、有活力
12-15正常节奏
20-30缓慢、沉重
40+戏剧化、有分量

调整合成帧率来控制整体感觉(24fps 电影感,30fps 更流畅)。

10. 夸张

// 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. 扎实绘制

  • 使用 3D 图层表现景深
  • 使用带透视效果的摄像机
  • 为 Z 位置添加动画
  • 使用光照和阴影
  • 在所有姿势中考虑体积感

12. 吸引力

设计原则:

  • 每个姿势都要有清晰的轮廓
  • 使用流畅曲线,避免尖锐角度
  • 保持角色比例一致
  • 设计悦目的时序节奏
  • 运动路径要简洁、易读

必备表达式

// 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);

导出选项

  • Lottie:Bodymovin 插件 → JSON
  • GIF:Media Encoder
  • 视频:H.264、ProRes
  • 精灵图集:Scripts > Render Sprite Sheet

评论

支持 Markdown