Ice Motion: 动态设计
该技能决定事物如何运动。它由工作流(ice-film, ice-explainer, ice-remake, ice-edit, ice-lottie)在简要和方向确定后调用。它编写动态计划;从不构建或渲染。
1. 该技能拥有什么以及指向什么
| 拥有 | 指向 |
|---|---|
| 运动任务、动态动词、因果 | 动态排版、字幕、阅读时间、显示字体的键入节奏:ice-type |
| 持续时间、缓动、交错、重叠、弹簧 | 音乐、音效、画外音、节拍网格、单词时机:ice-audio |
| 保持策略(活跃、仅摄影机、真静止、无空闲) | 入口、接缝验证、帧扫描、密度测量:ice-qa |
| 剪辑和转场目录、转场策略 | 引擎语法、渲染、快门捕捉、平台安全区域:ice-engines |
| 接缝、承载、向量法则、交接 | 艺术和绘画风格、角色骨架、解说语法:ice-styles |
| 摄影机、构图、主角大小、照明、丰富度度量 | 调色板、字体配对、反同质化指纹、决策日志:ice-direction |
| 2D、2.5D 和 3D 动画;物理;变形;循环 | 阿拉伯语及从右到左的字形和方向:ice-arabic |
| 影片中的光标和 UI 演示动画 | 发货应用和网站 UI 动画、Lottie、Logo 矢量准备:ice-lottie |
| 动作卡组、原子动作、镜头蓝图 | 资产真相、真实 UI 捕捉、Logo:ice-assets |
按名称指向其他技能;绝不重述其规则。
2. 调用时的流程
- 读取简要槽位(影片或编辑类型、平台、宽高比、时长、语言、语域、品牌词汇)和方向日志。如果类型缺失,询问工作流,不要猜测。
- 打开
references/motion-language-by-type.md,设置影片的动态语言:保持策略、转场策略、摄影机策略、超调策略、时钟和模糊语法、节奏。仅在简要未提及时才应用行业和品牌个性预设。 - 编写动态个性:一个隐喻外加 3-5 条规则(
references/motion-grammar.md第 8 节)。那里有多种不同的例子;切勿复制。 - 分发动调配色板:3 个核心动作,最多 2 个重音,最多 1 个标志性动作,避免前一部影片的核心动作(
references/move-deck.md,references/anti-slideshow-and-density.md第 6 节)。 - 对于每个节拍,编写其运动任务和动词、时序和缓动,以及其重要级别(
references/motion-grammar.md,references/timing-and-easing.md,references/measured-motion.md)。 - 对于每个边界,编写一个接缝行,包含载体、出射和入射向量以及原因(
references/seams-and-carry.md,references/transition-policy.md,references/cut-catalog.md)。 - 对于每个摄影机运动,编写其原因和窗口(
references/camera.md)。 - 对照反幻灯片规则和类型密度目标(
references/anti-slideshow-and-density.md),以及视觉丰富度底限检查计划:从影片类型的“丰富度底限”表(ice-film 工作流的references/film-types/<type>.md)和references/composition-and-staging.md第 7 节中的度量和修复中读取底限数字。低于底限的镜头在构建任何东西之前需重新布局。 - 对于商业广告、产品旅程和无配音文本引导的影片,还要编写机器可验证的动态合同(格式:
assets/motion-contract.example.json;原则:references/continuous-journey.md),并运行python scripts/validate_motion_contract.py ice/plan/motion-contract.json --project-root .直到输出 PASS。将计划交给工作流;ice-qa 验证渲染。验证器严格检查三件事:- 参考:三个特定角色的参考并附分解说明。如果按日期搜索后没有找到任何实际可观看的参考,则写
"references": [](或已有的参考)加上"referencesWaiver": {"reason": "<搜索内容,为什么没有可观看的>", "researchNote": "ice/research/<note>.md"};切勿将参考指向一个描述你没有看过影片的说明。 - 传承:跨越每个边界时比较 id,而不是图片:转场语义 ID 必须等于下一场景的入场语义 ID,因此给承载对象在两边赋予相同的语义 ID。图片是否真正承载由 ice-qa 和审阅者在渲染上进行评判。
- 通用动词(滑动、增长、缩放、浮动等列表)会失败,除非对象本身就是该机制;然后在该
primaryMotion或文本单元中添加"literalMechanism": "<一句话说明真实机制>"。
- 参考:三个特定角色的参考并附分解说明。如果按日期搜索后没有找到任何实际可观看的参考,则写
- 通过 ice-direction 记录每个动态决策及其原因和来源(
ice/DIRECTION.md)。
3. 通用法则(适用于所有类型)
- 每个运动都有一项任务(引导注意力、承载连贯性、显示变化、表达角色),否则被剪掉。
- 运动跟随意义:流动的流动,组装的组装,倒计时滴答,路线朝其方向绘制,数字在其原因变化时计数。
- 一次一个焦点运动;支持元素等待,焦点从不等待。
- 进入减速,退出加速,屏幕内运动缓入缓出,冲击加速至接触;除非是机械运动,否则空间运动永不用线性;绝不在所有东西上使用一种缓动(每部影片至少 3 个缓动字符)。
- 退出比进入快;进入使用 2-3 个衰减通道,绝不用单独的不透明;永不从零增长。
- 交错保持每组约 0.5 秒以下,不规则,按重要性排序;偏移量短于被偏移的运动。
- 对比是信息:变化速度(最慢场景约是最快场景的 3 倍)、镜头长度、密度和静态;规模、效果和重音各使用一次。
- 某物跨越每个边界:一个承载对象、一个匹配的向量、声音或节拍;场景 A 的退出决定场景 B 的进入(相同轴、方向、速度)。
- 摄影机是标点:它为一个命名的原因运动,慢速用于转场,快速仅用于重音,绝不在连续三次向内推进。
- 保持是决策:按类型选择影片的保持策略并应用于所有地方;内容不足的场景应缩短或赋予故事,从不摇摆。
- 每一帧都是时间的纯函数:闭合弹簧、种子随机性、无挂钟、无状态求解器。
- 效果从不补偿弱布局、弱姿势或缺失证据。
4. 按范围解决的冲突(摘要)
| 问题 | 按类型回答 | 文件 |
|---|---|---|
| 保持期间什么运动? | 活跃(发布、应用广告、社交媒体、炒作),仅摄影机(解说、访谈、数据、长片),真静止作为标点(品牌、艺术休息、动态休息、喜剧),无空闲(UI 演示、叙述式发布) | references/holds-and-stillness.md |
| 交叉淡入淡出? | 在发布、应用广告、炒作、动态、拼贴、音乐引导、社交媒体中禁止场景间使用;在平静的品牌、艺术、长片、播客、图表转换中允许作为“这继续” | references/transition-policy.md |
| 硬切? | 在编辑过的素材、解说和拼贴中约占 95% 的变化;在以摄影机为编辑的影片中仅在强拍上,最多两次 | references/transition-policy.md |
| 超调? | 数据、金融、健康、奢侈品、摄影机、文本中无超调;发布和 UI 中微小;每部消费品影片一个弹簧;仅对儿童和吉祥物有趣 | references/timing-and-easing.md |
| 非最终场景的退出? | 在转场即为退出的影片(组装发布影片)中禁止;在带解说的解说中短加速退出或原位置降级 | references/transition-policy.md |
| 填充画面还是大空白地面? | 填充(商业广告、解说、所有垂直广告)或约 70% 有纹理地面(极简风格参考、平静品牌、仅风景):按参考流派和语域选择。无论哪种方式,类型的丰富度底限保持;“高级”减去杂乱,从不减去饱满 | references/composition-and-staging.md 第 2 和第 7 节 |
| 保持期间的摄影机? | 慢推 3-6%(策略 A 和 B);锁定(C 和 D) | references/camera.md,references/holds-and-stillness.md |
5. 输出合约:动态计划
工作流将其存储为 ice/plan/motion-plan.md。填充每个槽位;槽位是占位符,绝不是示例值。
## 动态语言
type: <影片或编辑类型> | hold policy: <A|B|C|D> | transitions: <主要+重音> | camera policy: <...>
overshoot: <无|微小|一个弹簧|有趣> | clock: <fps, 平滑或步进> | blur grammar: <涂抹|清晰|快门>
personality: <一个隐喻> + <3-5条规则>
palette: core <动作, 动作, 动作> | accents <动作, 动作> | signature <动作或无>
richness: hero_share <n> | hero_width <n 或 n/a> | frame_fill <n 占 16> | empty_half <s> | depth_layers <n> | in_shot_motion <n percent> | longest_still <s> | light_events <n> | real_material <percent 或 n/a> (底限数字来自影片类型文件)
## 节拍(每行一个)
| t 入-出 | 节拍角色 | 重要性 1-3 | 焦点元素 | 任务 | 动词 | 缓动 | 持续时间 | 交错 | 赢得 |
## 接缝(每边界一个行)
| 剪切 t | 出动作(轴, 方向, 速度, 模糊) | 接缝类型 | 入动作 | 载体 | 缓动对 | 提示 | 原因 |
## 摄影机窗口
| 从 | 顶点 | 停留结束 | 到 | 目标 | 运动 | 原因 |
6. 文件
| 需要 | 打开 | 何时 |
|---|---|---|
| 为类型、行业或品牌设置动态语言 | references/motion-language-by-type.md | 每次首先 |
| 决定是否以及为何某物动起来;动词;因果;个性 | references/motion-grammar.md | 规划每个节拍 |
| 持续时间、缓动方向、交错、重叠法则、超调策略、时序锚点 | references/timing-and-easing.md | 对每个节拍计时 |
| 测量的人类数字和 12 种拟合缓动 | references/measured-motion.md 和 scripts/measured-eases.mjs | 发布、应用广告、UI、炒作;匹配参考运动 |
| 弹簧公式、阻尼指南、预设系列、命名贝塞尔曲线 | references/springs-and-curves.md 和 scripts/springs.mjs | 任何弹簧或自定义曲线 |
| 保持期间发生什么;结束保持;冻结;循环 | references/holds-and-stillness.md | 在任何保持或结束之前 |
| 剪辑或转场的精确构建 | references/cut-catalog.md | 构建接缝时 |
| 转场选择、数量、交叉淡入淡出和退出策略、接缝计划字段 | references/transition-policy.md | 选择接缝时 |
| 承载、向量法则、交接合约、公差、主角根 | references/seams-and-carry.md | 每个边界 |
| 一形、一世界和一演员影片 | references/one-take-films.md | 方向要求连续影片时 |
| 摄影机原因、装备规则、运动持续时间、抖动、密度限制 | references/camera.md | 任何摄影机运动 |
| 焦点、主角大小、图层、布局、舞台、舞台照明、视觉丰富度底限(第 7 节) | references/composition-and-staging.md | 对每个镜头取景;在步骤 8 中检查计划 |
| 2D vs 2.5D vs 3D,视差,景深,3D 飞行值 | references/depth-and-3d.md | 深度或 3D 节拍 |
| 幻灯片故障模式、节奏、密度目标、花费规则 | references/anti-slideshow-and-density.md | 审查计划时 |
| 动画原理作为工程、物理配方、变形、绘制、循环 | references/physics-and-morphing.md | 物理或变形节拍 |
| 光标、点击、拖动、切换、代理状态、UI 演示配方 | references/cursor-and-ui.md | 任何 UI 演示 |
| 带有值表和意图选择器的小动作 | references/atomic-moves.md | 为一个节拍选择动作时 |
| 46 张动作卡组、拒用名称、机制目录 | references/move-deck.md | 分发动调配色板时 |
| 时间编码的蓝图、镜头构建、时间骨架 | references/shot-blueprints.md | 规划镜头序列时 |
| 帧时钟、模糊语法、何时运动模糊、颗粒 | references/motion-blur-and-clock.md | 设置时钟和模糊 |
| 一个主角根、状态链、继承通道、硬切记录、文本的行为、闭合(创始人原版) | references/continuous-journey.md | 商业广告和产品旅程 |
| 物理决策合约、投掷、吸引、刚性 UI 闭合、按运动阶段的声音(创始人原版) | references/motion-choreography.md | 物理或因果节拍 |
| 帧和文本焦点单元合约、摄影机必要性测试、摄影机动词、2D 锚点公式(创始人原版) | references/semantic-camera.md | 商业广告中的每个摄影机决策 |
| 动态合约格式 | assets/motion-contract.example.json | 编写动态合约时(值仅为说明) |
脚本(Windows, macOS, Linux)。最小 Node 和 Python 版本:ice-engines 技能的 references/versions.json 中的 runtimes;Python 包:scripts/requirements.txt(精确锁定与 versions.json 同步)。
| 脚本 | 运行时 | 用途 |
|---|---|---|
node scripts/measured-eases.mjs [ease] [samples] | Node | 打印或导入 12 种测量缓动 |
node scripts/springs.mjs [w z seconds] | Node | 打印或导入闭合弹簧和稳定时间 |
python scripts/validate_motion_contract.py <contract.json> [--project-root <folder>] | Python, 标准库 | 严格的因果、时序、披露、传承、摄影机和声音合约门禁;退出码 1 列出失败项 |
python scripts/audit_web_section_motion.py <project folder> | Python, 标准库 | 拒绝动画网页部分的代码模式(退出码 1) |
python scripts/audit_motion.py --video <mp4> --audio <wav> | Python with numpy and opencv-python-headless | 音频起始点和视觉变化密度与参考对比;诊断性而非裁决性 |
带有“来自创始人的商业动态设计技能”注记的是创始人的文件。