关于 disney-animation-rule-skill
面向设计师和开发者的程序化动画 skill,强调动作意图、重量感、节奏与确定性。它以事件姿势和动作层级组织动画,而非仅依赖物理模拟或缓动曲线。
主要功能
- 01规划语义动作阶段
- 02选择适用的动画原则
- 03确定性地计算每帧状态
- 04保持接触与动作连续
- 05检查动作可读性
适用场景
- 01设计易读的角色跳跃
- 02制作按钮按压或镜头运动
- 03支持乱序帧渲染
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ vibe-motion/ skills --skill disney-animation-rule-skill安装后在 Claude Code 中输入/disney-animation-rule-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/clawd-jump-case-study.mdimplementation-patterns.mdtwelve-principles.md详细介绍
程序化动画的迪士尼动画原则
设计动作时,要让意图、重量感、节奏和个性清晰可辨。将物理模拟和插值视为输入,而非最终动画。
不要在每个镜头中都强行套用全部 12 条原则。只选用能解决感知问题的最少原则。
工作流
- 在调整动作前,检查场景、代码、输入、渲染器和项目约束。
- 用一句话描述动作:主体、意图、力量、目的地和期望的感觉。
- 确定主要动作,并按优先级排列所有次要动作。
- 先划分语义阶段并确定关键姿势,再选择缓动曲线。
- 从
references/twelve-principles.md中选择相关原则。 - 基于帧或时间以及显式输入,定义一个确定性的状态求值器。
- 从主要动作或语义事件推导形变、跟随动作、强调效果和特效。
- 在具有代表性的帧上调整时序和间距,然后检查完整动作。
- 移除那些掩盖姿势薄弱、时序不清、接触不稳或轮廓不佳的特效。
有关详细的工程模式,请阅读 references/implementation-patterns.md。有关作为动机的跳跃对比案例,请阅读 references/clawd-jump-case-study.md。
划分动作
定义事件姿势,例如:
- 静止或准备
- 预备动作
- 发力或起跳
- 经过姿势
- 最高点、停顿或决策点
- 接触或撞击
- 超调
- 稳定或恢复
根据动作调整用语。按下按钮的动作可以包含静止、按压、接触、超调和稳定。镜头移动可以包含建立镜头、加速、揭示、减速和稳定。
对于每个阶段,明确指定:
- 持续时间或时长比例
- 位置和路径
- 各边界处的速度
- 缩放、旋转和支点
- 接触约束
- 轮廓或可读性目标
- 次要动作的滞后
- 可选的强调效果,例如拖影、眨眼、粒子或镜头抖动
优先使用阶段表或显式常量,而不是不透明的缓动表达式。
构建动作层级
按以下顺序构建:
- 保留功能约束、接触、边界和输入行为。
- 将主体渲染为简单形状,确保主要路径和时序清晰可辨。
- 围绕力量和接触事件添加姿势变化和形变。
- 通过受控的相位偏移添加后续动作和重叠动作。
- 添加能够强化主要动作、但绝不与之争抢注意力的次要动作。
- 只在速度、撞击或清晰度有需要时添加强调效果。
确保主要动作在没有动态模糊、粒子、轨迹或声音的情况下也能成立。
确保确定性
- 将动画状态计算为
state = f(frameOrTime, inputs, parameters)。 - 让求值不受先前渲染结果和渲染顺序影响。
- 在插值和导数计算中保留小数帧。
- 使用稳定标识符为程序化变化设置种子;渲染时绝不使用未设种子的随机数。
- 通过解析方式或对纯状态函数采样来推导速度和加速度。
- 如果后续变化会破坏动作,则在有意设置的承诺事件处对交互输入进行快照。
- 在挤压、拉伸、反冲或稳定过程中固定接触锚点,除非有意设置滑动效果。
- 保持各阶段边界处的位置和速度连续,除非有意设置的撞击、剪切或突变需要不连续。
- 根据主体大小、移动距离、视口或场景比例对阈值和振幅进行归一化。
- 限制夸张程度,以保护可读性、几何形状和交互约束。
对于 Remotion,应确保每一帧都能独立计算,因为帧可能并行且乱序渲染。对于禁止在 3D 环境中使用 Remotion 的基于浏览器的 3D 工作,请使用项目的 Puppeteer 截图工作流。
根据感知调整
判断间距,而不只是曲线:
- 样本间距越大,读起来速度越快。
- 短暂准备后间距大幅变化,会让动作显得有力。
- 在顶点或决策点附近缩小样本间距,可以突出重点。
- 快速接触后接着压缩与恢复,会让动作显得有重量。
- 末端动作延迟,会带来柔韧感和动势。
- 清晰的轮廓比细节更能让画面一目了然。
有意识地运用不对称。上升和下降相同、所有通道的缓动完全一致,以及各身体部位同步运动,往往会显得机械。
审查清单
- 仅看几个静止帧,也能正确读懂动作。
- 确认预备动作指向即将发生的动作方向。
- 确认路径、朝向和形变与速度和作用力一致。
- 确认冲击强度会随进入速度或作用力变化。
- 确认次要动作比主要动作开始得更晚、结束得也更晚。
- 确认停顿是有意设计的,且不会冻结所有通道。
- 确认响应式布局在不同缩放比例和终点下保留相同的动作逻辑。
- 确认没有用特效来弥补薄弱的姿势或不连贯的过渡。
- 确认相同输入始终会渲染出相同的每一帧。
避免这些默认做法
- 不要让所有属性都使用同一个线性进度值。
- 不要认为对称抛物线自然就能形成令人信服的跳跃。
- 不要在没有明确作用力和支点的情况下添加通用弹跳或弹性缓动。
- 不要持续应用挤压与拉伸;应集中在加速和接触前后。
- 不要让次要动作先于主要动作。
- 不要为了遵循物理真实感而牺牲易读性。
- 不要同时夸大所有通道。
- 不要在无法按顺序渲染的渲染器中引入有状态的逐帧模拟。
评论
支持 Markdown