首页 / 全部技能 / 内容创作 / lower-thirds
内容创作 · iart-ai/tiktok-video-skills

lower-thirds

This skill should be used when the user asks to "make an animated lower third", "add lower thirds", "create a name tag/name lower third", "build broadcast titles", "animate a title/name/role caption", "do a speaker name overlay", or "template lower thirds across a list of names". Covers enter/exit animation (slide/wipe/mask reveal), in/out timing & dwell, safe-area & broadcast conventions, name-vs-role type hierarchy, brand styling, and rendering one design across many names.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 iart-aiGitHub iart-ai/tiktok-video-skills ↗Stars 11许可 MIT(仓库根 LICENSE 为 "MIT License / Copyright (c) 2026 iart.ai";GitHub API spdx_id = MIT;.claude-plugin/plugin.json 亦声明 "license": "MIT")commit 2a775336b5
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

把构件解剖成「两行文本 + 图形底床」三个元素(name / role / bar),并硬性限制为两行。

skills/lower-thirds/SKILL.md
Keep it to two lines. A name line + role line is the whole job — extra lines erode the hierarchy and crowd the safe area.
注:这里在做什么:先定构件上限,再谈动画——层级只有两行时才可能一眼可读;这也是与「通用标题卡」的分界线。

防廉价的第一条:标题绝不允许硬切进出。

skills/lower-thirds/SKILL.md
1. **Never hard-cut a title on or off.** A bare appear/disappear reads as a mistake. Even a 12-frame fade or slide makes it feel produced.
注:这里在做什么:把「有没有动画」设为最低门槛,并给出最低成本做法(12 帧淡入/滑动),避免 agent 省掉出入场。

第二条:错峰出场——bar → name → role,每个元素错开 3–6 帧。

skills/lower-thirds/SKILL.md
**Stagger, don't slam.** Animate the bar first, then the name, then the role, each offset by 3–6 frames.
注:这里在做什么:把「高级感」拆成一个可执行参数(错帧量);reference 的 Remotion 组件正是按此顺序编排 spring。

用帧预算(而非感觉)规定三段时序:入场 12–18f、停留 90–150f、出场 8–12f,且出场更快。

skills/lower-thirds/SKILL.md
| Exit | 8–12f (0.27–0.4s) | Faster than enter |
注:这里在做什么:把停留时长也纳入设计(3–5 秒=能默读两遍),避免标题「闪一下」或「赖着不走」;出场比入场快是刻意的非对称缓动。

安全区按画幅分别给定;竖屏 9:16 的要求是把条带整体抬高,而不是贴着底部。

skills/lower-thirds/SKILL.md
| 9:16 (1080×1920) | Same left margin; **lift the band up** | Bottom ~18% (captions/UI), top ~12% |
注:这里在做什么:跨平台 UI 会压住底部(字幕/按钮),所以同一设计在竖屏必须上移;这是「一稿多画幅」最容易出错的一点。

层级靠字号对比兜底:name 至少是 role 的 1.6 倍,拿不准就把 name 加大而不是把 role 缩小。

skills/lower-thirds/SKILL.md
**Size contrast** ≥ 1.6× (name vs role).
注:这里在做什么:把「层级」量化为一个比值,并给出唯一的安全方向;配合单色 brand accent 与左锚定,构成品牌一致性的最小集合。

可模板化是这套代码的根本理由:name/role/theme 必须是 props,roster 逐行 --props 渲染成多条独立片。

skills/lower-thirds/SKILL.md
In a renderer, make the roster an input prop and render once per row (`--props`) to emit one branded clip per person
注:这里在做什么:把「一个人一条片」批量化——同一动画与品牌、只换文本;reference 还给出 jq 驱动 roster.json 的批量脚本与透明输出编码建议。

验证针对「三相位 + 批次」设计:先验一行再批渲染,且出场帧必须看到部分揭示(证明动画真的在跑)。

skills/lower-thirds/SKILL.md
**Batch roster**: verify ONE row via stills *before* rendering all names — catch a layout/overflow bug once, not N times.
注:这里在做什么:把「批量前先验一行」写成纪律,避免同一个人名溢出问题被渲染 N 次;判据仍是人读静帧。

2核心能力

01三种出入场动效语言:slide+fade(默认)、wipe bar(广电风)、mask reveal(clip-path 逐字揭开,无插件)
02入/停留/出三段的帧预算与非对称缓动(入场 ease-out、出场更快)
03跨画幅安全区约定(16:9 / 9:16 / 1:1)与 title-safe 边距、左锚定生长
04品牌锁定:font / accent / bar / radius / margin 收进单个 theme 对象,一次改动全片一致
05roster → 多实例(Series 顺排)与逐行 --props 批量渲染;透明叠加输出(prores 4444 / PNG 序列)
06零依赖 CSS/HTML 版本(含 wipe-bar 变体),供没有 Remotion 的运行环境使用
07交付-验证回路:enter / dwell / exit 三张静帧 + contact-sheet 拼图 + probe-mp4 断言竖屏规格

3外部依赖

类型依赖
clinpx remotion still / render / compositions
cliscripts/contact-sheet.sh + scripts/probe-mp4.sh(仓库根共享验证工具箱,SKILL.md 明列)
clijq + ffmpeg/prores 编码(reference 的 roster 批量脚本与透明输出)
packageffmpeg / ffprobe(系统依赖)

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • 批量段的数据→文件名未净化 — reference 的 jq 循环用 name 派生 slug 作输出文件名,未剥离路径分隔符;恶意的/异常的 roster 数据(例如从 CSV/LLM 生成)可让写入落在 out/ 之外。批量前应自行校验 name,或改用索引命名。
  • 验收全靠人读静帧,无自动断言 — 「层级是否成立、品牌是否正确、是否溢出」都由 agent 读 PNG 判断;skill 与脚本都没有对字体缺失、文字溢出、对比度不足的自动检查(probe-mp4 只验成片规格)。批量 N 条时这一步是唯一防线。
  • 字体与 logo 资产由用户提供,许可与缺失无人兜底 — BRAND 里 font/logo/audio 均为用户自备(reference 示例仅写 "Inter, system-ui, sans-serif");商用字体授权与资产缺失(静帧里表现为 fallback 字体)都需用户自负,skill 不校验。
  • 跨画幅复用易踩坑,仅靠表格与媒体查询提示 — 同一设计要从 16:9 挪到 9:16 需改基线(0.80→0.70)与安全区;SKILL.md 给了表,但没有可切换的多画幅注册示例,agent 需自行处理,容易忘记抬高条带。
  • 只装单个 skill 目录会让 scripts/ 引用悬空 — SKILL.md 以相对路径调用仓库根 scripts/contact-sheet.sh 与 probe-mp4.sh;只拷贝 skills/lower-thirds 的安装方式会得到不存在的路径,验证回路失效。
风险提醒:蓝色,知晓即可。三段自证:① 判级对象=skills/lower-thirds/(find 确认只有 SKILL.md、README.md、references/lower-third-component.md 三个 .md,零脚本、零资产);② 目录内自身行为=本地写入(Remotion 工程、out/*.mp4、静帧、sheet.png)+本地 CLI(`npx remotion`;ffmpeg/ffprobe 经仓库根 scripts/;reference 批量段另用 jq/tr),skills/ 全域 `process.env` / `api[_-]?key` / `token` / `cookie` / `https?://` 均 0 命中;③ 唯一网络面是 npm 官方渠道取包(remotion / @remotion/*),与站内蓝档先例(hyperframes、general-video、motion-background)同口径。不升黄:无固定公开端点查询、无抓取、无官方 CLI 的 update/check 行为。不升橙:零凭据/环境变量读取、零素材外发(无音频/图像上行,全部本地文件)。非红档:无 TLS 降级、无沙箱关闭、无反自动化绕过、无任意代码执行面。需另记(不改档)的两点见 injection_surface 与 verdict.risks:reference 批量脚本的文件名派生未净化;品牌字体/资产由用户提供,字体许可需用户自负。

5第二遍独立确认

  • [ok] SKILL.md 的三条「防廉价规则」是否真在 reference 组件里被实现(防第一遍只读散文) — reference §1 明写 "Enter staggers the bar, name, then role; exit is computed from the end of the clip so the title leaves faster than it arrived.",组件导入 `Sequence, interpolate, spring, useCurrentFrame, useVideoConfig`,Theme 类型与 BRAND 对象齐备(font/bar/name/role/radius/marginPct)。规则 → 代码可逐条对应,非空头承诺。
  • [discrepancy] reference 批量脚本的文件名派生是否会越出输出目录(第一遍遗漏的面) — 原文:`slug=$(echo "$row" | jq -r '.name' | tr '[:upper:] ' '[:lower:]-')` 紧接 `npx remotion render LowerThird "out/${slug}.mp4" --props="$row"`。tr 只做大小写与空格到连字符的映射,不剥离 `/`、`..`、前导 `-` 等字符;若 roster 的 name 含路径分隔符,输出路径可越出 out/。这是数据→文件名的注入面,仅影响本地写入位置,不构成权限提升;SKILL.md 正文未把它写成安全事项。属对 pin commit 有效的真实出入(脚本可改进,非虚假声明)。
  • [ok] 「9:16 抬高档位」是否在代码里有对应实现(不只是表格建议) — reference 的 Quick reference 表给出「9:16 placement | `baseline 0.80→0.70` / the media query」,说明竖屏不是靠新组件,而是同一组件换基线/媒体查询;与 SKILL.md「lift the band up」一致。
  • [unlocatable] 「3–5s 停留」「≥1.6× 字号对比」这类经验值是否有出处 — SKILL.md 写 "Roughly 3–5s on screen (read it aloud twice)." 与 "**Size contrast** ≥ 1.6×",仓库内无测量脚本、无引用来源、无 A/B 数据;属经验判据,不作为已核事实,仅记为文档建议。
  • [ok] 跨包共享脚本与「Packaged helper」引用是否真实存在(防悬空引用) — SKILL.md 只点名 scripts/contact-sheet.sh 与 scripts/probe-mp4.sh;两者在仓库根真实存在且可执行(-rwxr-xr-x),三仓库逐字节相同(contact-sheet.sh md5 b7dcc28034c9bf8fda5d48683e54d8b5、probe-mp4.sh 167b7977c50f492014e1a6fef8c9ed12)。seek-shot.sh 未被本 skill 点名,不构成悬空引用。
  • [ok] 透明叠加输出建议是否是真实可用的编码路径 — reference 给的是 Remotion CLI 自身的参数(`--codec=prores --prores-profile=4444` 或 `--image-format=png`),属该工具既有能力,非虚构 flag;能否落地取决于用户环境的 prores 支持,但命令形式正确。

6结论

  • 把「克制」变成可执行约束:两行上限、单色 accent、只在首尾动、左锚定生长——审美判断被翻译成参数
  • 动画被拆成可校对的帧预算(入场 12–18f、停留 90–150f、出场 8–12f)与错峰顺序,避免「一起砸上来」的廉价感
  • 模板化是核心价值:name/role/theme 全为 props,一次设计渲染整个 roster,且明确要求批量前先验一行
  • 双栈交付(Remotion 组件 + 零依赖 CSS/HTML 含 wipe-bar 变体),并给出透明叠加(prores 4444 / PNG 序列)路线,能直接进后期合成
  • 竖屏 9:16 的处理有明确规则(把条带抬高、避开底部 ~18% 与顶部 ~12%),而非把 16:9 版式直接裁切
  • 适合:适合:访谈/播客/网络研讨会的嘉宾名牌、面板名单、广电风格标题条,以及「一次设计、多个名字」的批量生产(12 人面板一次出 12 条片);也适合要把名牌做成透明叠加层交给后期合成的项目。适合愿意先出三张静帧确认层级与安全区、再批量渲染的用户。
    不适合:不适合:① 需要多行信息(职位+公司+社交账号+二维码)的长名牌——本 skill 明确只做两行;② 需要实时切换/可交互名牌的场景(交付是渲染片);③ 要求 100% 自动化质检、不接受人读静帧的流水线;④ 需要复杂排版特效(3D 翻转、逐字路径动画)的高端包装——本 skill 的动效语言刻意克制(slide/wipe/mask 三种);⑤ 只拷贝单个 skill 目录而不含仓库根 scripts/ 的安装方式。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 lower-thirds.tar.gz
    sha256: 5b146268b6b14b5c…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 2a775336b5;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库iart-ai / iart-ai/tiktok-video-skills
    Stars11
    最近推送2026-06-22
    本 skill commit2a775336b5
    许可MIT(仓库根 LICENSE 为 "MIT License / Copyright (c) 2026 iart.ai";GitHub API spdx_id = MIT;.claude-plugin/plugin.json 亦声明 "license": "MIT")
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近