Cocos Creator 基于 Spine 动画的 AVATAR 换装系统优化

本文介绍了基于 Spine 动画的 AVATAR 换装系统在 Cocos Creator 中的优化方法,包括理解 Spine 对网格部件的裁剪支持、解决网格部件在裁剪后的 UV 映射问题,以及探讨了在多人同屏场景下的优化策略,如动态合图减少显存占用和渲染批次。
摘要由CSDN通过智能技术生成

很多游戏开发团队都正在使用 Spine 动画软件来制作人物 AVATAR 动画。今天,玩吧技术专家组的红孩儿将以玩吧 APP 中的游戏《噜噜喵》为例,同大家分享基于 Spine 动画的 AVATAR 换装优化,希望能够对有类似需要的小伙伴有所帮助。

作为一款广泛应用于游戏中的 2D 动画制作软件,Spine 提供了良好的骨骼动画功能和库接口来实现人物 AVATAR 动画。

d9ceb2b38a407775f496cc4fedbab498.png

自从 Spine 支持顶点网格以来,很多用来表现长发、长裙动画的身体部件,会使用比矩形区域更复杂的顶点网格来制作,以更好的体现部件中的摇动细节。这些部件从一个简单的四个顶点矩形区域,变成了由多行多列顶点组成的平面模型。顶点从左上到右下进行 UV 展开,映射到纹理图区域。在表现长发摇动,长裙摆动等细节动画时,只需要通过对相应位置的网格顶点进行移动就可以实现。

47539a3adb9a6fc1edfc5967ca20e052.png

主角人物长发的网格

2aaf35b46b8489e202bebf1ccbbcca67.png

主角人物长裙的网格

在 AVATAR 系统开发中,我们经常会制作包含人物所有部件和动画信息的基础 Spine 动画,这个基础款的 Spine 动画纹理会使用所有部件的纹理拼图来优化批次,使得基础人物可以在1个批次完成动画渲染。

人物 AVATAR 换装的过程就是需要将对应身体部件的纹理区域换成新的图片。但在渲染 AVATAR 动画时,渲染批次在遇到需要切换纹理时就会被将之前使用基础拼图的顶点缓冲区提交进行渲染,然后设置新的纹理对部件进行渲染,这里会增加1次 DC,渲染完后再重新设置回之前的拼图纹理,继续后面的部件渲染。每替换一次不同部件的图片,总的批次都会增加。

0d807f639ea360656ca01013ed458c81.png

这就麻烦了,如果不做优化,那 AVATAR 在实际使用时效率就是个完全不可控的黑洞了。一个人物身上往往几十个部件,如果不注意管控,运气好的话,百八十个批次就出去了。

伴随纹理图片的更替,部件的 UV 也需要按照新的图片纹理区间进行映射,部件的顶点 UV 从左上角到右下角只需要重新按照裁剪矩形信息(裁剪后矩形区域,原始图片大小,裁剪后左上角像素偏移)重新计算一下就可以了。这些信息在 atlas 文件中记录供读取使用。

懂得引擎优化的开发者也会对拼图进行空白边缘裁剪,以使得图片文件和游戏使用时显存占用得以减小。比如以下这个例子,未裁剪拼合贴图1680x1284大小,用 Spine 3.6 裁剪后完毕,变成1811x187大小:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值