cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

[spine相关] 动画倒放时, "在指定区间内播放"的功能失效

Open finscn opened this issue 1 year ago • 6 comments

Cocos Creator version

3.8.3

System information

all

Issue description

通过 timeScale = 负数 的方式来实现动画的倒放. 正常情况下 是ok的.

但是 当通过 trackEntry.animationStart 和 trackEntry.animationEnd 来指定播放区间时. 倒放会无视 这个播放区间, 直接倒着播放到 动画的第一帧.

Relevant error log output

No response

Steps to reproduce

如上所述

Minimal reproduction project

No response

finscn avatar Aug 06 '24 09:08 finscn

进一步研究了下 , 问题是这样的.

当 trackEntry.timeScale = 负数 时, 动画总是从 trackEntry.animationStart 和 trackEntry.animationEnd 中, 数值较小的那个开始播放, 一直倒放到0 .

也就是说 下面两段代码:

 trackEntry.animationStart = 0.3
 trackEntry.animationEnd = 0.5 
 trackEntry.timeScale = -1 

 trackEntry.animationStart = 0.5
 trackEntry.animationEnd = 0.3
 trackEntry.timeScale = -1 

实际播放效果是一样的: 从 0.3 开始 倒放到 0.

另外 先设置 trackEntry.timeScale 后设置 animationStart/animationEnd 对结果没影响.

@minggo 这个100% 是bug . 求确认

finscn avatar Aug 22 '24 07:08 finscn

关于倒放, spine 官方好像有个 专门的api : trackEntry .setReverse/getReverse , 但是cocos里没有暴路出来. 不知道如果暴露了 用这个api是不是可以

finscn avatar Aug 22 '24 07:08 finscn

https://github.com/EsotericSoftware/spine-runtimes/blob/3.8/spine-cpp/spine-cpp/src/spine/AnimationState.cpp 看了官方的3.8版本,没有支持 trackEntry .setReverse/getReverse ;官方在最新版本4.2是有支持,这个可能需要升级spine版本才能提供对应功能

bofeng-song avatar Aug 22 '24 08:08 bofeng-song

官方文档说timeScale不能小于0 https://zh.esotericsoftware.com/spine-api-reference#TrackEntry-timeScale

若需要支持倒放,目前看应该需要升级spine

bofeng-song avatar Aug 23 '24 01:08 bofeng-song

官方文档说timeScale不能小于0 https://zh.esotericsoftware.com/spine-api-reference#TrackEntry-timeScale

若需要支持倒放,目前看应该需要升级spine

那cocos是否有计划升级spine 呢? spine 4.x 都出来三年多了.

竞争对手 LayaAir 目前同时 支持 3.7,3.8,4.0,4.1版本.

finscn avatar Sep 03 '24 08:09 finscn

嗯嗯,我们研究一下。

minggo avatar Sep 03 '24 08:09 minggo

@finscn 你好,386已支持 Spine 4.2, 需要spine 资源升级到 4.2, 另外 针对 reverse的设置,这个 PR已修改,需要的话,需要手动合并,并且自己编译对应的wasm版本。

bofeng-song avatar Mar 26 '25 09:03 bofeng-song

@finscn 你好,386已支持 Spine 4.2, 需要spine 资源升级到 4.2, 另外 针对 reverse的设置,这个 PR已修改,需要的话,需要手动合并,并且自己编译对应的wasm版本。

谢谢. 不过 不知道怎么"自己编译对应的wasm版本" .

finscn avatar Mar 27 '25 07:03 finscn

@finscn 参考这个 PR

bofeng-song avatar Mar 27 '25 07:03 bofeng-song