AI 技能人工智能【免费下载链接】ppt-masterAI 把任意文档生成真正可编辑的 PowerPoint —— 原生形状与动画、演讲者备注可合成音频旁白、还能参考你自己的 .pptx 模板,而不是一张张图片 · 何雨果出品项目地址https://gitcode.com/hugohe3/ppt-master点击查看免费下载video_motion_plan.py是 PPT Master 动画到视频交付链路上的关键一环它把一次已解析的 SVG-to-PPTX 转换追踪resolved conversion trace转化为渲染器无关renderer-neutral的运动计划motion plan充当项目规范动画与任意 SVG 原生或后期视频渲染器之间的交接契约。本文讲解如何生成解析源追踪、构建运动计划以及计划中效果映射、输出 Schema、强度策略与锁定项locks的完整约束帮助读者在自己的 PPT Master 工作流中把每页动画无损地交付给视频渲染端。1. 为什么需要一个独立的运动计划层PPT Master 的动画编排链路中animations.json/narration_animations.json等侧车文件sidecar是编排阶段的输入其中可能仍包含继承值、auto时序模式、mixed/random效果选择以及相对旁白的时间偏移。如果视频渲染端直接读取这些原始侧车并把动画简单退化成一组 delay 值那么方向、顺序、效果语义都会失真。规划器存在的意义正是防止视频路径把动画降级为延迟值。它只接受一次已解析的转换追踪--conversion-trace导出因为追踪里已经包含了经过侧车继承与旁白同步之后最终确定的对象目标与 SVG group id效果effect与方向direction元组行顺序row order时长、绝对偏移offset页面推进slide advance原生对象边界native object bounds以 EMU 为单位。相关证据见 pptx-animations.md文档明确写道转换追踪也是下游视频运动的权威输入video_motion_plan.py保留已解析的效果/选项、方向、行顺序、基础与重复感知的播放时长、绝对偏移、对象边界与旁白推导的页面推进仅额外添加渲染器专属的增强参数。2. 第一步生成已解析的源追踪对于带旁白narrated的 deck必须从旁白导出生成追踪这样其中的偏移量与页面推进才会包含最终的音频时序。使用svg_to_pptx.py的--conversion-trace选项python3 skills/ppt-master/scripts/svg_to_pptx.py project_path \ --recorded-narration audio \ --conversion-trace \ -o project_path/validation/video_motion_source.pptx关于--conversion-trace的路径规则见 svg-pipeline.md不带路径时写入validation/output_stem.trace.json带显式路径--conversion-trace path时尊重显式目的地且相对路径从项目根目录解析因此exports/name.trace.json这类目标也能按要求写出。关于--recorded-narration audio的语义见 narration.md 与 cli.py每页必须有一份m4a/mp3/wav音频与之匹配且ffprobe必须能读取每份时长输出写入exports/project_name_timestamp_narrated.pptx会为页面设置从音频时长推导的自动推进slide auto-advance这正是后续视频导出可用录制的计时与旁白的原因拒绝on-click对象动画必须改用after-previous或with-previous旁白导出会保留演讲者备注并嵌入匹配的音频文件。转换追踪文件本身的结构见 builder.py为顶层对象output生成的 PPTX 路径、slide_count、project_contract.modestrict或strict-after-dangerous-normalization以及slides[]数组——每一页含slide_num、svg路径、animation摘要含rows[]、events[]含shape_id与bounds_emu、motion过渡与推进等。2.1 第二步构建运动计划python3 skills/ppt-master/scripts/video_motion_plan.py \ project_path/validation/video_motion_source.trace.json \ -o project_path/validation/video_motion_plan.json \ --style adaptive \ --forceCLI 完整参数源码见 video_motion_plan.py参数默认值说明trace位置参数必填指向validation/output_stem.trace.json-o/--outputtrace.video-motion.json输出 JSON 路径缺省时取追踪路径并替换后缀为.video-motion.json--styleadaptive视频增强强度可选adaptive/restrained/dynamic--default-slide-duration5.0秒无录制推进计时页面使用的回退时长--force关闭输出已存在时覆盖否则抛出FileExistsError并以退出码 1 结束运行成功时标准输出打印写入的 JSON 路径stderr 打印统计Slides: N; objects: N; video-enhanced: N其中video-enhanced统计的是 family 不是hard_reveal即真正获得了增强参数的对象数见 video_motion_plan.py。2.2 强度策略adaptive/restrained/dynamicrestrained与dynamic是显式的强度备选adaptive是默认值它会根据页面角色page role、动画对象数量与对象面积动态调节增强强度。三档风格对应基础倍率源码常量_STYLE_MULTIPLIERS见 video_motion_plan.py风格基础倍率adaptive1.0restrained0.72dynamic1.28adaptive的调节规则见_adaptive_multipliervideo_motion_plan.py页面角色为cover/hero/closing/section时倍率 ×1.08重点页面更有张力动画对象数 5时 ×0.82对象多时收敛避免画面过噪恰好 1 个对象时 ×1.06单体聚焦对象面积占画布比例 0.42时 ×0.78大面积对象移动已足够明显0 area 0.10时 ×1.08小对象需要更明显的位移最终夹在[0.55, 1.45]区间内。该倍率随后参与几乎全部视频参数的缩放模糊半径blur_px、位移travel_canvas_ratio、起始缩放scale_from、羽化mask_feather_px、过冲overshoot、运动模糊motion_blur、颗粒grain等全部按round(value * multiplier, N)的形式生成保证三档风格共享同一套确定性策略、只有强度差异。3. 权威性与锁定视频层能优化什么、不能改什么运动计划是语义交接而非自由发挥的画布。下游渲染器必须原样保留对象身份与 SVG group idobject_identity对象顺序object_order源效果source_effect语义方向semantic_direction已解析的开始时间与页面时序锚点timing_anchor。这些锁定项会直接写入输出计划的locks字段见 video_motion_plan.py全部为true。视频层只能优化声明在optimizer_scope中的参数video_motion_plan.py[ easing, travel_distance, opacity, scale, mask_feather, blur, motion_blur, overshoot ]这些加分项可以让运动更具电影感但不允许重写演示的编舞choreography。硬性规则不要直接从原始animations.json或narration_animations.json推导视频计划。原始侧车可能仍包含继承、auto、时序模式或旁白相对值必须始终使用已解析的转换追踪。这条约束同时出现在 pptx-animations.md 与 animations.md渲染器必须消费video_motion_plan.py输出的已解析计划绝不绕过回读结果、仅凭侧车 delay 值推断运动。4. 效果映射从 PowerPoint 规范效果到视频运动族每个对象保留source_effect并映射到一组兼容的视频 family映射表原文见 video-motion-plan.md源效果PowerPoint 规范键视频族entrance_appearhard_revealentrance_fadesoft_fadeentrance_dissolvegrain_dissolveentrance_fly、entrance_ascenddirectional_slideentrance_wipe、entrance_peeksoft_mask_revealentrance_zoom、entrance_expand、entrance_stretchfocus_scaleentrance_splitsplit_maskentrance_box、entrance_circle、entrance_diamond、entrance_plusshape_maskentrance_blinds、entrance_checkerboard、entrance_random_bars、entrance_strips、entrance_wedge、entrance_wheelpattern_revealentrance_swivelsoft_swivel这份映射是增强契约不是替换成无关效果的许可方向性滑动仍是方向性滑动擦除仍是遮罩揭示。较旧的追踪里仍可读退休的短效果名如fly、wipe_down但新追踪一律记录规范的 PowerPoint 键entrance_*。源码中短名→规范键的兼容别名表见_VIDEO_EFFECT_ALIASESvideo_motion_plan.py且内部实现既接受规范键也接受短名。4.1 每个视频族的具体参数源码级细节每个对象的video对象由_video_effect生成video_motion_plan.py公共字段为{ easing: ease_out_cubic, opacity_from: 0.0, scale_from: 1.0, travel_canvas_ratio: [0.0, 0.0], blur_px: 0.0, overshoot: 0.0, mask_feather_px: 0.0, motion_blur: 0.0 }不同族的专属参数hard_revealappearopacity_from保持 1.0、easing改为step_end即硬切无过渡soft_fadefadescale_from从1 - 0.008*multiplier起blur_px为3.0*multipliergrain_dissolvedissolve在 fade 基础上增加grain颗粒0.26*multiplierdirectional_slidefly/ascend/cuttravel_canvas_ratio按方向生成位移幅值0.045*multiplier叠加blur_px、overshoot与motion_blursoft_mask_revealwipe/peek位移幅值0.012*multiplier、mask_feather_px为18.0*multiplierfocus_scalezoom/expand/stretchscale_from从1 - 0.055*multiplier起 overshootsplit_masksplitmask_axis固定vertical、羽化12.0*multipliershape_maskbox/circle/diamond/pluspattern记录原始效果、scale_from与羽化10.0*multiplierpattern_revealblinds/checkerboard/random_bars/strips/wedge/wheelpattern记录效果、羽化8.0*multipliersoft_swivelswivel增加rotation_from_deg-4.0*multiplier度。方向解析_direction_for_effectvideo_motion_plan.py按优先级effect_options.direction下划线转连字符→ 效果别名内置方向如fly→down、fly_top→up、wipe_up→up、peek→down→ 从滤镜名filter_name中正则提取的(TopLeft|Top|Bottom|Right|…)方位词。随后_travel_vectorvideo_motion_plan.py把方向换算成画布相对位移向量对角方向取 0.72 系数。若最终无法解析方向位移回退为零向量。5. 输出契约ppt-master.video-motion-plan.v1输出 JSON 的 Schema 为ppt-master.video-motion-plan.v1常量VIDEO_MOTION_SCHEMA见 video_motion_plan.py顶层结构如下video_motion_plan.py{ schema: ppt-master.video-motion-plan.v1, source_trace: 绝对路径, source_pptx: 生成该追踪的 PPTX 路径, style: adaptive, locks: { object_identity: true, object_order: true, semantic_direction: true, timing_anchor: true, source_effect: true }, optimizer_scope: [easing, travel_distance, opacity, scale, mask_feather, blur, motion_blur, overshoot], slide_count: 0, object_count: 0, enhanced_object_count: 0, slides: [] }每个页面slide记录SVG 源路径与画布尺寸svg、canvas_emu由源 SVG 的viewBox解析按1px 9525 EMU换算见 video_motion_plan.py页面角色page_role页面时长duration_ms及其来源duration_source有录制推进advance_after_ms 0时取max(advance, 内容结束时间)并标记recorded-advance否则取max(默认 5 秒, 内容结束 750ms)并标记default-holdvideo_motion_plan.py已解析的过渡transition按顺序排列的动画对象objects[]。每个对象object记录video_motion_plan.pygroup_id缺失时回退为shape-shape_id、原生shape_id、order源效果source_effect与触发器trigger绝对start_ms来自offset_ms与duration_ms以及考虑重复/自动反转的playback_duration_ms原生边界bounds_emu与归一化面积area_ratio渲染器参数videofamily 及 4.1 节列出的全部字段。点击触发的动画会被拒绝渲染出的视频不存在交互式点击事件因此trigger on-click时规划器直接抛错提示视频运动需要无点击的after-previous或with-previous时序并要求先重新导出video_motion_plan.py。同时trigger只接受after-previous/with-previous两种取值。5.1 页面过渡的映射_transition_planvideo_motion_plan.py把页面过渡映射为源过渡视频过渡无 / 未解析cut时长 0、线性缓动fadecrossfadepush、coverdirectional_pushwipe、split、stripssoft_effect其他adaptive_crossfade已解析过渡的缓动统一为ease_in_out_cubic。6. 当前边界与下游职责本脚本只负责语义交接与确定性增强策略自身不编码视频video-motion-plan.md。消耗该计划的下游渲染器必须报告不支持的 family而不是静默回退为仅 delay 的淡入淡出遵守locks中的五项锁定与optimizer_scope允许的优化范围。在 PPT Master 的完整视频交付链路上本环节位于旁白生成与嵌入之后generate-audio阶段先把 TTS/录制旁白嵌入 PPTX 并设置音频时长驱动的自动推进随后svg_to_pptx.py --recorded-narration audio --conversion-trace导出包含最终时序的解析追踪最后video_motion_plan.py将其转换为渲染器可直接消费的运动计划相关流程见 generate-audio.md。需要进一步研究侧车字段语义时可查阅 pptx-animations.md 的 Sidecar Field Reference 与 narration.md 的录制旁白规范需要排查导出失败时可参考 troubleshooting.md 中关于--recorded-narration的常见问题。赞分享AI 技能人工智能【免费下载链接】ppt-masterAI 把任意文档生成真正可编辑的 PowerPoint —— 原生形状与动画、演讲者备注可合成音频旁白、还能参考你自己的 .pptx 模板,而不是一张张图片 · 何雨果出品项目地址https://gitcode.com/hugohe3/ppt-master点击查看免费下载相关推荐PPT Master Video Motion Plan把解析后的动画轨迹编译为渲染器无关的视频运动计划PPT Master Video Motion Plan把解析后的动画轨迹编译为渲染器无关的视频运动计划 video_motion_plan.py 是 PPTAI 技能人工智能AI 应用React状态管理终极指南从入门到精通react-values全组件详解React状态管理终极指南从入门到精通react values全组件详解 react values是一个基于render props模式的轻量级React状态1 条链接带走完整流程图Mermaid 在线编辑器上手全解1 条链接带走完整流程图Mermaid 在线编辑器上手全解 Mermaid Live Editor 是一个免费开源MIT 协议的浏览器端图表工具左边写几前端开发者工具数据可视化上一篇ChongqingAscend/e5-base-unsupervised常见问题解答解决使用过程中的10个典型问题下一篇Jumpstart 项目常见问题解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考