用途
该技能把迪士尼十二动画原则作为程序化动画的实用设计与工程规则,适用于创建、改进、审查或调试动画。其核心目标是以可读的意图、重量、节奏和个性来设计运动,并将物理模拟与插值视为输入,而不是最终动画。
主要能力
- 提供从场景检查到最终审查的完整动画工作流。
- 指导如何用一句话陈述动作:主体、意图、力、目的地和期望感受。
- 帮助识别主要动作并对所有次要动作排序。
- 指导在选取缓动曲线之前先分块语义阶段和事件姿势。
- 提供确定性状态求值函数的定义方式:state = f(frameOrTime, inputs, parameters)。
- 指导从主运动或语义事件派生形变、重叠、强调和效果。
- 提供基于感知的调校方法,强调判断间距而非仅看曲线。
- 提供审查清单和应避免的默认做法。
- 附带参考文件:references/twelve-principles.md、references/implementation-patterns.md、references/clawd-jump-case-study.md。
使用方式
工作流如下:
- 在改变运动之前,检查场景、代码、输入、渲染器和项目约束。
- 用一句话陈述动作:主体、意图、力、目的地和期望感受。
- 识别主要动作,并将所有次要动作排在它之下。
- 在选择缓动曲线之前,分块语义阶段和事件姿势。
- 从 references/twelve-principles.md 中选择相关原则。
- 从帧或时间加上显式输入定义一个确定性状态求值器。
- 从主运动或语义事件派生形变、重叠、强调和效果。
- 在代表性帧上调校时间与间距,然后审查完整运动。
- 移除那些掩盖弱姿势、不清晰时间、断裂接触或不良剪影的效果。
如需详细工程模式,阅读 references/implementation-patterns.md;如需激励性的跳跃对比,阅读 references/clawd-jump-case-study.md。
动作分块
定义事件姿势,例如:静止或准备、预备动作、发力或起跳、过渡姿势、顶点或保持或决策点、接触或撞击、过冲、稳定或恢复。根据动作调整术语:按钮按下可能使用静止、按下、接触、过冲和稳定;镜头运动可能使用建立、加速、揭示、制动和稳定。
每个阶段需指定:持续时间或时长比例、位置与路径、各边界处的速度、缩放旋转与轴心、接触约束、剪影或可读性目标、次要动作滞后、可选强调(如拖影、眨眼、粒子或镜头抖动)。优先使用阶段表或显式常量,而不是一个不透明的缓动表达式。
构建运动层级
按以下顺序构建:
- 保留功能约束、接触、边界和输入行为。
- 用简单形状渲染主体,使主要路径和时间可读。
- 围绕力和接触事件添加姿势变化与形变。
- 用受控的相位偏移添加跟随动作和重叠。
- 添加强化而非竞争主动作的次要动作。
- 仅在速度、撞击或清晰度需要时添加强调。
- 让主要运动在没有运动模糊、粒子、拖尾或声音的情况下也能成立。
确定性工程实现
- 将动画状态计算为 state = f(frameOrTime, inputs, parameters)。
- 保持求值独立于之前的渲染和渲染顺序。
- 在插值和导数计算中保留分数帧。
- 从稳定标识符播种程序化变化;渲染期间绝不使用未播种的随机性。
- 解析地或通过采样纯状态函数来推导速度和加速度。
- 当后续变化会破坏动作时,在有意承诺事件处快照交互输入。
- 在挤压、拉伸、回弹或稳定期间保持接触锚点固定,除非滑动是有意的。
- 除非有意的撞击、剪切或急动需要不连续,否则保持跨相位边界的位置和速度连续性。
- 按主体大小、移动距离、视口或场景比例归一化阈值和幅度。
- 限制夸张以保护可读性、几何和交互约束。
- 对于 Remotion,使每一帧都可独立计算,因为帧可能并行且乱序渲染。对于禁止 Remotion 用于 3D 的浏览器 3D 工作,使用项目的 Puppeteer 捕获工作流。
基于感知的调校
判断间距,而不仅仅是曲线:
- 样本之间距离越大,读起来速度越快。
- 短暂准备后跟随大的间距变化,读起来有力量。
- 在顶点或决策点附近样本密集,产生强调。
- 快速接触后跟随压缩和恢复,产生重量感。
- 延迟的末端产生柔韧性和动量。
- 干净的剪影先于细节带来清晰度。
- 有意识地使用不对称。上升与下降相等、每个通道相同的缓动、身体部位同步,往往读起来机械。
审查清单
- 从几个静止帧正确读出动作。
- 确认预备动作指向即将到来的动作方向。
- 确认路径、朝向和形变与速度和力一致。
- 确认撞击强度响应于来速或力。
- 确认次要动作比主要动作开始更晚、稳定更晚。
- 确认保持是有意的,不会冻结每个通道。
- 确认响应式布局在不同比例和端点下保持相同的动作逻辑。
- 确认没有效果在补偿弱姿势或断裂过渡。
- 确认每个渲染帧对相同输入是确定性的。
应避免的默认做法
- 不要为每个属性使用同一个线性进度值。
- 不要假设对称抛物线自动产生令人信服的跳跃。
- 不要在没有识别力和轴心的情况下添加通用弹跳或弹性缓动。
- 不要连续应用挤压和拉伸;将其集中在加速和接触周围。
- 不要让次要运动领先于主要动作。
- 不要以牺牲可读性为代价保持物理真实感。
- 不要同时夸张每个通道。
- 不要将带状态的逐帧模拟引入乱序渲染器。
适用场景
适用于程序化动画的创建、改进、审查或调试,尤其涉及可读意图、重量、节奏和个性的运动设计。可用于按钮按下、镜头运动、跳跃等动作,以及需要确定性渲染的场景(如 Remotion 并行乱序渲染)。
限制
资料未提供该技能的具体安装命令、收费方式、价格、支持平台或效果数据。