explainer-motion 是 kitlangton/psychopomp 项目下的动态设计技能,面向讲解图(explainer diagrams)与讲解影片的动画制作,让连线、消息和卡片具有动能与物理感。资料给出的核心原则是“能量有来源”:每个节拍都应把能量从某个具体点传到另一个点,先聚集于源、再传播、最后在被吸收处留下逐渐冷却的光;任何发光、闪烁或移动都应有观众可指认的原因。
主要规则包括:静止时保持安静,空闲的线与框应静止且无光泽;一个节拍只设一个焦点动作,先建立源、跟随信号、再读取结果,旁白期间停止背景流动;光是局部的,光来自移动物体并随距离衰减,到达时只从插口处给卡片上色,而非整卡泛光;接收方不缩放,到达表现为小圆环、从插口涌出的光和墨迹闪光;泛光只用于有生命的东西,如包头部和主角对象;颜色有意义,信号接近白色、红色表示失败、单一强调色表示应跟随的对象。
在缓动方面,资料建议:包传播使用最小加加速度五次曲线(smootherstep),避免习惯性使用三次 in-out;相机移动可尝试临界阻尼弹簧或最小加加速度滑行;绘制使用 cubic-bezier(.45, 0, .2, 1);刚性面板入场用小位移加阻尼弹簧,内容约滞后 60 ms;闪光为瞬时攻击、凸形衰减;被击打物用欠阻尼弹簧产生振响。反应应跟随接触,回复不得在请求到达前就开始准备。
资料还强调纯时间函数:任意帧以任意顺序渲染结果一致,事件各阶段由同一时钟(其年龄)推导,重定向时保留速度,不用阶梯值伪造缓动,并渲染运动模糊。连续性上,物体应变换而非切换;物理隐喻应让机制字面化,如被杀的服务器碎裂、掉落的错误下落、超时是收拢的环、数据沿导线流动。相机用于推入开场、漂向说话者、拉焦到重要平面、拉远展示后果、推近解决;仅在撞击时抖动。节奏上入场错开约 120 ms,撞击落在说出的词上。
节拍类型包括 send、connect、settle-in、hit、destroy 等,常量与公式在 TECHNIQUES.md 中。在 Psychopomp 中可使用 StageActor 节拍(send、send_arriving、connect、connect_contacting、settle_in、hit、twang、land、orb_in、glitch、rewind、swap_status、halo、ring_timer、disconnect)、stage::reply_after、author::stagger 和 psychopomp::math。建议先渲染短时正常速度研究,再制作完整影片,命令示例为 plan render <plan> out.mp4 --range a..b,并检查 40 ms 以内的接触帧。资料未提供收费、价格、平台支持范围等信息。