零代码实现Unity2D角色Sprite批量换装

先看成果

 图片上限5M,画质渣没办法o(╥﹏╥)o

思路参考:https://www.youtube.com/watch?v=ZgCB4tifQ_c

零代码实现Unity2D角色Sprite批量换装_第1张图片

        2D角色换装的教程不少,但大多都是以套装为主,大批量替换局部装备的似乎没有。研究了很久,这里也算做一个记录。

一、角色素材

        角色所有部位都需要在PS里面单独分层,保存PSB源文件导入Unity。

        注:肢体和装备都需要有,注意图层遮挡顺序。

零代码实现Unity2D角色Sprite批量换装_第2张图片

二、装备素材

        每一类替换装备都需要单独的PSB,为了防止替换装备时产生的坐标错位,建议每一件装备都在图层内对齐

        例:所有衣袖需要向上对齐,所有鞋子需要向下对齐,不同武器需要手持位置对齐。

零代码实现Unity2D角色Sprite批量换装_第3张图片

零代码实现Unity2D角色Sprite批量换装_第4张图片

三、角色绑定

        下图仅做参考,不会Unity2D绑定的小伙伴还请移步其他教程。

        注:不要忘记给装备也附上蒙皮,不然后续会报错。

零代码实现Unity2D角色Sprite批量换装_第5张图片

    

四、装备绑定 

        以上衣举例

        打开Player的Sprite Editor,按住Ctrl键加选或减选控制上衣的骨骼,并点击箭头所示:Copy Rig

零代码实现Unity2D角色Sprite批量换装_第6张图片

        因为我有弯腰动作,所以是两根。一根也无所谓,重点是要包含该部位的全部骨骼

零代码实现Unity2D角色Sprite批量换装_第7张图片

         打开需要换装的上衣Sprite Editor,并选择Paste Rig进行拷贝。

        此时右下角会出现设置,只需要勾选Bones骨骼即可,其他的不需要复制进来。

零代码实现Unity2D角色Sprite批量换装_第8张图片

         骨骼复制进来后,按照下图所示步骤给所有上衣素材统一刷蒙皮。

零代码实现Unity2D角色Sprite批量换装_第9张图片

         注意本体被替换部位的骨骼数,一定要与替换装备骨骼数量、所在父子级关系完全一致。一般来说拷贝不会错,除非骨骼漏选,或者本体该部位的蒙皮有问题。

五、Sprite Library Asset装配

        首先新建一个Sprite Library Asset,这是2021的版本,有些版本可能不在这个位置,但是名字都一样。

零代码实现Unity2D角色Sprite批量换装_第10张图片

         新建所属的装备分类,并把相对应PSB中的Sprite文件都拖进去。

零代码实现Unity2D角色Sprite批量换装_第11张图片

零代码实现Unity2D角色Sprite批量换装_第12张图片

六、Player换装

        Player对象身上新增Sprite Library组件,并把刚刚配好的Sprite Library Asset赋值给他。

零代码实现Unity2D角色Sprite批量换装_第13张图片

         需要换装部位添加组件Sprite Resolver,选择刚刚配置好的对应Category。批量换装就完成啦!

零代码实现Unity2D角色Sprite批量换装_第14张图片

        如若装备位置与Player位置对不上或扭曲变形,在装备Editor中调整骨骼的旋转角度或位置即可。

七、Sprite Skin报错

        这个组件是刷新蒙皮后自动生成的,里面包含了该Sprite所属的上下级骨骼关系。具体内容可以自行学习官方文档,这里要讲的是可能存在的报错问题。

零代码实现Unity2D角色Sprite批量换装_第15张图片

 1、缺少Collections Packages

零代码实现Unity2D角色Sprite批量换装_第16张图片

Install Burst and Collections packages to enable deformation batching

        当出现这个提示时,需要去Package Manager中下载一下Collections。如果依然存在警示,就工程重启一下。重启大法,专治载入不成功。

零代码实现Unity2D角色Sprite批量换装_第17张图片

 2、换骨不匹配

零代码实现Unity2D角色Sprite批量换装_第18张图片

Sprite has no Bind Poses 

        如果出现这个报错,会导致角色换装时骨骼动作跟不上,主打一个不同步。

        出现原因是 替换者 与 被替换者 的骨骼数量或父子级关系不匹配,导致配对失败,需要重新检查双方是否一致。


以上就是Unity2D换装的一些步骤和心得,要是有不对的地方欢迎大佬们评论区指正讨论。

 零代码实现Unity2D角色Sprite批量换装_第19张图片

你可能感兴趣的:(unity)