之前写过一篇Spine官方提供的描边方案,今天试着用换色的方法实现。
原理很简单:
-
用PS给导出的图片添加外发光,颜色为FilterColor
修改Spine原Shader,添加换色方法,然后在frag里调用一下替换掉原有颜色即可
Outline Color为最终需要的描边颜色,可调整透明度
Filter Color是图片里的描边颜色,找一个图片里用不到的色调即可
Filter Power是取色阈值,如果上面颜色选的合适,不重要
关键代码:
比较:
- 比官方方案节省计算量(如果把换色的if去了就更好了)
- 描边粗细可由美术人员控制,但官方可以在Unity里调整粗细渐变,更加灵活
- 做完动画需要P一次图,当然也可以整合为脚本自己添加
附:imagemagick命令自动生成外发光
convert test.png -bordercolor none -border 10x10 -background purple -alpha background -channel A -blur 0x5 -level 0,50% out.png