creator3d的Animation动画过渡有个bug,短时间内快速切换多个动画会有异常

一个3d模型有两个动画状态,Idle(待机),Move(移动)

如果连续通过crossFade播放这两个动画,模型会发生不断地重复闪现错乱。

例如

animation.crossFade(“Idle”);
animation.crossFade(“Move”);

这时会发生动画闪现错乱的效果。

如果这样运行就没问题

animation.crossFade(“Idle”);
this.scheduleOnce(()=>{

        animation.crossFade("Move");

    },0.3); 

//因为crossFade 默认的动画过渡时间是0.3秒,所以延迟0.3秒后再过渡另一个动画就没问题

或者

animation.crossFade(“Idle”,0);
animation.crossFade(“Move”,0);
//把动画的过渡时间设置为0,连续执行多个动画切换也没事。

或者

animation.play(“Idle”);
animation.play(“Move”);
//直接用play播放也没事,效果和crossFade(“动画”,0)一样。

总结出原因就是,一个动画在crossFade时,如果过渡时间(默认0.3秒)还没过完就crossFade另一个动画,必定会发生动画错乱。

和这个是同一个问题?提一个bug,creator3d的Animation切换动画,不能在start函数执行

不是同一个问题,你看我的描述。这个问题发生在crossFade函数。你按我开头那几个描述操作很容易重现出来的

OK 收到,方便提供动画和模型吗?

晚上再提供给你。或者你随便用个3d模型做测试就能发现问题

OK,如果方便的话还是提供给我下,我们之前处理过一个类似的问题,当时是动画周期小于 crossFade 周期导致的问题。

我的是crossFade的第二个参数引起的,动画周期可以大于第二个参数。如果第二个参数是0.2秒,一个动画刚执行到0.1秒时,做crossFade切换别的动画,必定会发生动画错乱

已建立工单追踪

3.1.2又出现这个问题了

可否提供下重现项目呢友友

demo.zip (2.3 MB)
当停止改变动画时,打印为run的时候动画还是runHit并且模型一闪一闪的

你好,很抱歉这么久才回复!我们在 3.5 重新审查了这个问题,只要取消勾选 useBakedAnimation 即可: