【spine】同动画的换皮方案?

近期在看骨骼动画换皮肤,有一百个同动作的人物需求

image

方案一:

https://docs.cocos.com/creator/manual/zh/editor/components/spine.html#spine-换装

官方一般是setSkin,但就是美术输出+动效处理。
美术输出后:
动效需要做皮肤对齐一百遍。

方案二:

当前想法是动画这边骨骼仅做一次,输出合图后美术贴图替换个一百张合图,这样得到json、atlas各一个,然后一百个png图片。

然后参考到3.x的换皮方案:
【方案】Cocos Creator 的 web/原生多平台 Spine 换装方案解析,附 Demo 源码 - Creator 3.x - Cocos中文社区

https://forum.cocos.org/t/topic/83266/70?u=2485880454

缺点是需要改动引擎而后编译。

方案三

发现没编译前只需要改atlas这个文件里面的png对应,能否在加载骨骼前先加载这个文件,而后修改这个参数来对应不同图片?

`_IOM4$RIS37ZWM)ETWGKV

请问这样可行吗?还是得按照方案二的,修改一下引擎,对应复制保存skeData

可行,甚至自己组装数据都行。比如我们的一个游戏,除了动画一致,其它有很多不同(即不是单纯换肤),所以我们把动画数据单独出来,然后组装上去

skeletonData.skeletonJson.animations = data.json.animations;
this._sp.skeletonData = sp.SkeletonData.copy(skeletonData);

如果动作一致,只是皮肤不同,还是建议外部换肤就好了。