LayaAir2.8版本新增3D粒子裁剪、预烘焙骨骼动画、视频贴图等3D功能,支持发布字节(抖音、今日头条)小游戏
在本次的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显存占用也会越大。开发者需要根据自己项目的情况去取舍。
最后需要提醒注意的是,在预烘焙骨骼动画模式的导出设置时,可以选择是否保留骨骼挂点,由于插件会对骨骼进行精简。所以要想保留必要的动画数据,当勾选了 保留骨骼挂点 ,需要在导出前确定挂点位置,并在相应的挂点骨骼下添加非空节点,进行占位。
官网示例中, 也增加了SimpleSkinAnimationInstance贴图动画示例。
新增视频贴图功能
从2.8.0beta版开始,新增了视频贴图的功能。自此,开发者可以加载一个浏览器支持的视频文件(例如MP4),通过LayaAir引擎的API将其生成VideoTexture,然后以贴图的方式,添加到任何一个材质的纹理属性上面。
需要提醒的是,同样的视频不要重复去创建(new)新的VideoTexture对象,否则会带来流传输的性能问题。
Layabox官网已新增视频贴图的使用示例VideoPlayIn3DWorld,开发者可以前往官网示例查看具体用法。
需要提醒的是在beta版里,视频贴图功能暂不支持小游戏平台,会在正式版发布的时候进行各小游戏平台的支持。
3D插件易用性优化
1、修改反射信息文件.ltcb的后缀名为.ltcb.ls
由于一些小游戏平台不支持 .ltcb后缀的上传,导致使用了反射效果的小游戏不得不牺牲了相关效果的显示。在收到开发者的反馈后,我们从2.8.0beta版开始,导出插件在生成反射信息文件的时候变更为 .ltcb.ls后缀。如果开发者在代码里加载了旧版反射信息文件.ltcb,升级后需要注意修改后缀。
2、增加环境反射文件的导出控制
由于反射信息文件ltcb文件在之前的版本中是自动导出的,有一些开发者未使用pbr材质,不需要环境反射效果的时候,希望不导出这个后缀的文件。于是在本次的版本中也满足了开发者的需求。
我们先在Unity工具中,依次点击 Window -> Rendering -> Lighting Settings 打开
Lighting设置面板。
然后,将Environment Reflections的Source设置为Custom,将不再导出 .ltcb.ls后缀的反射信息文件。
3、新增一键转换PBR材质
在Unity中编辑模型、场景,然后通过插件导出,非常关键的一步是材质必须要切换为LayaAir引擎提供的材质,除了手动的材质切换外,之前提供比较常用的一键切换材质功能 Switch to LayaAir3D Shader,该功能可以一键将Unity中的材质球自动全部转换为LayaAir引擎的BlinnPhong材质。
在本次的版本中,不仅新增了一键将Unity中的材质全部转换为LayaAir引擎的PBRStandard材质,还修改了功能的命名,让开发者使用的时候更加直观。新的功能名称为:
Switch to LayaAir3D BlinnPhongMateria Shader(一键转换到BlinnPhong材质)
Switch to LayaAir3D PBRStandardMaterial Shader(一键转换到PBRStandard材质)
最后,
预告一下,LayaAir引擎已初步完成华为快游戏的引擎支持与IDE发布。下个版本将会推出。同时也会对3D引擎功能以及易用性继续大力推进,欢迎大家直接留言或者联系开发者QQ群管理员,提出在项目开发过程中对于3D引擎的易用性以及引擎功能的使用需求,我们会对于开发者亟需的内容,适当提升研发的优先级。
END
引擎版本更新说明:
LayaAir2.7物理引擎大幅升级并新增cannon物理引擎支持,强化3D光影效果,新增vivo平台引擎共享插件,强化3D插件
LayaAir2.3支持任意多光源渲染, 引擎开始在GitHub实时提交维护了!3D导出插件支持Unity2018了!