Creator3D 1.1.1 crossFade 从Normal到Loop会意外缩放的BUG

重现步骤

  1. 一个GLTF,包含1个模型和2份动画
  2. 一个动画叫 ShrinkToStandWrapModeNormal (下图左)
  3. 其中一个动画叫 StandIdleWrapModeLoop(下图中)
  4. 通过程序控制,先播放 Normal 的那份动画,播完后从静止状态 crossFadeStandIdle 然后保持循环状态

结果

  • Normal 的动画播完之后,在 crossFade 过程中出现了整体 Scale 从0到1的缩放动画。
  • 无论动画和代码中,均无Scale动画

如图

可重现的工程:
C3D_crossFade_issue.zip (928.6 KB)

顶一个,我也遇到了。
我猜测是crossfade是通过前一个动画权重缩小,后一个动画权重放大实现的。但是前一个动画停止了,有权重也不去影响后续的姿态计算。这样两个动画虽然scale都是1,前一个动画权重0.9,后一个动画权重0.1的时候,但是scale会变成0.1。(scale意思就是变换矩阵中的相应部分,这里简写)

PS:之前在这个帖子里反馈过。

我临时的规避方法是,如果crossfade里边只有一个动画,且动画暂停了,就让这个动画倒序播放0.0

的确有这个问题,我们会尽快解决。

你好,我们提交了修复 PR:
https://github.com/cocos-creator/engine/pull/6989

应用方法:

  1. 更新此条 PR 至引擎(自定义引擎目录在 <编辑器安装目录>/resources/3d/engine);
  2. 重新启动编辑器;或 [菜单] - [开发者工具] - [编译引擎]。

此修复将在 1.1.2 中正式应用。