Files
workbuddy_skills/oil-motion/references/concepts.md
T
admin 237a09a5b0 修:draw-ui / oil-motion 原被当子模块指针收录 ⇒ 改为正常文件入库(两份内容原先对别人是空的)
一、问题(本轮实测)
`draw-ui` 与 `oil-motion` 目录里**各自带一个内嵌 `.git`** ⇒ 上一次提交把它们记成了 **gitlink(子模块指针)**
⇒ 仓库里只存了一个不属于任何远端的 commit id,**别人克隆下来这两份是空的** ✗(`git status` 显示 ` m draw-ui` / ` m oil-motion` = 子模块内容有改动)。

二、处置(可回退)
· 把两处的 `.git` **挪走**(⛔ 不是删除)⇒ `归档/内嵌git-20261008/{draw-ui,oil-motion}.git`;
· `git rm --cached` 掉那两个 gitlink,再 `git add` 两个目录 ⇒ **按正常文件入库**(内容才真的进仓库)。

三、副作用(如实记)
挪走 `.git` 后,这两个技能**不能再原地 `git pull` 取上游更新**(要更新得重新拉一份覆盖);
如需恢复其本地仓库,把 `归档/内嵌git-20261008/` 里的 `.git` 挪回原处即可。
2026-10-08 22:29:52 +08:00

11 KiB

交互动画创意方法

当用户询问“可以做什么效果”、只有目标没有动作方案,或现有动画缺少表达目的时读取本文件。

从作用开始

先确定动画承担的主要作用,只选一个主作用:

  • 引导注意:让用户发现可以交互的对象。
  • 解释关系:展示输入、过程、因果、层级或空间关系。
  • 表达进度:让连续位置、阶段或完成度可感知。
  • 提供反馈:确认悬停、拖拽、提交、成功、失败或等待。
  • 奖励探索:让用户主动操作后获得有意义的变化。
  • 营造情绪:建立轻快、克制、紧张、柔和或机械的节奏。

没有作用的动作只是装饰。装饰可以存在,但必须低成本、可暂停且不干扰内容。

需要案例时,按作用查阅 网页动效参考模式。借用输入与反馈的关系、视觉锚点和信息节奏,再替换成用户自己的对象;不要把参考站的皮肤、题材或实现猜测当作默认方案。

先审计对象的运动潜力

不要从“场景视频、绿幕、雪碧图、视差、跟随鼠标”开始。先检查对象本身:

维度 要问的问题 常见变化
结构 由哪些层、壳体、部件和连接组成? 组装、拆解、爆炸图、剖切、折叠、展开
功能 输入、处理和输出是什么? 启动、传递、计算、充能、响应、完成
材质 表面和内部能否改变可见性? 透明、X 光、线框、液态、熔化、结晶
空间 用户应该从哪里看到哪里? 环绕、推进、拉远、穿越、进入内部、越过尺度
状态 前后状态有什么意义? 开关、空满、快慢、新旧、普通与专业模式
信息 哪些关系需要被理解? 分流、汇聚、映射、因果、比较、层级、反馈

一个手机可以从完整外观变成爆炸图、进入芯片内部、沿信号路径点亮,再重新组装。 一个软件产品可以从界面进入数据管线,展示处理过程后回到结果。例子只说明方法,不是 Skill 的默认题材。

动作语法

从下面选择能表达内容的动词,不要把所有变化塞进一条动画:

  • 结构:assemble、disassemble、explode、separate、stack、fold、unfold、peel、cutaway。
  • 形态:morph、inflate、compress、grow、dissolve、crystallize、flow。
  • 材质:reveal、x-ray、wireframe、scan、heatmap、translucent。
  • 空间:orbit、dolly、macro、fly-through、tunnel、parallax、scale-jump。
  • 信息:trace、route、pulse、branch、converge、compare、highlight。
  • 状态:activate、charge、complete、unlock、switch、transform。

把输入映射到变化

输入 连续参数 适合的视觉回应 参数结构
scroll 全页或局部进度、速度 拆解、组装、穿越、材质和章节转场 linear
pointer 方向、距离、速度 环绕视角、聚焦部件、剖切深度、光照扫描 circular / 2d
drag 位移、角度、拉伸量 直接拆分、撕开、旋转、比较前后 linear / 2d
touch / orientation 倾斜、方向、力度 重力、内部层差、液体、空间视差 2d
audio 音量、频谱、节拍 频谱结构、脉冲、形变、排列 linear
data / state 数值、阶段、成功失败 流量、热力、完成度、模式切换 linear / discrete

转动与视向:先分清转的是什么

“转动 360°”至少对应四种完全不同的素材。合同里只写“转一圈”,模型就会自己挑一个旋转轴,所以先按下表分型:

类型 画面上发生什么 参数空间 输入映射 典型用途
圆周注视 脸始终朝向镜头,视线沿屏幕前方的一圈移动:12 点抬头、3 点看右、6 点低头、9 点看左,再回到 12 点;不露后脑勺 circular 指针相对主体中心的角度 吉祥物、头像、数字人跟随光标
二维注视 同样面向镜头,但上下与左右幅度分别变化,指针靠近中心时接近正视 2d 指针的 x、y 分量 需要区分“看得多远”的角色
水平摆头 只绕竖直轴左右转,例如 -60° 到 +60°,两端是极限,中间是正视 linear 指针 x 或横向进度 横向巡视、侧向视差
展台自转 主体绕自身竖直中轴转满一圈,依次露出正面、侧面和背面 circular 拖动距离或滚动进度 手机、腕表、球鞋等硬件展示

圆周注视只用到方向角,指针远近不改变姿态。如果角色在指针靠近时应该接近正视、离远了才明显转头,就要用二维注视,不能拿一条环形视频代替。展台自转会露出侧面和背面:真实产品先用参考图生成 0°、90°、180°、270° 四张关键帧,再分四段生成;只给一张正面图让模型一次转完,背面就是模型猜出来的。

一镜到底:先想好接缝藏在哪里

滚动驱动的一镜到底,本质上是多段首尾相接的短视频(K0 → K1 → K2…):上一段的尾帧就是下一段的首帧,每段只完成一级变化。场景切换发生在段内,靠某个一直在画面里的东西把前后两个世界接起来。所以先选“接缝藏在哪里”,再设计关键帧:

范式 接缝藏在哪里 交接关键帧怎么定 主要风险
尺度穿透 画面正中心的锚点物体 上一段的尾帧就是下一段的首帧,画面中心的小物体是下一段要推近的目标 每段只放大一级;跨度太大时模型会在途中换掉物体
遮挡转场 前景实体完全挡住镜头的那一帧 遮挡物占满画幅的同一张图,同时作为上一段尾帧和下一段首帧 遮挡不完全时,背景置换会露出来
形状匹配 两个场景里轮廓相同的物体 一段以圆形表盘为首帧、以同位置同大小的星球为尾帧,轮廓不动,只换表面内容 轮廓在段内移动或变形,就会像硬切
时间流转 锁死的机位和轮廓 用同一构图和姿态,生成不同年代或季节的状态图 模型容易顺带改几何;关键帧之间逐项对照结构
倒影穿越 眼睛、镜面或水滴里的倒影 一段以倒影特写为首帧、以倒影里的场景全景为尾帧,推进中倒影逐渐充满画面 特写帧里的倒影要足够清楚,提前生成锁定
剖切穿墙 外墙溶解成剖面或线框 完整外墙为首帧,剖开后的内部结构为尾帧 推进速度要匀,突然减速会让溶解看起来像卡住

整座城市折叠、重力翻转这类大范围形变,当前视频模型很难保持几何连续。只在用户明确要求时尝试,并先用 Pilot 验证。

选定范式后再检查三件事:

  • 倒放是否成立。 scrub 模式下用户会往回滚:推进变成拉远,溶解变成复原,这些都自然;爆炸、泼洒这类倒放违反直觉的动作,要单独生成反向片段;分段播放的反向默认也是倒放同一段,同样要检查。
  • 停在任意位置是否好看。 scrub 的每一帧都可能成为静止画面,不要靠运动模糊掩盖形变。
  • 文字放在哪里。 需要阅读的说明放在交接关键帧附近的稳定状态上,由页面层叠加,不写进视频。

判断语义与几何

  • 部件连接、壳体开启、材质形变、关节、抓握、毛发、布料和遮挡属于语义运动,由关键帧约束下的 AI 视频生成。
  • 位移、缩放、旋转、裁切、路径、惯性和参数映射属于几何运动,由程序完成。
  • 只要移动整张图片会破坏接触或遮挡关系,就生成完整语义动作。

按显示尺度选择复杂度

  • 小型控件:动作短、轮廓清晰、状态明确,只生成必要的短片段和少量帧。
  • 内容插画:允许一个主要语义动作,控制持续时间和资源体积。
  • Hero 或全屏叙事:先锁 Concept Contract 的背景归属,再做资源预算;路线选择按 delivery-selection.md 的决策顺序执行。
  • 长页面连续滚动:区分全页进度和局部章节进度,不默认把整页映射到一条视频。

让三个方向真正不同

方向必须来自对象本身,而不是沿用上一个项目。同一个对象先从结构、空间或镜头、材质或状态三类变化里各想一个方向,再挑出最多三个。用户已经明确动作时,不为凑数量增加无关方向。

三个方向至少在两项上不同:

  • 不同驱动方式。
  • 不同参数空间。
  • 不同表达作用。
  • 不同运动主体或结构。
  • 不同关键状态或镜头路径。

避免给出三个只是速度、幅度或颜色不同的同类方案。

方向卡

每个方向写一张简短的方向卡,方便用户比较和挑选:

  1. 表达目的:用户通过这次交互新理解了什么,或完成了什么。
  2. 起止状态与锚点:起始和最终画面是什么,哪些身份、结构或阅读位置始终不变。
  3. 真正变化的部分:哪些结构、材质或镜头发生变化;镜头移动时写清轨迹。
  4. 输入与回应:输入怎样映射到进度或状态;停手、反向和再次触发时画面怎样回应。
  5. 制作分工:哪些画面由关键帧锁定,哪些变化交给视频模型,哪些文字、布局和状态由程序实现。
  6. 成本与替代:目标尺寸下的清晰度、帧数和加载成本,触屏怎么操作,静态替代是什么,以及最需要先验证的风险。

借用了外部案例时,再写明案例链接、实际看到的现象,以及哪些只是推测,见 motion-patterns.md。

把方向变成关键帧

需要生成素材时,生产顺序固定为“先生图,再生视频”。每个方向先回答:

  1. 起始图是什么。
  2. 结束图是什么。
  3. 是否需要中间关键帧才能让变化稳定。
  4. 哪两张相邻关键帧组成一段视频。
  • 真实产品的 Logo、孔位、部件数量和比例不能漂移时,用原始产品图作为参考生成并验收每张关键帧,不让视频模型凭文字猜终点。
  • 单段视频只完成一个主要语义变化,例如“整机拆开”或“镜头进入芯片”。
  • 多阶段叙事使用 K0 → K1 → K2…:先验收全部计划关键帧,再从 Pilot 开始逐段生成视频。
  • 文字、数字、进度和高亮由程序在运行时叠加;主要画面与转场仍来自关键帧约束的 AI 视频。

例如“手机完整态 → 爆炸图 → 芯片特写 → 重新组装”需要四张关键帧和三段视频, 不是一条长提示词。这样每段更稳定,也便于滚动正反播放和单独重做。

创意质量门槛

拒绝以下方向:

  • 用户输入与画面变化没有可理解的关系。
  • 动画只有自动播放,没有交互带来的新信息或反馈。
  • 静止状态不成立,必须一直运动才能看懂。
  • 用高成本栅格视频实现简单几何运动。
  • 为了使用已有视频而强行选择不匹配的参数模型。
  • 只能在演示尺寸成立,缩小或触屏后失去意义。
  • 用赛博霓虹、机械电路、发光细线这类套路装饰填满画面,掩盖结构和镜头上的问题。

选定方向后,把它转换为 Motion Brief,再进入资源预算、生成和实现。