😔 sp.Skeleton bug?求助大佬们

1

问题1:设置cache为realtime 播放正常 可是换了一个头 另外一个会跟着换 怎么不跟着换呢
问题2:设置cache为private_cache或shared_cache 播放不正常 第一帧必定还原头 然后变回换好的头 依然是换这个头 另外那个头也会跟着变

哪位大佬懂吗 还是说cc2.4.6有毒。。

你这两个动画是同一个预制体还是动态加载的?

同一份龙骨资源的 除非资源拷贝一份 换头另外一个就不会跟着换了 那岂不是多余了 好歹一份百K大小

image
image

为了换装另外一个不关联到 不跟着变 难道得这样拷贝吗

@jare 大佬 sp.Skeleton里的cache设置的三个模式有毒吧 2.4.6版本用了 效果不对啊

照理说,两个节点播放龙骨,应该不会用到同一个动画栈的啊

改了cache模式还是用到同一动画栈 所以改头两个都一起变了 关键private_cache或shared_cache两模式的时候播放动画的第一帧还会还原头 然后马上秒变换好的头

你换头的操作是不是写在播放的后面了?

想多了 那只是换个sp插槽的region 播放是我测试时定时 三秒播放一次

检查一下,第一帧是不是没打K帧

K帧是什么鬼

你不懂spine,不怪你,不肯百度就是你的不对了,自行百度,关键词“spine K帧

第一条结果,就跟你解释了K帧是“什么鬼

只有不关联的资源才能一个换头 它不跟着换 怎么用同一份资源 不关联呢

NewProject.zip (1.5 MB)

RegionAttachment类型可以改变宽高实现透明
MeshAttachment类型怎么弄呢 只能换个透明图进去吗

我们做法是直接动画那边把换装做进了动画文件里,程序按名称getAttachment,然后findSlot找到对应插槽后setAttachment。。。。。没你们这么复杂的感觉
然后以前还有种做法,不知道动画怎么做的,直接换皮肤setSkin,后来同事不会就用的上面那个方法

                    let copyData = new sp.SkeletonData();

                    for(const key in skeletonData) {

                        if (skeletonData.hasOwnProperty(key)) {

                            const element = skeletonData[key];

                            if(key != '_skeletonCache') {

                                copyData[key] = element;

                            }

                        }

                    }

                    copyData['_uuid'] = skeletonData['_uuid'] + '-' + String(Date.now());

                    resolve(copyData);

copy一份数据用在不同的spine节点中,这样不会出现修改一个另一个同时变化的情况

必须选实时模式才不卡帧 要不然第一帧都是还原本来的头 然后秒变回换好的头

请问下,这个怎么使用的额