
这次直接聊一个很多刚接触 After Effects 的人都会问的效果文字弹性入场动画。所谓弹性入场就是文字从画面外快速进场到达目标位置后不是直接“硬停”而是先冲过头一点再弹回、再小幅震荡最后稳住。这个节奏在综艺字幕、科技发布会标题、宣传片片头里非常常见观感比普通“淡入 位移”更有冲击力制作成本却低到可以忽略。这个教程的核心内容有几点不依赖第三方插件AE 原生关键帧、图表编辑器、表达式就能做支持自由修改位移方向、弹跳次数、衰减速度和文字内容既适合做单条标题动画也适合给多条字幕做批量套用制作链路极短从建合成到出片熟练后单条一分钟以内。下面这套流程会完整走一遍新建合成、创建文字图层、打位置关键帧、用图表编辑器调出弹性曲线、再用表达式做一个可复用的回弹模板最后讲预览渲染和常见排查。适合刚入门 AE 动态图形、做短视频标题、宣传片字幕条以及在项目里需要快速产出文字动画的设计师或视频编辑。1. 文字弹性入场动画核心能力速览能力项说明项目类型After Effects 动态图形 / 文字动画教程核心效果文字位移入场 弹性回弹稳定依赖软件After Effects建议 CC 2019 或更高版本第三方插件不需要核心技术关键帧插值、图表编辑器速度曲线、弹簧表达式制作耗时熟悉后单条约 1 分钟可调参数文字内容、位移方向、弹跳频率、衰减速度、缩放、透明度批量能力复制图层、替换文字、统一套用表达式与预设输出能力普通视频或带 Alpha 透明通道的视频适用场景短视频标题、字幕条、发布会字卡、片头动画从技术路径看实现同一个弹性效果有两种思路一种完全不写代码只靠手调速度曲线另一种用表达式好处是参数可复用、批量修改时只改数值就行。下面会把两条路都讲清楚。2. 适用场景与技术边界2.1 适合谁、解决什么问题这个效果适合大部分需要在短时间内出文字的动态图形场景。做短视频二创时标题从底部弹入会比单纯“淡入淡出”多一截节奏感。做产品宣传片时产品关键词、型号参数用弹性进场配合配音卡点能让人记住关键信息。做会议大屏、直播包装、课程字幕时也经常要用这套思路去快速生成字幕条。它解决的其实是一个很实际的效率问题不靠复杂的表达式库不靠第三方预设仅用 AE 自带能力就能做出带“质量感”的文字进场。这对外包交付、量产字幕、定期更新片头来说非常友好。2.2 不适合什么场景如果追求的是手写墨迹、笔触生长、粒子碎裂这一类高度美术化的文字效果那这个方案不适合。弹性入场本质上是一种机械感较强的运动方式它适合“品牌标题”“数据关键词”“字幕条”不适合需要体现手作感、沉重感或破碎感的对象。另外如果文字数量极多且每次内容完全不同比如上百条花字动态模板直接用表达式模板会更快如果只是单条文字偶尔用一次手调关键帧就够不必上表达式。2.3 版权、素材与使用边界动画效果本身没有版权限制但要注意字体和素材授权。正文中如果使用商业字体制作短视频或商业宣传片需要确认字体是否允许商用。常用的免费可商用字体包括思源黑体、思源宋体、阿里巴巴普惠体以及 Adobe 生态内的开源字体。如果文字内容涉及品牌名称、商标、人物姓名使用时也要留意商标和肖像权边界。本教程所有操作使用 AE 自带合成与文字功能不涉及外部素材可作为基础动画模板反复使用。3. AE 环境准备与合成设置3.1 软件与运行环境安装 After Effects 后先确认软件能正常打开并创建工程。更稳妥的建议是使用 CC 2019 或更高版本因为后续涉及图表编辑器和表达式的操作新版界面更直观表达式报错提示也更友好。系统方面Windows 10 64 位以上或 macOS 10.15 以上均可。内存建议 16GB 起步AE 是内存占用大户文字动画虽然轻量但如果同时打开多个合成内存不足会明显掉帧。显卡有独立显卡即可AE 对显卡要求不算极端主要用于预览加速和效果渲染。磁盘空间建议预留充足AE 安装、缓存和输出视频都会占用空间常规工作流至少留出 20GB 以上剩余空间比较稳妥。3.2 新建合成打开 AE 后执行合成 新建合成推荐参数预设自定义宽度1920高度1080像素长宽比方形像素帧速率30或25持续时间5秒如果是做短视频竖版内容可以直接把宽度改成1080高度改成1920。持续 5 秒足够观察完整动画后续可以按实际需要裁剪。3.3 创建文字图层在顶部工具栏选择文字工具快捷键是CtrlT在合成窗口中点击并输入文字比如“新品发布”。默认生成的是一个文字图层展开图层的属性会看到变换文本文字选项本教程的核心操作在“变换 位置”与“文本”两层属性上。4. 文字弹性入场动画实现步骤4.1 无表达式版本关键帧 图表编辑器先看不写代码的版本理解弹性动画的底层逻辑。在时间轴中选择文字图层按P键展开位置属性。默认一定是合成中心附近的某个坐标例如960, 540。设定两个关键帧第 0 帧位置改为(960, 900)让文字从画面下方进入第 15 帧位置改回(960, 540)这是文字最终停留的位置。现在播放预览会看到文字从下方快速上来并停住。问题是动势太生硬没有弹性。原因在于第 15 帧关键帧的插值方式默认是线性速度在终点处瞬间归零。要做出回弹需要让文字在到达(960, 540)前先减速但速度不能直接归零而是反向一下让位置稍微越过目标值再拉回来。操作步骤选中第 0 帧和第 15 帧两个关键帧右键选择“关键帧插值”把空间插值改为“贝塞尔曲线”按F9打上“缓动”Easy Ease让速度变化连续打开“图表编辑器”点击右上角图标切换到“编辑速度图表”选中第 15 帧的速度手柄把右侧手柄向下拉让速度曲线在终点处出现“低于零”的部分。速度低于零表示文字位置在接近终点时开始反向移动。这个反向就是回弹的来源。如果速度曲线拉到负值区间较深回弹幅度大拉得浅回弹幅度小曲线的摆动次数越多回弹次数越多。这种方式完全不写代码适合第一次接触弹性概念的读者也适合只需要做单条文字的情况。4.2 表达式版本一段代码做出标准回弹手调曲线的优点是直观缺点是难以精确复现。要批量套用到多个图层或者想在后期统一调整回弹频率和衰减速度表达式是更稳的选择。这里用一段非常经典的弹簧表达式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 - thisComp.frameDuration / 10); value amp * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t); } else { value; }操作方式对文字图层按P键展开位置属性在第 0 帧设置起始位置比如(960, 900)在第 15 帧设置结束位置(960, 540)按住Alt点击位置属性左侧的小码表打开表达式编辑器粘贴上面的代码。播放后文字会在到达终点时自动回弹不需要再手动调整速度曲线。代码的逻辑可以这样理解freq是回弹频率值越大单位时间内回弹抖动次数越多decay是衰减速度值越大回弹消失得越快nearestKey(time).index找到当前时间之前最近的关键帧序号velocityAtTime读取关键帧那一刻的运动速度把它作为回弹初始动能后面用正弦函数模拟往复运动再用指数函数做衰减。一般建议freq在2到4之间decay在4到6之间。数值越大越接近机械弹簧数值越小越松软。需要注意这段表达式要写在已经有至少两个关键帧的位置属性上。如果只有一个关键帧numKeys 0虽然成立但缺少速度变化弹不出来。这是初学者最容易遇到的问题。4.3 缩放弹性与透明雾化入场位置位移之外可以再叠加一个缩放弹入效果让文字在进场时从小到大冲出一点再回缩。按S键展开缩放属性设置两个关键帧第 0 帧缩放0%第 15 帧缩放100%同样按住Alt点击缩放前的秒表粘贴同一个弹簧表达式。此时缩放也会产生冲过头再回弹的效果配合位置位移整体动感更强。如果你还想让入场更有层次可以再给文字加一个不透明度动画第 0 帧不透明度0%第 8 帧不透明度100%不透明度不建议用回弹表达式它不需要冲过头线性或普通缓动就足够。入场前 8 帧完成淡入然后靠位置和缩放的弹性制造节奏。运动模糊也是很关键的一步。选中文字图层打开图层右侧的“运动模糊”开关再点击时间轴面板顶部的“启用运动模糊”按钮。快速位移会自然产生拖影视觉上更顺滑尤其适合竖屏短视频里的大字标题。4.4 组合效果的合成参数参考做一个可复用的组合参数属性第 0 帧第 15 帧弹性表达式位置960, 900960, 540是缩放0%100%是不透明度0%100%否这是最常用的“从下弹入 缩放弹入 淡入”组合。想换成从左向右弹入把位置起始点改成(-200, 540)即可想从右侧改成(2120, 540)即可。5. 逐字入场与批量文字应用5.1 使用文本动画器实现逐字滑入前面做的是整行文字一起弹入。如果想让文字以“逐字”方式依次进场需要使用文本动画器。选择文字图层在菜单栏执行动画 位置此时文字图层会新增一个“动画制作工具 1”包含范围选择器 1位置属性把“位置”的值从0, 0改为0, 100表示每个字符相对原始位置向下偏移 100 像素。展开“范围选择器 1”找到“起始”属性。默认值是0%如果保持 0%所有字符同时受影响要逐字入场需要对“起始”打关键帧第 0 帧起始0%第 20 帧起始100%播放后文字从左往右逐字滑入。速度是线性的如果想更顺滑选中这两个关键帧按F9添加缓动。5.2 范围选择器上的弹性写法逐字入场也能加弹性。做法是在“范围选择器 1”的“起始”属性上写表达式freq 3; decay 4; n 0; if (numKeys 0) { n nearestKey(time).index; if (key(n).time time) n--; } if (n 0) { t time - key(n).time; amp key(n).velocity; value amp * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t); } else { value; }这段代码与位置属性上的版本思路一致区别是用了key(n).velocity读取起始关键帧处的速度。粘贴后每个字符进入的瞬间都会有轻微回弹整体看起来更活泼。需要注意“起始”属性本身是百分比数值表达式最终输出的结果也会被解释为百分比。如果回弹幅度过大字符可能反向超过0%或100%这属于正常弹性表现如果觉得过头把decay调大或把关键帧之间的间距变宽即可。5.3 批量替换文字与统一更新制作完成后如果想快速生成多条文字动画最省事的做法不是重做而是复制图层后替换文字。操作步骤选中做好的文字图层按CtrlD复制一层展开“文本 源文本”修改文字内容把时间轴指针移到动画结束帧之后确认新图层位置和缩放属性没被误改。由于表达式已经写在属性上复制后的图层会继承表达式。这意味着只要修改源文本动画模板完全不变。批量生成 20 条字幕只需要 20 次复制和改字。如果希望多条文字错峰入场可以选中复制的图层按U键展开所有关键帧整体拖动关键帧到 3 帧或 5 帧之后。不同文本层依次进场节奏感更强。6. 表达式与动画预设复用如果说关键帧是 AE 里的“数据点”那么表达式就是 AE 提供给动态图形作者的“接口”。把写好的表达式理解成一个小函数输入参数是弹跳频率和衰减速度输出结果就是每一帧的位置或缩放数值。这个“接口”可以复用、可以调参也就把单条动画做成了模板。6.1 弹簧表达式逐行拆解以 4.2 的位置表达式为例逐行解释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 - thisComp.frameDuration / 10); value amp * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t); } else { value; }n 0表示确实存在一个有效的关键帧。t是当前时间离该关键帧的差值。amp取的是关键帧发生前极小时间片内的速度把它当作弹性启动能量。正弦函数Math.sin负责产生往复运动指数函数Math.exp负责衰减。这个结构可以平移到缩放、旋转、透明度等几乎所有数值属性上。只要属性有关键帧就有速度变化就能触发弹性。6.2 把动画保存为预设调好一个满意的动画后可以保存为动画预设之后在新项目里直接调用。操作步骤选中文字图层展开属性面板选中写好的表达式和相关参数执行菜单“动画 将动画预设另存为”命名并保存到预设目录。下次新建文字图层后右键选择“动画预设”找到刚才保存的名称即可一键套用。6.3 用表达式做参数化版本如果团队里经常用这套动画可以把freq和decay改成滑块控制方便在多个图层间统一调整。在效果控件面板添加“滑块控制”然后表达式改成freq effect(滑块控制)(滑块); decay 5;这样就不需要每次打开表达式改数字直接在效果控件面板拖动滑块字体的弹跳感会实时变化。对整个项目统一节奏非常有用。7. 预览、渲染与性能观察7.1 预览阶段看什么文字弹性入场动画的计算量很小预览时一般不会卡。重点关注三件事回弹幅度是否符合预期运动开始和结束的时间是否卡在节奏点上运动模糊是否已打开拖影是否正常。如果预览时速度较慢可以把合成预览分辨率降到二分之一甚至四分之一。快捷键CtrlShiftY可以快速切换分辨率设置。缩放和位移预览在低分辨率下依然准确。7.2 导出透明通道视频如果文字动画需要叠加到其他视频素材上建议导出带 Alpha 通道的格式。在渲染队列中执行合成 添加到渲染队列点击“输出模块”右侧的设置选择格式QuickTime视频编解码器Animation或ProRes 4444通道RGB Alpha这样输出的视频背景透明可以直接叠加到任何视频上方。如果只是生成短视频素材可以改用“导出 添加到 Adobe Media Encoder 队列”预设选择 H.264输出常规 MP4 即可。7.3 批量渲染多个合成同一个 AE 工程里如果建了多个合成每条对应一句文字可以把它们全部加入渲染队列。操作方式选中多个合成执行“合成 添加到渲染队列”在渲染队列中统一设置输出格式点击“渲染”。这样可以在无人值守的情况下批量导出所有文字动画。7.4 影响性能的因素文字弹性入场不涉及重型效果性能压力主要来自合成分辨率过高比如 4K运动模糊开启数量过多同时预览多个图层或多条表达式系统内存不足。降低性能消耗的方法也很直接预览时降低分辨率不预览时关闭运动模糊表达式尽量简洁删除用不到的图层。8. 常见问题与排查方法问题现象可能原因排查方式解决方案文字没有回弹效果位置属性上没有足够关键帧或速度变化过于平缓展开位置属性查看关键帧数量和速度曲线保证有两个及以上关键帧并让速度有明显变化表达式提示报错表达式粘贴不完整或属性类型不匹配查看表达式编辑器底部的语法提示对照模板检查括号、分号和函数名文字弹性幅度过大freq或decay数值设置过大或过小调低freq增大decay将freq调到 2~3decay调到 5~6文字在最后一帧没有稳定decay太小回弹还没结束动画就播放完了拉长合成时间或观察表达式在尾帧的输出增大decay或把最终关键帧提前字体显示为方块或乱码系统缺少对应字体检查字符面板和系统字体库换用思源黑体等常见字体或安装缺失字体预览很卡分辨率太高、运动模糊过多、内存不足查看预览解析度和时间轴效果数量降低预览分辨率、关闭部分运动模糊导出视频没有透明通道输出格式不支持 Alpha检查输出模块设置改用 QuickTime RGB Alpha多条字幕无法统一调整每条图层的表达式都是独立数值检查各图层的表达式参数使用滑块控制统一参数动画一次性完成没有错峰多个图层关键帧时间完全一致展开关键帧视图对比时间整体移动其中几条图层的关键帧 3~5 帧手调速度曲线时看不到负值速度图表编辑器没有切到“速度图表”确认图表编辑器右上角按钮状态切换到“编辑速度图表”模式9. 最佳实践与合规提醒9.1 图层命名与工程管理做多条文字动画时图层命名非常重要。把默认的“图层 1”“图层 2”改成“主标题_新品发布”“副标题_日期”“字幕_第一段”后续批量修改、渲染输出、交接给同事都会顺利很多。输出文件也建议统一命名规则比如项目名_文字动画_版本号_日期这样能避免多个版本堆在一起后分不清最终版。9.2 字体授权与素材版权做电商视频、商业宣传片、企业发布会时务必确认字体版权。免费可商用中文字体可以优先选择思源黑体、思源宋体、阿里巴巴普惠体、HarmonyOS Sans 等。如果使用非免费字体需要购买商业授权。如果文字动画要叠到视频素材上素材本身的来源和使用范围也需要确认。涉及人物肖像、品牌 Logo、影视画面等内容未经授权不要用于商业渠道。9.3 动画节奏控制弹性动画虽然好看但不宜滥用。标题文字可以高调弹入正文类字幕就应该更克制。建议每条弹性动画时间控制在 20 帧以内也就是一秒左右。回弹次数不要超过三次否则会显得拖沓。在多个文字连续入场时每条之间留 3 到 8 帧间隔效果更有层次。配合背景音乐的鼓点把入场时间卡在重拍上成片感会明显提升。9.4 模板化与后续扩展完成一次满意的效果后建议顺手保存为“动画预设”或直接保存一个“只含文字动画模板”的工程文件。后续做批量字幕时打开模板、复制图层、改文字、同步表达式几分钟就能完成几十条字幕动画。这也是这套方案最有价值的地方它不是一次性教程而是一个可以反复调用的生产工具。10. 总结与下一步这个文字弹性入场动画核心就三件事位移关键帧、速度曲线或回弹表达式、运动模糊。先做无表达式的版本理解回弹原理再用表达式版本提高效率最后通过动画预设和批量改字变成可复用的字幕生产线。动手顺序建议是先新建一个 1920x1080 的合成用“主标题”三个字分别试位置位移和缩放位移再把表达式粘贴进去对比效果差异。最容易出现的问题不是表达式写错而是没给位置属性打够关键帧导致表达式没有速度输入自然弹不出来。下一步可以继续扩展的方向包括逐字入场、路径位置动画、拖尾效果、文字颜色渐变切换以及把回弹表达式用在 LOGO 动画上。这套思路在 AE 动态图形里非常通用掌握一次之后很多地方都能套用。