Spine加载外部图片换装不穿帮的方案

我只是 提供一种 他既要又要的解决办法 还有就是 Spine中只要涉及网格 就没法单纯的用图片进行替换 加上Spine网格权重计算原理的特殊性 无法直接构造一份假的Mesh网格数据 进行替换

非常感谢,请问我这样理解准不准确?

1、还是外部加载文件,但是需要对素材(比如鞋子)进行 spine输出,输出骨架json数据,实例化成一个不显示的Skeleton 给目标Skeleton进行替换(但是要求骨架必须一致,只是网格数据有差异)

2、由于“3.8.4中的代码TS里也没暴露出 attachments 中的 attachment属性”,所以这个方法只适合 web/小游戏,app的话要修改引擎原生代码编译引擎才支持。

是的 原理就是将 单纯的一张图片 进行Spine封装 但是应为Spine运行原理机制导致 必须要 骨架一致 才能显示 因为mesh网格权重他计算的是 骨骼在数组中的下标 如果骨骼不一致 就会导致网格数据错误

第二点的话 只有自己改了 我这边项目是进行修改过的 此方法也是我项目正在使用的 已经更新了300多皮肤 部件的话加上武器大概是1000+了

好的,谢谢,我这边按这个方法试试。

请问有方法验证 2个骨架是否一致吗?刚刚按照上面的方法进行替换,替换过去替换的那部分显示异常

修改的是目标皮肤里面修改的是这个(shoe_R_1)关键帧里面的图片位置。

这个是因为 你的主骨架没有 对应文件的动画网格数据。这个需要工具进行合成(工具我是自己写的) Spine网格 会有两个地方出现 一个是 皮肤本身有一份网格数据 还有就是 动画动作中会出现一份 运行时被改动的网格数据

已主骨架为基础。把目标文件中动画动作的 进行缺少的填充

mesh的问题主要是边缘问题,让美术确定边缘大小就好了,超出的图片部分留空。

例如全部文件最大边缘是xxx,那就确定项目整体的mesh大小是xxx

这样,美术可以在这个mesh里随意修改贴图,替换贴图。美术可以随意修改,程序也是可以随意修改的。

刚刚测试了spine的mesh操作,这个还是很简单的,让美术必须使用相同网格,并在网格上替换图片。使用相同网格的换装图片,怎么会不同呢。如果是不同网格,那都不是一个spine文件(或动画)了。有点不明白楼主的需求点了
————————————————————————————————
楼主的需求点可能在动画上,不同动画使用了不同网格。这样的换装,肯定不能只替换贴图,动画也是不一样的。这里,美术应该对每个动画都生成了单独的动画文件。这都成了美术问题了,每个皮肤不同的网格、不同的动画,程序播放的时候,将不同动画拼在了一起。这要求美术为每个皮肤都创建一个spine文件,对应不同的动画,然后进行拼装。(我正开发的某个游戏有换装需求,又学到了)
——————————————————————————————————
如果体型也有变化,那动画是成倍的增长。如何降低动画数量?解决方案恐怕只有3D模式那样的碎图。
——————————————————————————————————
2D换装确实有点问题,大多数换装都是3D游戏,所以复杂的换装需求必然是使用3D的解决方案。3D游戏中,模型被分解成了不同的材质球,每个材质球对应特定的贴图,贴图中的碎图对应不同的模块。相同模块可以大小不同,但是顶点的相对位置要求一致。在2D游戏中,模块对应的是一个网格,所以要求网格点的相对位置不能改变,可以在法线方向上伸展。
——————————————————————————————————
以永劫无间这个游戏为例,其中的解决方案是,一个皮肤不能被多个角色共用。

1赞

网格的大小受限于图片的大小,最终是相同图片并带有透明区域。同时确定图片最大扩展区域。只要是会用spine,这个问题还是很容易解决的。今天又多学了一个spine网格的操作。