查看原文
其他

LayaAir2.8版本新增3D粒子裁剪、预烘焙骨骼动画、视频贴图等3D功能,支持发布字节(抖音、今日头条)小游戏

Charley Layabox 2023-08-11

在本次的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


引擎案例分享:


推荐阅读:


引擎版本更新说明:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存