骨骼动画动态换皮的功能问题。

求教:在spine方面,用setAttachment( )换某个部件只是静态的,一播放动作就变回去了。几个问题
1、如果在slot下放图,能不能在setAttachment( )之后的spine动画中还存留?
2、如果我想用Resources下的图片资源动态的替换槽上的图,可以实现1中的目标吗?我看到cocos2d- x有些解决办法,我照2dx说的方法改,在cocoscreater里能行吗,如果能行能不能给个cocoscreater适用的指导呢?
3、我看到更新dragonbones后的示例集合里,可以实现1的目标,那么dragonbones可以实现目标2的动态的换皮效果吗。

其实最想实现目标2,新手不熟悉引擎,有点无从下手了。

1赞

这几天,又研究了一下spine,有了几个思路,自己记录一下
1.如果只换一张图,可以把spine.setAttachment( )方法放在update中,每帧更新,但总感觉不妥。
2.直接在spine中设置皮肤,在场景中调用。
3.我发现skeleton. json的数据包含了整个骨骼动画的所有信息,只要纹理存储在json中的skins.default(默认的皮肤名).sward(我自己设置的武器节点名字)中,接着修改json中 slots[i].attachment的名称就可以实现,手动修改json数据可以实现换皮的效果。但是在用cc.loadres读取时发现特定的名字为skeleton的json文件无法读取,如果改了名字比如skeletonu就可以读取,但此时改了名字后骨骼数据也无法加载了。所以如果能解除对skeleton的读取限制,直接修改数据就可以做到。
4.在引擎解析骨骼数据时作修改,改底层引擎,基本目标也就是slots下的attachment改动,复杂的是c++不熟悉,改完还需要js绑定更加不熟悉。

总结:自己慢慢接触,慢慢熟悉引擎也好。

”在spine方面,用setAttachment( )换某个部件只是静态的,一播放动作就变回去了“大兄弟你的这个问题应该是在编辑动作的时候,K了帧了,比如说你的静态模式的spine动画,人物手上有一个斧子和宝剑。你有一个攻击的动作。在静态模式下你应该设置这个插槽下的两个附件都是不可见的,你在编辑动画的是只作出一个砍人的动作,然后这个插槽下是显示斧子还是宝剑你就用setAttachment()来控制。如果你在编辑动作的时候让斧头显示了,那么spine就会记录下这一帧让斧头这个附件显示,这样子的话你通过setAttachment()来设置显示宝剑就会又变成斧头了

明白了,感觉自己不懂的还挺多的,谢谢指点呐:relaxed:

我也遇到了同样的问题 静态模式下把插槽下的两个附件设为不可见 当动画播放的时候 无论怎么setAttachment 都是看不到Attachment

spine好像是机制问题,换dargonbones比较好解决。