mcpField
L
layer-motion-graphics

layer-motion-graphics

github.com/layerai其他70 次安装今天更新
代码仓库

关于 layer-motion-graphics

Layer 的动态图形技能指导如何组合视频生成与时间线编辑,适用于制作品牌标识动画和动态文字。它强调用固定帧保留标识,并通过时间线文本与转场控制文字。

主要功能

  1. 01用首尾帧制作标识揭示动画
  2. 02以同一标识帧生成循环动画
  3. 03通过时间线文本设置精确文案
  4. 04用转场和分段文本安排动效
  5. 05用遮罩与色块构建画面

适用场景

  1. 01制作品牌标识揭示片段
  2. 02制作循环播放的标识动画
  3. 03添加标题、字幕条和行动号召
  4. 04按节拍制作逐词动态排版

MCP 相关

该技能描述通过 Layer 工具执行生成与时间线渲染,包括选择模型、估价、提交任务及轮询结果。

安装

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

$npx skills add https://github.com/layerai/skills --skill layer-motion-graphics

安装后在 Claude Code 中输入/layer-motion-graphics确认已加载。

详细介绍

Layer 动态图形

概述

Layer 上的动态图形分为两项不能混为一谈的工作。会动的画面(徽标组装成形、徽章映上光线)通过视频模型生成。文字则绝不生成:视频模型会拼错文字、无法使用字体文件,而且文字会在帧间漂移。文字应作为 render_video_timeline 编辑中的文本项添加,并使用品牌字体。

生成机制见 layer 技能,动态提示词编写见 layer-video。时间线组装基础知识(剪辑、安全区域、音频长度)见 layer-video-timeline,静帧上的精确文字见 layer-typography。将同一动态设计复用于多种变体,见 layer-motion-templates;共享的颜色和纹理效果见 layer-video-looks。

如果当前可用技能中缺少此处提到的同级技能,请让用户安装该技能(npx skills add layerai/skills --skill <name>);若无法等待,请根据工具架构继续操作,并指出这一缺口。

快速参考

工作方案
徽标揭示image_to_video,将精确徽标设为 last_frame,将抽象或空白画面设为 first_frame
闲置徽标循环image_to_video,将徽标同时设为 first_frame 和 last_frame,并使用 loop 能力
标题、下三分之一字幕、CTA使用带 font_file_id 的时间线 text 项,绝不写在提示词中
文字进入或离开项目之间的转场:slide、wipe、iris、clockWipe、flip、fade
逐词动态排版连续的 text 项,每项一个词或短语,并通过 start_frame 逐步安排
图像形状揭示在 image 或 video 项上使用 mask:circle、ellipse-horizontal、ellipse-vertical
文字背景画面在文字下方放置 solid 项,或设置文本项自身的 background_color

揭示与循环:生成画面,固定帧

揭示效果取决于最后一帧,也就是观众读取画面的那一帧。使用 filter.use_case: "image_to_video" 和 filter.guidance_file_types: ["first_frame", "last_frame"] 筛选 list_base_models,取第一个结果,并调用 get_base_model 查看其时长和触发词。将精确的徽标文件设为 last_frame,这样落版帧呈现的就是作品本身,而不是模型对它的记忆。first_frame 是揭示效果的起点:可以是品牌色的空白画面、抽象形状或粒子,可从现有静帧生成,也可运行一次 text_to_image(layer-image)生成;使用 width 和 height 将尺寸设为与揭示效果的画面一致。提示词只描述转场(“金色碎片汇聚并锁定成徽章,最后一道光扫过其表面”),绝不描述徽标上的字母。

render_video_timeline 接受 {workspace_id, template, videos, images, audios}。template 的结构为 {width, height, fps, tracks: [{id, name, items, transitions}]};一个项的结构为 {id, type, start_frame, duration_in_frames},另加 file_id 或 slot,还可包含 layout {left, top, width, height}、effects、用于裁剪片段开头的 start_from_in_seconds 和 volume;solid 项接受 color {red, green, blue, alpha}。渲染会返回供 get_generation_run 使用的 generation_id。

闲置循环应将徽标同时设为 first_frame 和 last_frame,并使用具备 loop 能力的模型,以确保片段重复播放时不会跳变。动作幅度应保持较小(例如呼吸般的光晕、缓慢移动的轮廓光),使标记始终不超出自身轮廓。

若片头动画必须卡在节拍上,请在使用 fixed_duration: true 筛选出的模型上设置 duration_seconds。使用相同的文件调用 estimate_forge_price 估算价格,然后执行并以 poll_interval_seconds 为间隔轮询 get_forge_run。

类型:设置后,再通过剪辑移动

时间线中的 text 项接受 text、font_file_id(上传的 .ttf 或 .otf;使用 request_file_upload_url 上传本地字体)或 font_family、font_size、font_weight、letter_spacing、 line_height、text_align、color、stroke({color, width})、shadow({color, x, y, blur})、 background_color,以及以合成像素为单位的 layout 框 {left, top, width, height}。

时间线没有关键帧。项目的位置、不透明度和效果在整个时长内保持不变。 运动只有两个来源:

  • 转场:添加到轨道的 transitions 中,每项包含 {id, type, from_item_id, to_item_id, duration_in_frames, easing};对于 slide、wipe 和 flip,还可设置 direction(from-left、from-right、 from-top、from-bottom)。easing: "spring" 会产生显得经过设计的过冲效果;入场适合使用 ease-out,退场适合使用 ease-in。转场会连接同一轨道上的两个相邻项目,因此,标题要滑入时,需要在它前面放一个 solid 或看起来为空的项目。
  • 阶梯式项目。动感文字由同一轨道上的一系列 text 项组成,每项为一个词或短语,按 start_frame 紧接排列,彼此不重叠。节拍上的硬切能呈现韵律感;项目之间的短暂 fade 或 wipe 则显得流畅。

任何必须连续滑动的效果(标题缓慢推进、光线扫过文字)都应使用生成的视频片段,而非时间线效果:先将文字行通过 render_text 渲染为图像, 然后将静帧作为 image_to_video 的首尾帧,并使用“仅光线扫过,字母保持不变”的提示词制作动画,再逐帧检查是否发生扭曲。说明这一限制,而不要承诺可以通过关键帧移动。

阅读时间与摆放

标题的显示时长至少要达到大声朗读两遍所需的时间,并根据模板的 fps 换算为帧数。人物在画面中时,下三分之一字幕应一直显示。让文字 和 Logo 与画面边缘保持足够距离,因为社交平台播放器会在画面顶部和底部叠加自己的 UI;应查阅平台当前的安全区域规范,而不要猜测边距。轨道按 相反顺序合成:Track 1 位于最上层,因此文字放在第一条轨道上,色板放在它下方。

示例

“为我们的预告片制作一个 4 秒的 Logo 短片,接着显示标注工作室名称的下三分之一字幕。”

  1. Logo PNG 和品牌字体都在用户的机器上:使用 request_file_upload_url 上传两者。
  2. 使用 filter.use_case: "image_to_video"、 filter.guidance_file_types: ["first_frame", "last_frame"] 和 filter.capabilities: {fixed_duration: true} 调用 list_base_models。选择第一个结果;调用 get_base_model 查询其 时长。
  3. 调用 estimate_forge_price,将深色品牌色板设为 first_frame,将 Logo 设为 last_frame, 设置 duration_seconds: 4,并使用提示词“余烬向内飘动并融合成徽记,最后半秒有一道光扫过徽记,摄像机固定”。超过 20 CU 时,先征求确认。
  4. 调用 execute_forge,轮询 get_forge_run,并逐一将每个输出的最后一帧与 Logo 文件对比。任何更改了标记的输出都应拒绝。
  5. 时间线设为 30 fps:Track 1 显示一个 solid(8 帧),然后显示品牌字体的 text 项“Studio Name”, 两者之间使用 slide 转场,设置 direction: "from-left"、easing: "spring"、 duration_in_frames: 12。Track 2 显示短片视频项目。
  6. 使用该模板调用 estimate_video_timeline_price;然后使用相同参数调用 render_video_timeline,并轮询 get_generation_run。从头到尾观看成片。

常见错误

  • 将 Logo 名称或字母作为提示词输入视频模型,而不是将 Logo 固定为 last_frame。
  • 将标题、副标题或 CTA 文案生成为视频,而不是将其设为文本项。
  • 期望在一个时间轴项上设置关键帧幻灯片或缩放;运动应通过转场或分步项实现。
  • 转场轨道上只有一个项,因此没有可供转场的内容。
  • 在同一轨道上重叠项目,而不是将它们叠放在不同轨道上。
  • 标题在观众还没来得及读两遍前就被切掉,或位于平台安全区域之外。
  • Logo 循环动画幅度过大,破坏了标志的轮廓。

评论

支持 Markdown