Spine 单个动作正常,切换时却跳姿势?先查动画混合
把单独动作、动作切换和工作台图片校准分开,记录有方向的过渡与真实轨道状态,不靠重画部件掩盖切换问题。


走路单独播放正常,攻击单独播放也正常,但从走路切换到攻击时手臂突然跳动。先不要重新裁袖子或调整握柄:问题可能发生在两个动作的过渡,而不是某一张部件的固定位置。
把单动作与切换分成三份证据
在同一文件批次与显示条件下,分别记录 A 单独播放、B 单独播放、A 切到 B。若 B 自身就有异常,先处理 B;只有切换阶段出现差异,才进入过渡状态排查。这是定位分支,不是仅凭肉眼证明某个 mix 参数错误。
回到 Spine 工作台按教程核对同一模板与动作,可以提供来源基线;工作台预览不能代替目标项目里的状态切换测试。
动画混合时间有方向,不能只写一个“默认值”
Spine 官方 Applying Animations 文档说明,AnimationState 可以依据 AnimationStateData 的混合时间在动作间过渡,也支持默认值、动作对设置和 TrackEntry 的 mixDuration。A 到 B 与 B 到 A 是不同的动作对,需要分别确认。
官方文档中的数值是演示,不是所有角色都适用的推荐时长。本篇没有测出一个“最佳秒数”。零时长可以作为负责人在副本里进行的直接切换对照,不能默认认为零一定错误;有些动作设计本来要求立即响应。
请集成人员保留这张状态记录
- 切换方向:确切的 A 名称、B 名称和触发时刻。
- 混合来源:实际使用默认值、动作对值还是条目覆盖,未知就记待查。
- 轨道:参与的轨道编号,是否有更高轨道给手臂等局部属性打关键帧。
- 调用:一次切换触发一次设置,还是更新循环里重复调用了 setAnimation。
- 观察:突变只在过渡区间出现,还是 B 后续阶段持续存在。
官方说明 setAnimation 会替换当前轨道的动画和已排队动作;所以需要核对真实调用记录,而不是看到动作名称正确就认定状态正确。这里不声称每次重复调用必然呈现同一故障,也不提供未经验证的引擎代码。
过渡混合、轨道叠加与约束 Mix 别混成一个开关
较高轨道可以对其关键帧涉及的属性覆盖较低轨道。轨道参与范围、动作间混合,以及 IK 等约束的作用强度属于不同层次;不要因为属性都可能带有 mix 或 alpha 字样,就统一改成零。
在测试副本中,先由负责人明确实际参与者,再一次只验证一个条件。关闭业务需要的上身动作或约束,可能让一个姿势看起来正确,却破坏射击、瞄准或接地行为。
修复后验证返回方向与业务触发
至少复查 A→B、B→A、快速连续触发和原本需要的单次/循环结束流程,并记录设计预期。若暂停或慢速观察可用,注明它改变了测试条件;本文不把它当工作台必有的功能。
当骨骼姿态与参考一致而图片连接处仍错位时,再进入部件校准;当跳变来自运行时状态,则交给集成负责人处理。公开教程没有证明工作台可以编辑任意 AnimationState 混合表。不要通过修改生产 JSON 或反复生成部件来代替可复现的过渡记录。
