关键帧时间错位是因“吸附到帧”强制对齐整数帧导致毫秒级偏移;应关闭吸附、双击输入带小数的时间值(如2.0)、并确保时间轴终点≥循环总时长。

关键帧时间错位不是精度不够,是 Composer 强制对齐整数帧导致的毫秒级偏移;关闭吸附、手动输入带小数的时间值、校验总时长,三步就能稳住时间轴。
为什么拖动关键帧总会差一帧
根本原因是“吸附到帧”(Snap to Frame)默认开启,它会把你的拖动操作强制吸附到最近整数帧——比如你本意设在 2.0s,实际存成 1.998s 或 2.003s。循环播放时,这点偏差会被放大成明显顿挫或跳帧。
- 不要依赖拖动对齐:哪怕看起来“挨着”,背后可能是
2.001s和4.001s,循环边界就断了 - 快捷键切换吸附:
Ctrl+Shift+S(Windows)或Cmd+Shift+S(Mac) - 右键时间轴空白处可直接调出吸附开关菜单
怎么手动输入精确时间点
时间轴下方每个关键帧都对应一个可编辑的时间数字,双击它才能真正写入浮点值;UI 显示的 “2s” 只是四舍五入后的展示,不能信。
- 双击关键帧下方的时间数字(如显示 “2” 的位置),输入
2.0、4.0、6.0等带一位小数的值,回车确认 - 复制粘贴关键帧前,先拖动时间滑块到目标时间点的空白区域,再
Ctrl+V,避免落在不可见区或被覆盖 - 想覆盖已有关键帧?粘贴前按住
Alt(Windows)或Option(Mac) - 粘贴后立刻按
Home键回到起点,拖动滑块逐帧确认位置是否真落到了2.0
总时长不足会导致末尾硬跳回第 0 帧
Composer 不会自动延长动画区间。若你设了 3 秒循环 × 3 次,但时间轴终点只到 8.9s,最后一段就会被截断,播放器只能硬跳回 0.0s,造成卡顿感。
- 导出前务必检查时间轴右端数值 ≥ 循环总时长(例如
9.0) - 时间轴末端没有关键帧?不影响,只要刻度 ≥ 目标值即可
- 如果用的是视图动画(非关键帧驱动),需确保最后一个视图拖入时间轴后,其结束时间 ≥ 总时长
WSL2/Docker 中编辑后关键帧时间漂移
这不是 Composer 的 bug,而是宿主机与虚拟环境系统时间不同步所致。一旦偏差超 60 秒,filemtime() 返回异常,关键帧顺序错乱甚至报 signature verification failed。
- WSL2 中临时同步:
sudo hwclock --hctosys - Docker 启动时必须挂载时区:
volumes: - /etc/localtime:/etc/localtime:ro - CI 流水线(如 GitHub Actions)开头加:
sleep 2 && timedatectl timesync-status,等 NTP 校准完成再执行composer install
最常被忽略的其实是“粘贴后不滚动视图”——Ctrl+V 成功了,但关键帧可能落在当前视野外,你以为没粘上,其实是没看见。


















