disney-animation-rule-skill

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Disney Animation Rules for Procedural Animation

适用于程序化动画的迪士尼动画准则

Design motion for readable intent, weight, rhythm, and personality. Treat physical simulation and interpolation as inputs, not as the final animation.
Do not force all 12 principles into every shot. Select the smallest set that fixes the perceptual problem.
设计动效时需兼顾可读性、重量感、节奏感与个性。将物理模拟和插值视为输入,而非最终动画效果。
无需强行将12条原则应用到每一个镜头中,只需选取最少量的原则来解决感知层面的问题。

Workflow

工作流程

  1. Inspect the scene, code, inputs, renderer, and project constraints before changing motion.
  2. State the action in one sentence: subject, intention, force, destination, and desired feeling.
  3. Identify the primary action and rank all secondary actions beneath it.
  4. Block semantic phases and event poses before selecting easing curves.
  5. Select relevant principles from
    references/twelve-principles.md
    .
  6. Define one deterministic state evaluator from frame or time plus explicit inputs.
  7. Derive deformation, overlap, accents, and effects from primary motion or semantic events.
  8. Tune timing and spacing at representative frames, then review the full motion.
  9. Remove effects that hide weak posing, unclear timing, broken contacts, or poor silhouettes.
For detailed engineering patterns, read
references/implementation-patterns.md
. For the motivating jump comparison, read
references/clawd-jump-case-study.md
.
  1. 在修改动效前,先检查场景、代码、输入、渲染器以及项目约束条件。
  2. 用一句话描述动作:主体、意图、作用力、目标位置以及预期感受。
  3. 确定核心动作,并对所有次要动作进行优先级排序。
  4. 在选择缓动曲线前,先划分语义阶段与关键动作姿态。
  5. references/twelve-principles.md
    中选取相关原则。
  6. 基于帧或时间加上明确输入,定义一个确定性状态评估器。
  7. 从核心动效或语义事件中衍生出变形、重叠、强调效果及其他特效。
  8. 在代表性帧上调整时间与间距,然后评审完整动效。
  9. 移除那些掩盖了姿态薄弱、时间模糊、接触断裂或轮廓不佳问题的特效。
如需详细的工程实现模式,请阅读
references/implementation-patterns.md
。如需了解动效优化的案例对比,请阅读
references/clawd-jump-case-study.md

Block the Action

动作分块

Define event poses such as:
  • Rest or setup
  • Anticipation
  • Commitment or launch
  • Passing pose
  • Apex, hold, or decision point
  • Contact or impact
  • Overshoot
  • Settle or recovery
Adapt the vocabulary to the action. A button press may use rest, press, contact, overshoot, and settle. A camera move may use establish, accelerate, reveal, brake, and settle.
For each phase, specify:
  • Duration or duration ratio
  • Position and path
  • Velocity at each boundary
  • Scale, rotation, and pivot
  • Contact constraints
  • Silhouette or readability goal
  • Secondary-action lag
  • Optional accent such as smear, blink, particles, or camera shake
Prefer a phase table or explicit constants over one opaque easing expression.
定义关键动作姿态,例如:
  • 静止或准备状态
  • 预备动作
  • 动作启动或发力
  • 过渡姿态
  • 顶点、停顿或决策点
  • 接触或碰撞
  • 过冲
  • 稳定或恢复状态
根据动作类型调整术语。按钮点击可使用静止、按下、接触、过冲、稳定这些阶段;相机移动可使用定位、加速、展示、减速、稳定这些阶段。
为每个阶段指定:
  • 时长或时长比例
  • 位置与路径
  • 边界处的速度
  • 缩放、旋转与支点
  • 接触约束
  • 轮廓或可读性目标
  • 次要动作的延迟
  • 可选的强调效果,如拖影、闪烁、粒子效果或相机震动
优先使用阶段表格或明确的常量,而非单一晦涩的缓动表达式。

Build the Motion Hierarchy

构建动效层级

Build in this order:
  1. Preserve functional constraints, contacts, bounds, and input behavior.
  2. Make the primary path and timing readable with the subject rendered as a simple shape.
  3. Add pose changes and deformation around force and contact events.
  4. Add follow-through and overlap with controlled phase offsets.
  5. Add secondary action that reinforces, never competes with, the main action.
  6. Add accents only where speed, impact, or clarity justify them.
Make the primary motion work without motion blur, particles, trails, or sound.
按以下顺序构建:
  1. 保留功能约束、接触规则、边界限制与输入行为。
  2. 将主体渲染为简单形状,确保核心路径与时间节奏具备可读性。
  3. 在作用力与接触事件前后添加姿态变化与变形效果。
  4. 通过可控的阶段偏移添加跟随与重叠效果。
  5. 添加次要动作,需强化而非干扰核心动作。
  6. 仅在速度、冲击力或清晰度需要时添加强调效果。
确保核心动效在没有运动模糊、粒子、轨迹或音效的情况下依然有效。

Engineer Deterministically

确定性工程实现

  • Compute animation state as
    state = f(frameOrTime, inputs, parameters)
    .
  • Keep evaluation independent of previous renders and render order.
  • Preserve fractional frames through interpolation and derivative calculations.
  • Seed procedural variation from stable identifiers; never use unseeded randomness during rendering.
  • Derive velocity and acceleration analytically or by sampling the pure state function.
  • Snapshot interactive inputs at an intentional commitment event when later changes would break the action.
  • Keep contact anchors fixed during squash, stretch, recoil, or settle unless sliding is intentional.
  • Preserve position and velocity continuity across phase boundaries unless a deliberate hit, cut, or snap requires discontinuity.
  • Normalize thresholds and amplitudes by subject size, travel distance, viewport, or scene scale.
  • Clamp exaggeration to protect legibility, geometry, and interaction constraints.
For Remotion, make every frame independently calculable because frames may render in parallel and out of order. For browser-based 3D work in environments that prohibit Remotion for 3D, use the project's Puppeteer capture workflow.
  • 动画状态计算遵循公式:
    state = f(frameOrTime, inputs, parameters)
  • 确保状态评估与之前的渲染结果及渲染顺序无关。
  • 在插值与导数计算过程中保留小数帧信息。
  • 基于稳定标识符生成程序化变化;渲染过程中切勿使用未播种的随机数。
  • 通过解析方式或对纯状态函数采样来推导速度与加速度。
  • 在交互输入的关键承诺事件处进行快照,避免后续输入变化破坏动作逻辑。
  • 除非有意实现滑动效果,否则在挤压、拉伸、回弹或稳定阶段保持接触锚点固定。
  • 除非是刻意的撞击、切割或突变,否则在阶段边界处保持位置与速度的连续性。
  • 根据主体尺寸、移动距离、视口或场景比例来归一化阈值与振幅。
  • 限制夸张效果,以保护可读性、几何结构与交互约束。
对于Remotion,确保每一帧都可独立计算,因为帧可能并行且无序渲染。对于基于浏览器的3D工作场景,若禁止使用Remotion处理3D内容,请使用项目的Puppeteer捕获工作流。

Tune by Perception

基于感知调整

Judge spacing, not just curves:
  • More distance between samples reads as more speed.
  • A short preparation followed by a large spacing change reads as force.
  • Closely spaced samples near an apex or decision point create emphasis.
  • Fast contact followed by compression and recovery creates weight.
  • Delayed extremities create flexibility and momentum.
  • A clean silhouette creates clarity before detail does.
Use asymmetry deliberately. Equal ascent and descent, identical easing on every channel, and synchronized body parts often read as mechanical.
判断间距而非仅依赖曲线:
  • 采样点间距越大,感知速度越快。
  • 短时间准备后间距大幅变化,会传递出作用力感。
  • 顶点或决策点附近的采样点密集,可增强重点。
  • 快速接触后伴随压缩与恢复,可营造重量感。
  • 肢体末端延迟动作,可展现灵活性与动量。
  • 清晰的轮廓比细节更能提升清晰度。
刻意运用不对称性。上升与下降对称、所有通道使用相同缓动、身体部位同步动作通常会显得机械。

Review Checklist

评审检查清单

  • Read the action correctly from a few still frames.
  • Confirm anticipation points in the direction of the coming action.
  • Confirm the path, orientation, and deformation agree with velocity and force.
  • Confirm impact intensity responds to incoming speed or force.
  • Confirm secondary action starts later and settles later than the primary action.
  • Confirm holds are intentional and do not freeze every channel.
  • Confirm responsive layouts preserve the same action logic at different scales and endpoints.
  • Confirm no effect compensates for a weak pose or broken transition.
  • Confirm each rendered frame is deterministic for identical inputs.
  • 通过少量静态帧即可正确理解动作逻辑。
  • 确认预备动作指向即将发生的动作方向。
  • 确认路径、朝向与变形与速度及作用力一致。
  • 确认碰撞强度与输入速度或作用力匹配。
  • 确认次要动作晚于核心动作启动,且晚于核心动作稳定。
  • 确认停顿是有意设计的,而非所有通道都冻结。
  • 确认响应式布局在不同尺寸与端点下保留相同的动作逻辑。
  • 确认没有特效用于掩盖薄弱姿态或断裂过渡。
  • 确认相同输入下,每一帧的渲染结果都是确定的。

Avoid These Defaults

避免这些默认行为

  • Do not use one linear progress value for every property.
  • Do not assume a symmetric parabola automatically creates a convincing jump.
  • Do not add generic bounce or elastic easing without identifying the force and pivot.
  • Do not apply squash and stretch continuously; concentrate it around acceleration and contact.
  • Do not let secondary motion lead the primary action.
  • Do not preserve physical realism at the cost of readability.
  • Do not exaggerate every channel at once.
  • Do not introduce stateful frame-to-frame simulation into an out-of-order renderer.
  • 不要对所有属性使用单一线性进度值。
  • 不要假设对称抛物线会自动生成逼真的跳跃效果。
  • 不要在未明确作用力与支点的情况下添加通用弹跳或弹性缓动。
  • 不要持续应用挤压与拉伸效果;应集中在加速与接触阶段。
  • 不要让次要动作主导核心动作。
  • 不要为了物理真实感牺牲可读性。
  • 不要同时夸张所有通道。
  • 不要在无序渲染器中引入依赖帧间状态的模拟。