复制关键帧仅搬运属性值,不继承插值类型、枢轴状态及运动语义;粘贴前须清空目标时间点、选中目标模型、关闭Snap to Frame,并手动输入精确时间值,之后必须重设插值与枢轴。

复制关键帧前必须先清空目标时间点
直接 Ctrl+V 粘贴,大概率“看不见”关键帧——它可能覆盖在已有关键帧上,或落在当前视图外不可见区域。Composer 不提示、不滚动、不校验冲突,只静默写入。
- 粘贴前,先把时间滑块拖到目标轨道的空白时间位置(比如 3.0s 处没有其他关键帧)
- 若要粘贴到另一模型轨道,必须先在装配树中单击选中该模型,否则粘贴会默认落到当前选中模型的轨道
- 想覆盖同时间点的已有关键帧?粘贴前按住
Alt(Windows)或Option(Mac) - 粘贴后立刻按
Home键回到时间轴起点,再拖动滑块逐帧确认是否落位准确
移动关键帧不能靠拖拽,必须手动输入时间值
拖动关键帧时只要开启过 Snap to Frame(哪怕只开过一次),就极可能引入毫秒级偏差,比如显示为 “2s”,实际是 1.998 或 2.003。循环动画里这 0.003s 就是硬停一帧的根源。
- 关闭吸附:时间轴右键 → 取消勾选
Snap to Frame(快捷键Ctrl+Shift+S) - 双击关键帧下方的时间数字,手动输入带一位小数的精确值,如
2.0、4.0、6.0,然后按Enter确认 - 不要依赖 UI 显示的“秒数”,它只是四舍五入后的展示;真实值以输入框内浮点数为准
复制后插值类型和枢轴状态不会继承
复制粘贴只搬运关键帧的位置和属性值,但 Interpolation 类型、手柄控制点、枢轴位置/朝向这些状态全部丢失。你粘过去的是“裸数值”,不是“运动逻辑”。
- 粘贴完成后,必须重新选中整段区间的关键帧(比如
0s–3s和3s–6s),右键 →Interpolation→ 统一设为Bezier - 检查枢轴:选中对应零部件 → 属性面板中核对
Pivot X/Y/Z是否与原始帧一致;方向不对就用对齐枢轴 → 在直线或轴上指定重拾取 - 特别注意:枢轴不插值,每个关键帧都得单独设置。复制完的帧如果没重设枢轴,播放时零件可能绕错中心旋转甚至飞出画面
别信“复制关键帧能复用动画”这种说法
Composer 没有传统关键帧系统,所谓“复制关键帧”不是 AE 或 Blender 那种可跨时间/跨对象自由复用的动作单元。它只是记录某时刻某对象的某个属性快照,不携带运动语义。
- 想让多个零件执行相似位移?别复制帧,改用
AnimatableModifier封装逻辑,比如DriftMotion()这类结构体 - 硬要同步两段动画节奏?只能手动导出源帧的
position、rotation(注意旋转要用simd_quatf计算,别直接赋 Euler 角) - 所有“复制→粘贴→调参→再检查”的操作,本质都是在重建状态,不是复用。真正省时间的方式,是提前规划好枢轴、统一插值、禁用物理模拟


















