Pro Motion 是一套制作动态图形(motion graphics)影片的方法,强调“音频优先”:先规划并锁定音乐,再在代码中把影片剪到音乐上。适用对象包括发布视频、品牌片、TVC、应用宣传片,以及需要按音乐重剪、换风格或多语言本地化的影片,也可用于为宣传片写音乐计划或 Suno/Udio 提示词。
一、环境准备 每个项目文件夹初始化一次。需要 Node 18+、Python 3(numpy / scipy / matplotlib)以及 Chrome / Chromium(自动检测,可用 CHROME=/path 覆盖)。人像抠图需要 macOS 14+。注意:本目录条目只包含文档、assets/template/audio-plan.md、references/*.md 和 LICENSE;运行时模板(film.html、film.js、motion-lib.js、OFL 字体二进制)和脚本助手(setup.sh、analyze_music.py、audio_post.py、render-fast.js、contact_sheet.sh、ref_frames.sh、cutout.swift、faces.swift)未随包提供。执行任何渲染或安装步骤前,应先取得用户同意去获取上游固定提交,并检查所有脚本与依赖内容。
二、流程
- 需求简报:用一段话写清产品/品牌与要传达的感受、受众与市场(对应语言)、音乐文件(没有就先做音乐,绝不在没有锁定音轨时开始画面)、时长、画幅比例(默认 9:16 主版,之后 1:1 与 16:9)、影片类型(产品发布要体现产品真实设计语言;品牌片以故事与风格为先,产品可选)、必备元素(logo、吉祥物、口号、功能)、用户此前拒绝过什么。缺失处以合理默认值补齐并说明。
- 音频优先:把 assets/template/audio-plan.md 复制到项目并按顺序填写。§1 战役大脑:参考 references/audio-first.md §1,从 references/campaign-cases.md 选 A–G 机制类型,写出“声音即机制”;没有机制的概念会被判为无聊。§2–3 调色板与能量图,按整秒设置小节;§4 检查项全部打勾,否则重写能量图而非提示词;§5 写提示词(风格=身份,标签=位置);§6 后期可用 audio_post.py 在精确节拍上加音效、做闷化、二连顿音、循环、摩斯/频谱签名,用 ffmpeg 控制响度。
- 分析音乐:用 ffmpeg 转单声道 22050Hz,再运行 analyze_music.py 得到 tempo、网格偏移、起音、低频/高频击打与 RMS,输出 analysis.json 与 spec.png。看频谱图写音乐地图(前奏、重音、推进、drop、延音/半拍段、静默、最大一击、结尾一击、尾音,以秒计)。用户对音轨的描述只是提示,频谱图才是事实;主要动作落在映射事件上,次要动作落在 8 分/16 分音符。
- 用真实参考做研究:按 references/sourcing.md,用网页搜索找官方上传,运行 ref_frames.sh 生成 24 帧联系表;收集 6–10 个跨国家、跨媒介的参考(品类领先者、动态设计工作室,以及“风格化”需求下的动画长片、动画 OP/ED、艺术短片、MV、游戏过场);还要产品最新截图、图标、吉祥物与设计说明。每个参考写一张技法表(配色规则、线条、质地、形状语言、景深技巧、镜头、转场装置、节奏、招牌动作)。
- 方向:先出 3 个明显不同的方向,每个由 2–3 个从技法表借来的具名技法加所需素材构成,各渲染一帧风格帧并排展示,由用户选择或混合后再写镜头表。避免用单一熟悉标签就能概括的方向。
- 故事:一个贯穿全片并发生转变的主角(与品牌相关的物体、形状或吉祥物);每个功能/物体在音乐事件上“表演自己”;每个场景转换都要设计(匹配剪辑、形变、飞入下一布局、碎片/扫描/推擦、融合、色块砸入);文字即动画,不用下三分之一模板;结尾由影片自身生长出来,汇聚成主角并成为 logo 的一部分。镜头表以时间、音乐事件、画面、转场、文字列成 shotmap.md,编码前对照美学检查表。
- 构建:从 film.js(场景表+render(t))、motion-lib.js(原语,先读头部索引)、film.html 开始。render(t) 必须纯粹且确定:绘制时不用 Math.random(用 rand(seed)/hash),帧间无状态,因为帧由并行标签页渲染。素材用真实、当前、许可安全的照片或纯绘制图形;半身优于大脸,留白优于丑素材。帧率也是风格选择:产品片 60fps 平滑,手作动画 24fps 且物体 on twos,涂鸦层 12fps 线条抖动。多语言用 ?lang= 参数,英文主版加仅换关键台词的本地版。
- 渲染与交付:用 render-fast.js 并行标签页渲染 MP4(20 秒约 30 秒),用 contact_sheet.sh 在指定秒数抽帧成一图,检查音频是否跑满全长。每次渲染做一遍核对:在每个映射事件与转场读联系表,修具体问题后重渲染;不要让用户核对接图能看出的东西,也不要无限循环。交付时打开文件、给可点击链接、多版并排 index.html;主版通过后再提供 1:1 / 16:9 重排。
- 按时间戳迭代:反馈按“时间 → 问题”处理,只修该处并快速重渲染;若反馈是品味问题(“像 PPT”“难看”“不够风格化”),回到第 4–5 步而不是打补丁;把新的拒绝/接受记入 references/lessons.md。
三、限制 渲染需要另行审阅的上游运行时副本,以及本地 Node、Chrome 与 ffmpeg;人像抠图需 macOS 14+。生成的音乐来自用户自己运行的外部工具,本技能只产出音频计划、提示词和镜头表。