次级运动:用阻尼弹簧让头发和尾巴跟上来
关键帧调好了动作还是显得硬,缺的是被主体带动、慢半拍跟上来的次级运动。这篇讲阻尼弹簧怎么用频率与阻尼比两个正交参数暴露给动画师,以及接进 2D 骨骼系统时的五个坑:显式欧拉为何无条件不稳定、帧率不同结果不同、骨骼链必须同帧从根到梢更新、该弹角度而不是位置、以及瞬移为什么会让弹簧爆炸。
关键帧调好了动作还是显得硬,缺的是被主体带动、慢半拍跟上来的次级运动。这篇讲阻尼弹簧怎么用频率与阻尼比两个正交参数暴露给动画师,以及接进 2D 骨骼系统时的五个坑:显式欧拉为何无条件不稳定、帧率不同结果不同、骨骼链必须同帧从根到梢更新、该弹角度而不是位置、以及瞬移为什么会让弹簧爆炸。
挤压拉伸接进骨骼系统之后,麻烦几乎全部来自一件事——非均匀缩放不能像旋转平移那样安全地沿层级传递。这篇讲二维的面积守恒与它不守恒的两样东西、缩放中心选错为什么让球陷进地板,以及核心的层级陷阱:父节点非均匀缩放乘以子节点旋转会产生切变,症状是只有转了角度的部件变成平行四边形。
线性混合蒙皮表达不了褶皱、绘制顺序和跟随延迟。说明网格形变为什么必须加在绑定空间、绘制顺序为什么是离散轨道,以及 Live2D 参数驱动形变的伪 3D 原理。
导出后时间轴被编译成 CreateJS 显示对象树,canvas 每帧重画整张画面。解释矢量为何每帧付一次光栅化代价、cache 的三个参数陷阱,以及滤镜为什么必须配合缓存。
推导 Graphic 元件按父帧取帧的三种循环模式公式,解释 Movie Clip 为什么在编辑态只显示第一帧、在逐帧导出中不展开,以及口型动画为什么必须用 Graphic。