mirror of
https://github.com/Hommy-master/capcut-mate.git
synced 2026-10-31 19:55:40 +08:00
气泡在剪映数据模型里是第三种文字效果:素材是 materials.effects 中一条 type="text_shape" 的条目,由文本片段的 extra_material_refs 引用(追加在 sticker_animation 之后)。与花字同在 extra_material_refs 且互斥;与文字模板 不同,它不改片段的 material_id,也不重置文字样式。 气泡1 对照样本揭示的关键结构:气泡的 effect_id 与 resource_id 不是同一个值 (草稿中 effect_id="716434"、resource_id="6821385652727190024"),两者缺一剪映 就定位不到资源。因此参数取值支持名称、resource_id、effect_id,以及清单外的 "effect_id:resource_id" 显式 ID 对;纯数字不做透传(无法补全另一半),按未找到 处理并回退普通字幕。清单见 config/bubble.json,id 为 resource_id、effect_id 单独给出(与 text_template.json 里 id 兼作 effect_id 的约定不同)。 优先级 文字模板 > 气泡 > 花字:气泡与花字同属文字效果且互斥,气泡优先并告警; 模板掌管片段素材身份,优先级更高,模板生效时不处理气泡。气泡只提供文字底下的 装饰底板,不像花字那样重置 text_color/border_color/has_shadow——这点由草稿实证: 两条字幕(普通/带气泡)的样式字段完全一致。 气泡素材的名称/分类字段改为已知时写入、未知时保持最小结构,故 TextBubble 原 有的最小导出不变;add_bubble 新增 name/category_id/category_name/extra_material 四个可选关键字参数,extra_material 用于原样覆写本机缓存 path 等本服务无从得知 的字段(与 TextTemplateRef 的设计一致)。 清单目前只收录气泡1 草稿实证过的 1 个气泡,其余气泡靠显式 ID 对传入。速创小助手 的气泡页虽有 326 个气泡的名称与预览图(其名称即剪映气泡名,草稿里的「背景装饰54」 正在其中),但不提供 effect_id/resource_id(该站「特效」页才提供 id 对),故无法 直接批量导入,补齐 id 需在剪映「气泡」面板逐个确认。 未使用气泡时行为零变化:已用 HEAD 代码与改动后代码生成同一批普通字幕草稿(含 关键词高亮/描边/阴影/动画/样式/字体/花字/文字模板)做 UUID 归一化比对,12 个 用例逐字节一致。新增 tests/test_add_captions_text_bubble.py 14 项;字幕回归 套件 53 项通过。 已知限制:气泡素材的 path/request_id 等取决于创建者本机剪映缓存,本服务不导出, 由剪映按 effect_id/resource_id 自行拉取(花字即如此工作,但两者是不同素材类型与 渲染路径,属推断而非实测)。 Co-Authored-By: Claude Code <noreply@anthropic.com>
4 lines
138 B
JSON
4 lines
138 B
JSON
[
|
|
{"id": "6821385652727190024", "effect_id": "716434", "title": "背景装饰54", "category_id": "bubble", "category_name": "气泡"}
|
|
]
|