分层动画(合成)
合成是一种由图层构成的动态图形,每个图层的属性都独立设置关键帧。用户可以在合成面板中打开并修改它。当图形可能需要编辑时(例如需要更换名称的下三分之一字幕,或需要重新调整时间的标题),请构建合成。对于无需编辑的一次性图形,使用动态组件或HTML元素即可;convertToComposition 可稍后将动态组件或TSX组件转换为图层。
工作流程
- 查阅资料: 搜索能力,类型
workflows,IDcompositions查看约定;使用get_command_schema(MCP)或searchCatalogue(类型commands,IDeditComposition)查看每种操作。 - 从小处着手: 使用
addComposition添加所需图层,尺寸以合成像素为单位。为每个图层赋予描述性名称(例如“名称”、“角色”、“条”):用户在面板中阅读这些名称,表达式也通过它们查找图层。 - 逐属性添加关键帧动画。 关键帧的缓动决定了进入该关键帧的运动形态。入场使用
easeOutCubic,出场使用easeInCubic,入场时长保持在0.4至0.6秒之间。 - 在下次编辑前回读结果(
get_project:clips[].composition),以便操作引用正确的图层、动画器、路径和效果ID。 - 在说完“完成”之前,请查看入场、保持和出场阶段的每一帧画面。
哪种效果使用哪个工具
- 文字逐字出现: 使用文字动画器,而非在多个文字图层上设置关键帧。
textPreset中,typewriter适用于代码或朗读的旁白,wordPop适用于冲击性标题,lineRise用于平静的标题,fadeByChar用于优雅的揭示。如果都不符合,可使用setAnimator自行编写(单元、形状、范围)。 - 形状的擦除或揭示: 使用宽度或点设置了关键帧的遮罩;或者当揭示跟随另一个图层的形状时,可使用轨道蒙版。
- 线条自行绘制(下划线、围绕文字的圆圈、箭头):使用带有描边和修剪路径的形状图层,将
trimEnd从0到100设置关键帧。圆头端点呈现为绘制感,平头端点则呈现为切割感。 - 形状变形为另一个形状: 对路径的点设置关键帧;每个关键帧必须具有相同数量的点。
- 持续运动的效果(轻柔浮动、脉冲):使用表达式(
value + wiggle(1, 6)或loopOut("pingpong"))代替数十个关键帧。保持wiggle幅度较小:几个像素表现为有生命,几十个像素则呈现为故障。 - 一个图层跟随另一个图层: 使用读取它的表达式(
layer("Bar").x),这样后续对主导图层的编辑将自动跟随。 - 深度与最终效果: 效果堆栈(投影、发光、描边、颜色或渐变填充、模糊)。每个图形一个投影,柔和且位置低;仅在亮色背景上的暗色文字使用发光。
- 重复或可复用的模块(例如使用三次的姓名标签):将其预合成,并将预合成放置三次,每次设置不同的时间偏移。
一个下三分之一字幕的图层示例
- 一个条形(矩形,品牌色),带有矩形遮罩,其宽度在0.5秒内从0关键帧到完整,使用
easeOutCubic。 - 在其上方放置名称(文字、粗体),使用
textPreset的lineRise,延迟0.15秒开始;角色(文字、更轻、更小)再延迟0.1秒使用fadeByChar。 - 保持至少2.5秒;通过将组的不透明度设为关键帧,或将条形遮罩在0.3秒内恢复为0,使用
easeInCubic来退出。 - 将其放置在底部安全区内,避免与字幕重叠。
注意事项
- 对已设置关键帧的属性使用
setProps需要提供time:它将在该时间点设置关键帧。不提供时间会被拒绝(因为基准值不会显示)。 - 锁定的图层会拒绝所有编辑,直到
setLayer { locked: false }。 - 轨道蒙版使用正上方的图层;重新排序会改变配对关系。
- 表达式是一种小型语言:名称
time、value、index、duration以及列出的函数。其他内容都会被拒绝并附带列表。 - 修剪和描边应用于形状的描边,而非填充。
相关技能:motion-graphics, titles, text-led-video。专家:motion-designer。