在本次的2.8版本中,我们更新的重心仍然在3D引擎功能的丰富以及易用性提升上,在7月30日,我们在官网低调开放了2.7.1的小版本,由于该版本仅更新了字节跳动(抖音、今日头条)小游戏的发布支持,未对引擎功能作出任何更新,所以并未在公众号中单独告知开发者,有发布字节跳动小游戏需求且尚未更新版本的,也可以直接下载LayaAirIDE2.8版本。
下面我们将分别介绍本次版本的一些功能要点。
支持字节小游戏
从LayaAir 2.7.1开始,开发者从官网下载的最新版本IDE,打开发布功能,可以在发布平台中看到字节跳动小游戏的选项。如下图所示。
字节跳动小游戏的发布流程及发布功能,基本与微信与百度类似。相信发布过微信小游戏的开发者会很快的熟悉和掌握。
发布选项的使用说明文档链接:
https://ldc2.layabox.com/doc/?nav=zh-ts-3-0-6
本次2.8版本IDE其它的一些优化与更新可以前往官网下载的更新日志中查看。
新增粒子裁剪系统
2.8.0beta版开始,增加了粒子裁剪系统,对于Unity中导出的3D粒子,LayaAir引擎会自动给粒子计算一个包围盒,包围盒视锥之外的粒子会被引擎优化裁剪掉,从而提升了性能。
不过,当粒子的SimulationSpace属性为world属性时,引擎是无法自动准确计算包围盒的。所以我们提供了ShurikenParticleSystem.customBounds函数来让开发者自定义设置包围盒,以达到保障游戏渲染正确的目的。
由于粒子包围盒的算法是最大可能性的算法,也就是说会计算粒子能达到的最大范围。而提供的这个自定义包围盒设置接口,不仅可以解决设置SimulationSpace属性为world的问题,其实还可以让开发者根据自己的实际需求更加精准的设置包围盒,以满足更个性的优化裁剪需求。
新增预烘焙骨骼动画
在以前的引擎版本中,骨骼动画会受到设备性能的限制,比如在不支持JIT的iOS设备环境下,每24块骨骼就需要分mesh来渲染,否则会就出现发黑现象。
本次更新的2.8.0beta版开始,我们新增了一种预烘焙骨骼动画模式,通过预先烘焙计算以及instance动态合批等技术来减少GPU的性能压力,对比之前的骨骼动画模式,预烘焙骨骼动画模式从CPU到GPU性能都有显著的优化效果,尤其是CPU计算方面更为明显。比如骨骼动画在iOS上,再也不需要通过分mesh来处理了。
尽管预烘焙骨骼动画模式优势明显,但是开发者也需要了解该方案的几个问题。首先是该方案暂时还不支持动画融合;另外,当前也不支持多个Animator控制多个Mesh的动画;最后就是GPU显存的占用会明显多于原有的骨骼动画模式。
关于预烘焙骨骼动画模式的使用,也比较简单,在LayaAir的Unity导出插件上勾选 预烘焙骨骼动画 即可, 代码的使用方法与原骨骼动画模式完全相同。
在上图中,烘焙帧数的默认值是30,该值越大,动画数据保存的越完整,但是相应的GPU显存占用也会越大。开发者需要根据自己项目的情况去取舍。
最后需要提醒注意的是,在预烘焙骨骼动画模式的导出设置时,可以选择是否保留骨骼挂点,由于插件会对骨骼进行精简。所以要想保留必要的动画数据,当勾选了 保留骨骼挂点