PPT Master 导出的 PPTX 如何开启元素动画并选择 Start mode
【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master
PPT Master 生成的 PPTX 中,元素级对象动画默认是关闭的——每一页作为整页出现,元素不会逐个入场;页面转场默认开启(fade,0.4 秒)。如果你希望导出的幻灯片里元素按点击或按顺序逐个出现,需要在导出命令中显式开启元素动画,并选择 PowerPoint Start 下拉框对应的三种触发模式之一。本文基于 docs/animations.md 与 docs/faq.md 说明完整的操作路径:从全局开启、选择 Start mode,到按对象精细覆盖和导出校验。
前提条件:项目已完成 SVG 页面生成(svg_output/存在)。动画设置属于导出期参数,修改动画配置不需要重新生成幻灯片,直接复用同一份svg_output/重新导出即可;但默认发布导出仍要求存在当前通过的 final SVG 质量报告,没有就先运行最终检查器并解决其 blockers,再重跑svg_to_pptx.py。
第一步:用 -a / --animation 开启元素动画
元素动画由svg_to_pptx.py的-a/--animation控制,页面转场由-t/--transition控制,两者相互独立。开启方式分两类:
- 整份 deck 自动入场:
-a auto无需任何配置文件,效果由 SVG 顶层组的 id 确定性映射(auto、mixed、random三种模式只选择 entrance 效果,不会选择 emphasis、motion path 或 exit)。 - 指定一个规范效果:
--animation <canonical_key>让全 deck 使用同一个入场效果,例如entrance_fade。
# 保持默认(无元素动画,仅页面 fade 转场) python3 skills/ppt-master/scripts/svg_to_pptx.py <project> # 开启自动元素入场 python3 skills/ppt-master/scripts/svg_to_pptx.py <project> -a auto # 全 deck 使用同一个入场效果 python3 skills/ppt-master/scripts/svg_to_pptx.py <project> --animation entrance_fade效果键从哪里来?规范注册表包含 203 个 PowerPoint 原生对象动画预设:53 个entrance_*、33 个emphasis_*、64 个path_*、53 个exit_*。运行下面的命令可以打印完整的分类列表,--describe可以查看某个效果接受哪些选项:
python3 skills/ppt-master/scripts/pptx_animations.py --list python3 skills/ppt-master/scripts/pptx_animations.py --describe entrance_fade元素动画只作用于 SVG 顶层的<g id="...">内容组——每个组是一个 PowerPoint shape-target 锚点,不必然对应 Animation Pane 的一行;背景、Master/Layout 内容、占位符和页面 chrome 保持静态。扁平的 SVG 根(没有顶层组)会回退到至多 8 个可见图元,超过则跳过该页动画。
第二步:选择 Start mode
Start mode 对应 PowerPoint 动画窗格中的 Start 下拉框,通过--animation-trigger全局设置,三个取值及适用场景如下(来自 docs/animations.md):
| Start mode | 行为 | 适合场景 |
|---|---|---|
on-click | 每点击一次出现一个内容组 | 演讲者现场控制节奏的 live 演示 |
with-previous | 所有内容组在页面出现时一起动画 | 一次协调的入场节拍 |
after-previous(默认) | 无需点击、按--animation-stagger间隔顺序级联 | 无人值守播放、走查、带旁白的 deck |
常用组合命令:
# 点击逐条出现(演讲者控制节奏) python3 skills/ppt-master/scripts/svg_to_pptx.py <project> -a auto --animation-trigger on-click # 整页元素同时入场 python3 skills/ppt-master/scripts/svg_to_pptx.py <project> -a auto --animation-trigger with-previous # 默认 after-previous,放缓级联节奏 python3 skills/ppt-master/scripts/svg_to_pptx.py <project> -a auto --animation-duration 0.5 --animation-stagger 0.8两个与 Start mode 相关的硬限制,导出会直接失败而不是静默降级:
--recorded-narration不支持on-click。旁白/视频导出只写页面级计时,不生成对象级点击计时,带旁白的输出必须使用after-previous或with-previous;- 侧车中任何解析为
on-click的行(包括trigger_shape行)同样会被旁白导出拒绝。
时序参数:--animation-duration控制每行的计划时长(默认0.4秒),--animation-stagger提供after-previous模式下相邻普通行之间的默认间隔(默认0.5秒)。可缩放的 native 效果会等比保留内部时间比例,瞬时预设则保持其编写时长。
第三步(可选):在 animations.json 中按对象覆盖
deck 级参数不够时——例如某个对象要"先入场、再移动、再强调、最后退出"——在项目根目录写一个animations.json侧车。它只对受影响的页和对象做稀疏覆盖,未列出的页面继承 deck 级设置;导出命令会自动读取该文件。
侧车针对的是稳定顶层<g id>组,先列出真实锚点再写配置:
python3 skills/ppt-master/scripts/animation_config.py list-groups <project> python3 skills/ppt-master/scripts/animation_config.py scaffold <project> # 可选的中性脚手架 python3 skills/ppt-master/scripts/animation_config.py validate <project> python3 skills/ppt-master/scripts/svg_to_pptx.py <project>下面是一个文档示例,展示同一组上多条动画行、以及单行trigger覆盖幻灯片 Start mode 的写法(文档示例,组名03_threshold、risk-marker对应你项目中真实存在的页和组):
{ "version": 1, "slides": { "03_threshold": { "animation": { "trigger": "after-previous" }, "groups": { "risk-marker": { "effects": [ { "effect": "entrance_fade", "order": 1, "duration": 0.25 }, { "effect": "path_right", "order": 2, "delay": 0.1, "duration": 0.7 }, { "effect": "emphasis_teeter", "order": 3, "trigger": "with-previous", "duration": 0.45 }, { "effect": "exit_fade", "order": 4, "trigger_shape": "details-button", "duration": 0.3 } ] } } } } }关键规则:
- 幻灯片级的
animation.trigger只是继承值,不是命令;每行可以用自己的trigger字段覆盖,得到after-previous/with-previous/on-click混合的节奏; - 已填充的组要么用 legacy 单效果字段,要么用
effects[]数组,二者不可混用,且effects[]必须非空、每行都写明显effect; trigger_shape指向同页另一个顶层组,对应 PowerPoint 的On Click of,它隐含on-click,若该行同时声明trigger则必须是on-click;- 完整字段表(
order、delay、duration、effect_options、repeat/reverse/timing 修饰符、after_effect、sound等)见 pptx-animations.md §8,写带参数的效果前建议先跑pptx_animations.py --describe <effect>确认选项。
验证:validate、导出读回与播放端差异
文档给出的验证是多层级的,按顺序执行:
- 侧车预检:
animation_config.py validate <project>。校验是严格的——未知效果或 Start mode、非法时序值、缺失的 slide/group 引用、试图动画结构性对象,都会直接失败,不会静默改成别的行为; - 导出读回:导出会读回候选 PPTX 并逐页比较每一行的顺序、trigger、shape 目标、解析后的效果元组与行为签名、时长和时间线偏移,不匹配会在输出文件替换旧文件之前失败。成功后终端打印紧凑回执
[POSTFLIGHT] status=<...> quality_gate=<...> slides=<N> ...,常规流程以此回执为准; - 播放端兼容:Microsoft PowerPoint 桌面版是首要验证目标;Keynote、WPS、LibreOffice 和旧版 Office 可能重新映射或忽略个别效果。也就是说,读回校验证明的是 PPTX 内的配置,最终动画效果请在 PowerPoint 中确认。
另外注意输出路由:动画只存在于从svg_output/生成的 native PPTX 中,svg_final/是静态预览,不会携带动画锚点。
限制与不适用场景
- 不支持从分组 SVG 内容推断段落/文本区间 build、自定义自由路径运动轨迹、原生 Chart/SmartArt 的 build 排序或媒体播放命令;
- 直接编辑已有 PPTX 的路由会保留源文件的对象动画(round-trip),不通过本生成模型翻译效果;
- 如果 deck 只需要整份转场或自动翻页(如
--auto-advance 5的无人值守播放),不需要元素动画时保持默认即可,无需为此改动导出参数。
完整的执行契约(锚点规则、Morph 配对、OOXML 读回细节)在 animations.md 执行参考;需要由 AI 调优逐页/逐对象动画时,对应工作流阶段见 customize-animations.md。
【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考