很多刚开始接触 AE 动画的同学,看到别人做的文字入场总带有一种 Q 弹的感觉,自己照着教程打好关键帧,播放出来却只是生硬地放大缩小,完全没有“弹”的味道。问题往往不在软件操作,而在于没有理解 AE 中缩放、关键帧插值和速度曲线之间的关系。这篇教程会从原理讲到实战,带你把文字弹性入场动画完整做一遍。阅读完你不仅能手动 K 出弹跳感,还能掌握一段通用弹性表达式,以后做片头标题、字幕条、短视频花字都能直接复用。
1. 背景与核心概念
1.1 什么是文字弹性入场动画
文字弹性入场动画,简单来说就是文字从无到有的过程中,不是匀速放大到 100%,而是先在短时间内超过目标大小,再回弹到略小于目标,再经过几次小幅度振荡后停稳,视觉上就像弹簧或者皮球落地后的回弹过程。
这种效果在运动规律里通常被称为“挤压与拉伸”,它是 MG 动画、UI 动效和视频包装中最常用的表现手法之一。相比普通的淡入或缩放,弹性动画能给画面带来更强的节奏感,也更容易抓住观众注意力,尤其适合用在片头标题、短视频强调字、直播包装的贴片文字等场景。
1.2 它解决什么问题
普通的关键帧动画默认是线性变化的。比如你给“缩放”属性打两个关键帧,从 0% 到 100%,AE 会在两个关键帧之间做匀速插值,动画从开始到结束始终保持同一种速度,结果是文字直挺挺地放大,缺少生命力。
弹性入场动画的核心思路,就是打破这种线性变化:让文字在到达目标尺寸前“冲过头”,再回落到目标尺寸。这个“过冲 + 回弹 + 衰减”的过程,刚好也是很多自然物理运动的特征。观众看到之后会产生一种“这个文字好像有质量、有惯性”的错觉,从而觉得动画更生动。
1.3 实现弹性动画的两种主流方式
在 AE 中实现文字弹性入场,一般有三种途径:
- 手动 K 帧:通过设置多个缩放关键帧模拟回弹,再配合图表编辑器调整节奏。
- 表达式驱动:利用 AE 内置的 JavaScript 表达式,自动计算回弹数据。
- 第三方脚本或插件:比如常见的 Motion 2、Ease and Wizz 等,可以一键生成弹跳效果。
很多教程会直接推荐脚本,但对于刚入门的人来说,我更建议先掌握前两种方式。手动 K 帧能让你真正理解动画曲线是怎么影响视觉效果的,而表达式则能帮你提高效率。本文的重点就是这两部分,全程不需要安装额外插件,只要 AE 自带功能就能完成。
2. 环境准备与版本说明
2.1 软件版本
本教程使用 Adobe After Effects 制作,推荐使用 CC 2018 及以上版本。不同小版本之间的菜单名称可能会有细微差别,但核心操作都是通用的。我在下文会尽量同时写出中英文菜单名,方便使用不同语言版本的同学对照。
如果你使用的是 CS6 或更早版本,原理依然成立,但部分面板布局和图表编辑器样式会有差异,建议直接升级到 CC 版本跟着操作。
2.2 不需要安装额外插件
整个教程用到的功能全部是 AE 内置的,包括关键帧、The Graph Editor(中文版叫“图表编辑器”或“图形编辑器”)、运动模糊、表达式等。只要软件能正常打开,就能完成下面的练习。
如果你希望后期提高效率,可以安装 Motion 2 这类 MG 动画脚本。但脚本属于个人效率工具,不是必备依赖,建议先完成本教程的基础练习,再决定是否引入。
2.3 新建合成参数
第一次做练习时,可以按照下面的参数新建合成:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 宽度 | 1920 px | 常见横屏视频尺寸 |
| 高度 | 1080 px | 常见横屏视频尺寸 |
| 帧速率 | 30 帧/秒 | 动画调制相对简单 |
| 持续时间 | 3 秒 | 足够完整展示弹性过程 |
新建合成的方式是:菜单栏“合成 > 新建合成”,快捷键 Ctrl+N(macOS 为 Command+N)。合成代表最终输出视频的时间轴容器,所有动画都在合成内完成。
3. 核心原理拆解
3.1 关键帧插值:线性与贝塞尔
在 AE 中,关键帧与关键帧之间如何过渡,取决于插值方式。默认情况下,缩放、位置、旋转等属性打出的关键帧是“线性插值”,也就是两个关键帧之间速度恒定。线性插值的明显特点是动画在到达关键帧位置时速度会瞬间改变,视觉上显得机械、生硬。
要让动画更自然,就要把关键帧设置为“贝塞尔插值”,也就是常说的缓动。AE 中可以直接选中关键帧后按 F9 应用 Easy Ease,此时速度会在关键帧前后发生变化,动画看起来有加速和减速过程。
弹性入场动画对插值的要求更高:不仅要有缓动,还要让文字在缩放过程中穿过目标值。所以我们需要在到达 100% 之前设置一个“过头”的缩放值,比如 115%,再回落到 95%,再回到 103%,逐步逼近 100%。这个过程其实就是手动模拟阻尼振荡。
3.2 图表编辑器的作用
图表编辑器是 AE 中最容易忽略但又非常重要的面板。它位于时间轴面板顶部,图标是一条曲线。打开后,你会看到两种视图:
- 值曲线:显示属性数值随时间的变化,适合观察缩放值是否达到目标。
- 速度曲线:显示属性变化速度随时间的变化,适合调整动画的节奏感。
手动 K 帧时,先用值曲线确认关键帧数值,再用速度曲线调整每个关键帧附近的快慢。很多同学动画做出来僵硬,就是因为只调整了数值,没有调整速度曲线。
在弹性动画中,一个常见推荐做法是:让文字在前半段快速放大,到达峰值后回弹速度逐渐放缓,回弹幅度越来越小。之后每次回弹的速度峰值都比上一次低,形成“衰减”的节奏。
3.3 弹性动画的本质:过冲与阻尼衰减
弹性动画并不复杂,本质上可以拆成两个关键词:
- 过冲:物体运动到目标位置后没有立刻停下,而是继续向前冲出一段距离。
- 阻尼衰减:过冲之后反向回弹,回弹幅度一次比一次小,最终停在目标位置。
对应到缩放属性上,就是文字超过 100% 再回落到 100% 的过程。比如:0% → 115% → 95% → 103% → 98% → 100%。这种数值序列看起来简单,但真正让动画出效果的关键在于每段运动的时间长短不同。通常第一段“冲出去”的时间最短,速度最快;后面每次回弹时间逐渐拉长,幅度逐渐减小。
如果你比较怕麻烦,不想手动打这么多关键帧,就可以用表达式代替。AE 的表达式中封装了振荡算法,只需要设置起始关键帧,它就能自动补齐中间的回弹数据。
3.4 运动模糊对质感的影响
运动模糊是动画中非常关键的一环。当物体快速运动时,真实摄像机拍摄的画面会产生模糊拖影,AE 的运动模糊就是模拟这种效果。
在弹性动画中,文字第一次冲出目标值时速度极快,如果开启运动模糊,高速移动的瞬间会带有拖影,这让动画看起来更流畅、更接近真实世界。如果不开运动模糊,快速缩放就可能出现“跳变感”,每帧之间像跳帧一样。
开启方法很简单:时间轴面板中选中图层,打开图层右侧的“运动模糊”开关,再打开合成面板顶部的总开关。注意两个开关需要同时打开,否则不会生效。
3.5 表达式如何模拟振荡
AE 表达式是一种基于 JavaScript 的脚本语言,可以通过代码实时计算属性值。弹性表达式的基本思路是:读取关键帧运动的初始速度,把速度当作振荡的能量,再通过正弦函数和时间衰减函数生成一组逐渐减小的波动结果。
表达式的好处是:不用手动画出 10 个关键帧,只要一个起始关键帧,剩下的回弹都由代码实时计算。对于需要重复调整参数的场景,表达式比手动 K 帧更适合,比如多个文字的入场时间错开时,只需要复制表达式并调整关键帧位置即可。
4. 完整实战案例:手动 K 帧绘制弹性入场
4.1 新建合成与文字图层
先按第 2 节的参数新建一个合成。合成创建好之后,使用工具栏中的“文字工具”,快捷键 Ctrl+T(macOS 为 Command+T),在预览画面中点击并输入文字,例如“弹性入场”。
在时间轴面板中,你会看到自动生成一个文字图层。选中文字图层后,在预览画面中可以使用“选择工具”调整文字位置。为了让文字在画面正中,可以在菜单栏执行“图层 > 对齐 > 水平居中”一类的操作,也可以直接在文本框中对齐。
此步骤要点:文字图层的内容、字体样式可以先忽略,我们重点演示动画过程。后续实际项目中,你可以在“字符”面板中修改字体、字号和颜色。
4.2 设置锚点和初始缩放
缩放动画默认以图层的“锚点”为基准。锚点就像物体旋转或缩放的中心点。对于文字图层来说,如果你的锚点不在文字中心,缩放时文字就会朝一边跑,看起来像位移而不是原地放大。
选中文字图层,按 P 键展开“位置”属性,按 S 键展开“缩放”属性。如果锚点位置不对,可以执行“图层 > 变换 > 在图层内容中居中”,快捷键 Ctrl+Alt+Home(macOS 为 Command+Option+Home),让锚点回到文字中心。
接下来把时间指针移到第 0 帧,点击“缩放”左侧的秒表图标,为缩放属性添加第一个关键帧。默认缩放值如果是 100%,先把它改成 0%,表示动画从完全看不到的状态开始。
4.3 手动 K 帧模拟弹跳
现在开始打关键帧。把时间指针依次移动到以下时间点,并修改缩放值为对应的大小。这套数值是我实际测试过的,整体节奏比较适合片段展示:
| 时间点 | 缩放值 | 动画含义 |
|---|---|---|
| 0 帧 | 0% | 初始隐藏 |
| 8 帧 | 115% | 快速冲出,过冲 |
| 15 帧 | 95% | 第一次回弹 |
| 21 帧 | 103% | 第二次过冲 |
| 27 帧 | 98% | 第二次回弹 |
| 31 帧 | 100% | 稳定 |
这里需要注意,不同版本 AE 的时间轴显示单位可能不同,默认通常显示为“时间码”格式,例如 0:00:00:08 表示第 8 帧。你可以在时间轴面板右下角调整时间显示单位,直接看帧数会更好判断。
打好关键帧后,先点击播放预览。你会发现动画确实有回弹了,但节奏还不一定对,因为关键帧目前可能还是线性插值,速度感不够。
4.4 应用 Easy Ease 并调整速度曲线
选中刚刚创建的所有缩放关键帧,直接按键盘上的 F9,为这些关键帧应用 Easy Ease。接着打开时间轴面板顶部的“图表编辑器”按钮。
在图表编辑器中,先把显示模式切换为“编辑速度曲线”。你会看到每条速度曲线都有手柄,可以通过拖拽控制点和手柄来调整关键帧附近的速度变化。
在这个弹性动画里,比较合理的速度倾向是:
- 第 0 帧到第 8 帧:速度先慢后快,形成突然弹出的感觉。
- 第 8 帧到第 15 帧:回弹过程先快后慢,带着惯性回落。
- 后续小幅振荡过程:速度峰值一次比一次低,最终趋于平稳。
实际操作时,你不需要把每个细节都调得特别精确。可以先整体播放一遍,然后只把第一次“冲出去”的那段速度曲线拉快,通常就能获得比较明显的弹性感。
调整时有一点容易出错:如果图表编辑器的曲线类型显示为“编辑值曲线”,你看到的是数值变化,而不是速度变化,调整起来容易混乱。注意区分图标和菜单项。
4.5 开启运动模糊
文字快速缩放时,如果不开启运动模糊,动画会显得有点“闪”。接下来在时间轴面板中找到文字图层的“运动模糊”开关,它是一个小方框图标,打开后图标会变暗或打勾。
然后再看图层上方的“启用运动模糊”总开关,也需要一起打开。总开关通常是时间轴面板顶部一排按钮中的一个,图标是三个小圆圈。开启后,预览时就能看到缩放过程中的模糊拖影。
注意:运动模糊并不是所有场景都适合。如果你的文字动画速度本身很慢,模糊效果会不明显;如果速度极快,也可能因为拖影太大导致画面模糊得看不清楚。实际项目中可以根据预览效果调整“运动模糊快门角度”参数来控制模糊强度。
4.6 预览与输出
时间指针移到第 0 帧,按空格键播放,或者使用“内存预览”快捷键数字键 0。正常情况下,你会看到文字以非常快速度弹出,在超过目标尺寸后回弹两次,最终停在 100%。
预览确认没问题后,可以导出视频。在菜单栏执行“合成 > 添加到渲染队列”,或者按快捷键 Ctrl+M(macOS 为 Command+M),然后在渲染队列中设置输出格式。如果电脑装了 Adobe Media Encoder,可以选择“H.264”格式导出 MP4;如果没有该格式,可以先导出无损 AVI 或 MOV,再用格式转换工具压缩。
如果你想导出透明背景的文字动画,可以在“渲染队列”中把“通道”设置为“RGB + Alpha”,然后输出为 MOV 格式,这样后续放到剪辑软件中时,文字背景就是透明的。
4.7 结果说明与调参建议
手动 K 帧的好处是可控性强,每一项数值都能直观看到。如果你觉得回弹次数太多,可以减少关键帧;觉得回弹太猛,可以把 115% 改成 108%。这些数值要根据片子的整体节奏来调整,没有唯一正确答案。
初学者刚开始做时,不建议一次设置太多细节。先做到“有回弹”“有缓动”“有模糊”这三件事,再逐步微调。
5. 进阶方案:使用表达式快速实现弹性文字
5.1 为什么需要表达式
手动 K 帧虽然直观,但可复用性较差。比如你做了一个系列片头,里面有 20 个字需要分别做弹性入场,如果每个字都手动打 6 个关键帧,不仅工作量大,而且很难保证节奏统一。
表达式则只需要“一个关键帧 + 一段公式”。比较常见的弹性表达式可以读取缩放属性的初始速度,并自动生成一组振荡回弹。粘贴一次之后,后续其他文字只需要把关键帧时间错开就行,效率会高很多。
5.2 给“缩放”添加一个起始关键帧
在使用表达式前,需要先给缩放属性设置一个起始关键帧,目的是让表达式有“前一个关键帧”可以读取速度数据。具体操作如下:
选中文字图层,按 S 键展开缩放属性。把时间指针移到第 0 帧,点击缩放左侧秒表,创建关键帧,并设置缩放值为 0%。再把时间指针移到第 10 帧,设置缩放值为 100%。
此时时间轴上应该只有两个关键帧,默认线性缩放。接下来我们要用表达式替换掉手动的数值逻辑。
5.3 粘贴弹性表达式
选中缩放属性,执行“动画 > 添加表达式”,或者在缩放属性上按住 Alt 键(macOS 为 Option 键)并点击秒表图标。此时缩放右侧会出现表达式编辑区域,默认内容是一个字符“value”。
把下面的表达式整体复制进去:
freq = 3; decay = 5; n = 0; if (numKeys > 0) { n = nearestKey(time).index; if (key(n).time > time) n--; } if (n > 0) { t = time - key(n).time; amp = velocityAtTime(key(n).time - 0.001); w = freq * Math.PI * 2; value + amp * (Math.sin(w * t) / Math.exp(decay * t) / w); } else { value; }粘贴完成后,把时间指针移到第 0 帧并播放预览。你会看到文字从 0% 弹出后,自动产生一段回弹振荡。这个过程中你所做的关键帧只有两个,剩下的振荡全部由表达式实时计算。
5.4 表达式参数调优
这段表达式中有两个常用参数需要理解:
- freq:频率,控制回弹的速率。数值越大,回弹次数越多、振荡越快。适合节奏感强的短标题;如果想让回弹更柔和,可以把 freq 调整为 2 或 2.5。
- decay:衰减速度,控制回弹的持续时间。数值越大,回弹越快消失;数值越小,回弹振荡持续时间越长,看起来更“软”。
在实际项目中,你可以把 freq 和 decay 分别定义成滑块控制的变量,然后通过表达式关联滑块,这样后续不用进入表达式编辑区就能调参。示例思路如下,需要结合“效果 > 表达式控制 > 滑块控制”使用:
freq = effect("频率")("滑块"); decay = effect("衰减")("滑块");5.5 表达式的原理与使用注意事项
表达式看起来复杂,但核心逻辑只有几步:先找到当前最近的左侧关键帧,读取该关键帧瞬间的速度作为“初始弹力”,然后把速度乘以一个按指数衰减的正弦波,叠加到原始属性值上。Math.exp(decay * t)就是衰减项,它让振荡幅度随时间越来越小。
使用表达式时有几个容易踩的坑:
- 如果表达式中“amp”出现反向值,文字可能先缩小再放大,检查起始关键帧的速度方向。
- 如果缩放属性没有关键帧,表达式不会产生弹性效果,因为找不到“初始速度”。
- 如果项目在旧版 AE 中打开,部分表达式写法可能不兼容。
- 表达式对中文字体没有影响,因为它是属性层面的计算,不涉及文字内容编码。
建议施工时先把表达式粘贴到一个文字图层上,确认效果后再复制给其他图层。
6. 常见问题与排查思路
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 弹性不明显 | 关键帧幅度太小或频率过低 | 提高过冲幅度,或增大 freq 参数 |
| 回弹过于抖动 | decay 太小,振荡时间太长 | 增大 decay,让振荡更快收敛 |
| 文字缩放时发生位移 | 锚点不在文字中心 | 执行“图层 > 变换 > 在图层内容中居中” |
| 运动模糊看不到 | 图层开关或合成总开关未开启 | 同时打开两个开关 |
| 表达式报错 | 属性没有关键帧或表达式写错 | 检查关键帧是否存在,重新粘贴表达式 |
| 预览画面卡顿 | 运动模糊和全分辨率预览导致性能不足 | 降低预览分辨率,或暂时关闭运动模糊 |
| 导出后模糊效果太强 | 快门角度设置过大 | 调整运动模糊快门角度为 180 或更小 |
| 字体消失或替换 | 系统中没有对应字体 | 检查字体是否已安装,或转换为形状图层 |
除此之外,还有一个很常见的场景:你做好的 AE 工程发给同事,打开后动画变了。这种情况通常是因为 AE 版本不一致,或者表达式引用的效果控件被删除。建议输出前在“文件 > 整理工程”中执行依赖文件收集,并保留一份字体快照。
如果文字弹性动画只有缩放,没有位置参与的位移感,视觉上会比较“板”。可以同时给位置属性添加表达式或关键帧,让文字从下方或左侧冲入,这样层次感会更强。例如位置属性可以使用类似弹性表达式,但要注意“value + amp”计算的是位置坐标,公式同样适用。
7. 最佳实践与工程建议
7.1 把文字动画做进预合成
当一个合成中有多个文字动画时,建议把单个文字的“文字层 + 动画属性”选中后,右键选择“预合成”,然后对新生成的预合成图层继续做整体的位置、旋转、不透明度动画。这样做的好处有两个:
- 主时间轴不会被大量关键帧塞满,结构清晰。
- 后续对文字内容或字体修改时,只需要进入预合成内部修改,外层动画不受影响。
预合成在 MG 动画项目中非常常用,但要注意:如果需要修改文字内容,必须双击进入预合成修改;如果预合成名称不清晰,时间越长越难维护。
7.2 图层命名与颜色标签
工程文件稍微复杂一点,大量“文字图层”“形状图层”会让人分不清内容。建议养成命名习惯:
- 图层名与文字内容一致,比如“标题-主视觉”。
- 使用图层颜色标签区分类型:文字层用绿色,背景层用蓝色,控制层用红色。
- 表达式控制层统一放在合成最上方或最下方,避免与其他图层重叠。
团队协作时,命名规范尤其重要。别人打开你的工程文件,如果图层都叫“图层 1”“图层 2”,很难判断哪一层对应哪个模块。
7.3 用控制层统一管理参数
本次教程中,freq 和 decay 是关键参数。如果在多个图层中都使用了表达式,想要调整全局节奏,最好新建一个空对象图层,在空对象上添加“效果 > 表达式控制 > 滑块控制”,然后把所有图层的表达式与这个滑块关联。
这样调整全局弹性时,只需要修改空对象上的滑块数值,所有关联图层的表达式会自动更新。这比逐个查找图层里的表达式并手动改参数要高效得多。
7.4 动画节奏服从整体叙事
弹性动画虽然生动,但并不是越多越好。片头节奏快、偏活泼时,可以多用弹性;如果视频内容偏庄重、偏产品宣传,过度的弹性会让画面显得轻浮。
建议在项目开始前先确定整体节奏,例如片头音乐的重拍位置、字幕出现的时间点,再根据节奏点设计动画的持续时间。原则是:动画服务于内容,而不是让内容服务于动画。
7.5 字体版权和素材管理
文字弹性动画对字体选择有一定要求。笔画太细的字体在快速缩放时容易产生闪烁,笔画太粗的字体在模糊后可能糊成一团。实操中更推荐使用中等字重、结构清晰的字体,比如思源黑体、阿里巴巴普惠体等。
另外要特别注意字体版权。商业项目中,使用未授权字体可能带来版权风险。建议项目中使用可商用字体,并保留正版授权信息。AE 工程文件移交时,也应该附带字体说明文档。
7.6 定期缓存清理与工程备份
AE 处理文字动画时会产生大量内存缓存,尤其是开启运动模糊后,预览会占用较多资源。如果出现预览变慢、偶尔闪退,可以执行“编辑 > 清理 > 所有内存与磁盘缓存”。注意清理后需要重新才能生成缓存,所以在工作间隙清理比较好。
工程文件建议按天备份,每次大改动前另存为一份副本。表达式版本可以命名为“标题_v1_表达式.aep”,手动关键帧版本命名为“标题_v2_关键帧.aep”等。避免所有版本都叫“最终版”,这是很多项目混乱的开始。
8. 总结与下一步学习方向
这篇教程围绕 AE 文字弹性入场动画,从原理讲到了具体实现。你需要掌握的核心技能包括:理解弹性动画的本质是“过冲 + 阻尼衰减”,学会用缩放关键帧序列手动模拟弹性,能够通过图表编辑器调整动画的节奏感,并掌握用表达式快速生成弹性的方法。这些能力不仅适用于文字动画,也适用于形状图层、图标动效和简单 MG 动画。
下一步你可以继续学习几个方向:
- AE 文字动画制作器的用法,通过“动画 > 添加动画制作器”实现逐字符入场、偏移、旋转和模糊。
- MG 动画中的图形动效设计,把弹性原理扩展到位置、旋转和不透明度。
- 表达式进阶,比如通过滑块控制、随机表达式和时间重映射提高动画制作效率。
- 如果你的兴趣延伸到三维包装,可以结合 Cinema 4D 或 Blender 制作三维弹性文字,再回到 AE 中合成。
实际项目中,建议先从小片段做起,不要一上来就挑战复杂片头。先把这段弹性文字动画导入剪辑软件,配上音效和音乐,观察节奏是否合适,再逐步增加文字数量、动画层次和转场效果。做动画没有太多捷径,反复预览、反复调整参数是常态,但每调整一次,你对节奏和运动规律的理解就会更深一点。