Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LayaAir新版本开源Live2D适配库、内置Spine适配库、大幅优化IDE体验、3D新增AO等功能

LayaAir新版本开源Live2D适配库、内置Spine适配库、大幅优化IDE体验、3D新增AO等功能

作者头像
Layabox Charley
发布于 2021-08-05 07:49:58
发布于 2021-08-05 07:49:58
1.6K00
代码可运行
举报
文章被收录于专栏:LayaboxLayabox
运行总次数:0
代码可运行

LayaAir 2.0自发布以来,我们一直在大版本推进3D引擎功能。最近,一些开发者也迫切希望对2D给予更多的关注与精力。作为非常重视开发者反馈的我们,在这个版本里,暂缓3D引擎大版本功能的推进,推出一个小版本,本次的2.12.1虽然是个小版本,但推出的功能并不少,除3D引擎的例行更新外,主要的亮点就是2D引擎与周边(Spine、Live2D、Box2D)的实用性功能支持以及IDE使用体验的大幅优化。

1

新增适配Spine3.7与Spine3.8

LayaAir引擎一直是采用自己的2D骨骼系统。对于第三方的骨骼(例如Spine)的使用,只能是通过LayaAirIDE的转换工具将第三方的骨骼文件转换成LayaAir引擎的私有格式文件(.sk与.png)。这种方案的好处是引擎自身可以进行极致的性能优化,远比第三方的运行性能要高很多。

但是,也存在一个短板。那就是 LayaAir引擎毕竟不是只做骨骼动画的引擎,把所有第三方的功能在LayaAir内部全都重新实现一遍没有必要,也会导致引擎的臃肿。所以LayaAir引擎只集成了骨骼动画常用和通用的功能。

因此,当开发者要使用LayaAir引擎不支持的Spine功能时,只能舍弃这部分功能。

本次版本(2.12.1)为提升开发者的使用体验,除保持原有的引擎内置的骨骼动画方案外。还新增了Spine3.7.x与3.8.x两个版本的适配方案,也就是Spine的计算运行采用Spine官方的js库,LayaAir引擎通过适配库,接管了Spine的渲染显示。

这种方案的好处是可以更好的使用Spine官方的功能,缺点是性能的瓶颈在于Spine官方的js库。并且经过实测对比,骨骼的运行性能一定是不如LayaAir引擎内置的骨骼动画方案。所以开发者如果只是使用Spine的常用与基础功能,仍然建议优先选用LayaAir内置的骨骼方案。

具体功能的使用,请参考官网文档

Spine刚刚推出的4.0.x,我们也在适配中,下个版本推出

2

Box2D物理引擎的更新

在以前的引擎版本中,LayaAir内置适配的2D物理引擎版本是Box2D 2.3.1,本次我们将这个物理引擎适配升级到Box2D当前的最新版2.4.1。

相对于之前的LayaAir2D物理版本, 距离关节DistanceJoint增加了minLength、maxLength这两个属性,于是乎,就和绳索关节RopeJoint重复了,因此,绳索关节RopeJoint被删除,有使用原绳索关节的,可以用新版本的距离关节DistanceJoint来代替。另外,车轮关节WheelJoint增加了刚体移动范围约束enableLimit、移动范围下限lowerTranslation、移动范围上限upperTranslation,这几个属性。

除关节外,本次物理引擎还增加了边线碰撞体Edgecollider。边线碰撞体只能是两个端点组成的线段,这与链条碰撞体ChainCollider可以是两个端点的线段也可以是多个点的折线不同。另外,即便同样都是两个端点组成的线段,看上去外观一样,但是在碰撞时,边线碰撞体Edgecollider可以两边都发生碰撞 ,而ChainCollider只能是单边产生碰撞,另一边是可以穿透过去的。

关于本次2D物理新增功能的使用,更详细的说明,可以查看Layabox官网的2D物理文档。

除两者对比的区别外,需要提醒的是,此次升级后的物理版本,边线碰撞体与链条碰撞体都不受重力影响。而以前的物理版本,链条碰撞体ChainCollider是可以受重力影响的。

除了新增的功能变化,此次物理引擎升级,还带来了性能上的提升。在多个平台实测碰撞计算压力较大的DEMO,均有超过30%的性能提升。另外,新版物理引擎压缩后仅为240K,相当于旧版物理引擎压缩后的34%。关节的运行也更加稳定。但是实测堆叠相关的稳定性稍弱于旧版。

3

IDE的新增功能与优化

之前的版本,主要的更新都集中3D引擎上,LayaAir IDE除了小游戏平台的适配更新外,针对IDE的更新内容比较少。本次版本,对于IDE的体验优化也是比较重要的一块。我们在开发者群与社区里收集了大量的开发者反馈,对于收集到痛点逐一验证并进行优化。

首先是MAC系统的优化,原来的IDE版本解压后是app格式,要手动copy到应用程序目录。本次版本解压后是dmg格式,是一种常规的软件安装模式,以后安装使用更加方便快捷。并且本次版本还支持了苹果M1芯片的设备。除此之外,还丰富了MAC系统下的IDE快捷键,例如增加了全屏与退出全屏(control + command + F)、最小化(command + M)。

针对MAC与Win同步都新增的功能也有不少,例如:

  • 在新建场景同级新增创建预制体,这样对于仅用于对象池的预制体,就避免了先到场景创建再从场景上删除的多余操作。
  • 还新增了文件相关的组件弹出框,当编辑大段的文本时,就可以更加直观和方便了。
  • IDE里也全面升级切换到2.4.1的物理引擎,之前没有的功能(边线碰撞体以及一些关节的属性增加)也同步新增了。
  • IDE里的项目设置(F9)增加spine3.7,spine3.8类库勾选,这样使用spine的时候,勾选一下对应的类库,就可以了。
  • 增加工程栏刷新快捷键(Win:Ctrl + Shift + F5、MAC:command + shift + F5)

针对IDE原有的功能,基于开发者的反馈也进行了体验优化,例如:

  • 纹理压缩的功能,由原来的服务器上传压缩,改为集成到IDE内部,在本地进行压缩,这样压缩效率会更加稳定与高效。并且,对于需要转换为等宽等高且是2的幂大小的图片压缩需求,IDE工具也会自动帮开发者处理。
  • IDE里删除某个文件后,bin目录中也会自动删除对应的文件。避免目录冗余文件
  • 启用版本管理时,将版本号映射文件version.json也加入管理,这样就彻底实现了全部的文件版本管理。
  • UI编辑中的选中框会随着缩放变化,可能会导致某个边因缩放而消失,优化后会固定边框像素大小,永远不会消失。
  • 原有添加组件的功能,会把src下所有的代码都视为组件脚本,本次版本会排除没有继承Laya.Script的脚本,仅显示2D脚本组件,避免添加组件时被其它脚本干扰。
  • 对于非节点的组件,不显示保存预设按钮,避免小白开发者误操作引起运行错误。
  • 让UI组件VBox、Hbox在IDE里可以所见即所得的查看布局效果。
  • 可批量设置多个资源的默认属性了。

除了以上的新增与优化外,本次版本还修复了一些IDE的BUG,就不在这里一一列出了,开发者可以从IDE下载的更新日志里查看。

4

开源Live2D的适配库

从用户的反馈频率来看,使用Live2D这个动画软件的开发者近年来越来越多。基于开发者的需求出发,LayaAir引擎自本次发版开始,将Live2D的LayaAir引擎适配库,连同整个适配库项目与文档说明,已提交到gitee上,有需要的开发者,可以前往clone,地址为:

https://gitee.com/layabox/live2d

5

3D引擎的更新

最后讲一讲压轴的3D引擎更新,本次的LayaAir 2.12.1引擎版本,除了修复BUG外,也有一些功能新增和优化。

首先是AO(Ambient Occlusion)环境光遮蔽,环境光遮蔽后期处理效果是一种类似实时环境光遮蔽的全屏幕后期处理效果。它会使彼此靠近的褶皱、孔洞、交叉点和表面变得更暗。效果如下图所示:

关于AO的使用的方式,开发者可前往官网的示例查看,地址为:https://layaair2.ldc2.layabox.com/demo2/?language=zh&category=3d&group=PostProcess&name=PostProcess_AO

第二是增加1字节,2字节,3字节的顶点设置格式。以前引擎最小的顶 点数据格式是4字节 ,从本次版本开始,开发者可以根据需求 极致压缩顶点数据。

例如下面的示例代码组织了一个3字节的位置,3字节的法线以及3字节的顶点色,大大节省了vb占用的空间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let vertexDeclaration = new VertexDeclaration(9, [
    new VertexElement(0, VertexElementFormat.Byte3, VertexTerrain.TERRAIN_POSITION0),
    new VertexElement(3, VertexElementFormat.Byte3, VertexTerrain.TERRAIN_NORMAL0),
    new VertexElement(6, VertexElementFormat.Byte3, VertexTerrain.TERRAIN_COLOR0)
]);

横向滚动代码可以查看全部

第三是增加全局静态合并和动态合并的开关。从本次版本开始,开发者可以根据需求使用Config3D来控制引擎自带的动态合批以及静态合批。具体的API分别是Config3D.enableDynamicManager以及Config3D.enableStaticManager。

除此之外,还有一些功能优化,例如:

  • 将DepthNormalTexture数值中从世界空间中的法线值转换为view空间中的法线值,
  • 修改DepthNormalTexture中的初始值,
  • 健壮RenderableSprite3D的生命周期。

BUG修复相关的,开发者可前往官方的引擎更新日志查看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Layabox 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LayaAir 2.0 正式版发布了,重要特性全面介绍
自9月15日首次发布LayaAir 2.0 引擎测试版以来,历时4个多月,推出了4个2.0 beta版本,其中修复BUG若干,2D引擎与IDE优化与新增功能37项,3D引擎与插件优化与新增功能26项。在引擎组团队的不懈努力下,终于为开发者带来了2.0的稳定正式版。在此,也感谢大量参与测试和反馈BUG的开发者。
Layabox Charley
2019/04/30
4.6K0
LayaAir 2.0 正式版发布了,重要特性全面介绍
LayaAir2.12新特性:增加性能分析工具、增加骨骼遮罩、增加新的纹理压缩格式、增加RenderTexture抗锯齿等功能
一波3D相关的LayaAir引擎功能更新来了,LayaAir 2.12不仅带来了重磅的性能分析工具,纹理压缩格式也新增支持了开发者期待的ETC2与ASTC。3D引擎中还增加了骨骼遮罩功能、RenderTexture的抗锯齿功能,以及优化引擎库大小等等。本篇会分别详细介绍。
Layabox Charley
2021/05/08
1.7K0
LayaAir2.12新特性:增加性能分析工具、增加骨骼遮罩、增加新的纹理压缩格式、增加RenderTexture抗锯齿等功能
LayaAir2.7物理引擎大幅升级并新增cannon物理引擎支持,强化3D光影效果,新增vivo平台引擎共享插件,强化3D插件
今天,LayaAir再次迎来一个大版本的更新,本次2.7.0beta版本的核心在于物理引擎的升级完善,以及考虑到当前有开发者对于物理引擎包体缩减的需求,我们还新增支持了cannon.js物理引擎库。另外,本次更新还进一步增强了3D光影的渲染效果,强化了LayaAir的Unity 3D资源导出插件的功能。关于小游戏平台的加载效率方面,LayaAirIDE中新增了vivo平台的LayaAir引擎共享插件支持。更多本次版本的详细说明,我们在下面的篇幅中,会逐个详细进行介绍。
Layabox Charley
2020/06/09
1.6K0
LayaAir 2.4易用性大幅提升,3D物理引擎库体积减少近50%、编码模块不再内嵌到LayaAirIDE,支持微信引擎插件
LayaAir引擎版本号小数点后的第一位代表着大版本,其后是小版本。每一个大版本都代表着,引擎有着阶梯式的前进变化。时隔一个多月,2.4.0大版本的出炉又有着怎样的变化呢。
Layabox Charley
2019/11/20
1.6K0
LayaAir次世代引擎再进一步, 2.5版本重构并完善了PBR引擎模块,新增支付宝小游戏适配及发布!
LayaAir 2.x 引擎一直以来的目标都是顶级次世代3D引擎,在这条路上,引擎研发团队一直在加油前行,在2020年的首个版本2.5.0beta版上,经过重构和大幅完善的PBR引擎模块重磅亮相。PBR引擎模块的成熟,标志着LayaAir次世代引擎的路又向前迈出了一大步,今年,在这条路上,我们仍会大步前行。
Layabox Charley
2020/02/13
9620
LayaAir次世代引擎再进一步, 2.5版本重构并完善了PBR引擎模块,新增支付宝小游戏适配及发布!
LayaAir 2.12.2新版本已发布,即将进入3.0时代
2.13.2这个LayaAir引擎小版本,修复了若干IDE与引擎的BUG,新增了一些2D的功能,3D也有所优化。
Layabox Charley
2022/11/29
8520
LayaAir 2.12.2新版本已发布,即将进入3.0时代
LayaAirIDE的可视化2D物理使用文档
今天,又摘了一篇官网的文档,献给对2D物理还未入门或刚刚上手的开发者,已经熟悉的朋友们欢迎转发到微信朋友圈,让有需要的开发者看到。
Layabox Charley
2021/01/12
2.4K0
LayaAirIDE的可视化2D物理使用文档
重磅:LayaAir2.2将引擎源码全面切换至TypeScript,支持WebGL2.0,并增加大量3D实用功能
今天,引擎2.2.0 beta版本终于与大家见面了。从此以后,LayaAir引擎源码从ActionScript3全面转向TypeScript,引擎运行的JS全面支持ES6标准,在未来的引擎API设计上会利用TypeScript语言特性进行调整,提升开发效率。除此之外,这次的版本,引擎的默认图形API调整为WebGL 2.0,且3D方面也有着大量实用功能的增加,本文会逐一为大家介绍。
Layabox Charley
2019/07/31
1.9K0
重磅:LayaAir2.2将引擎源码全面切换至TypeScript,支持WebGL2.0,并增加大量3D实用功能
一篇上手LayaAir的3D物理引擎
昨天,我们分享了一篇2D物理文档《LayaAirIDE的可视化2D物理使用文档》。
Layabox Charley
2021/01/12
4.9K0
一篇上手LayaAir的3D物理引擎
如何用Unity导出H5与小游戏的3D场景
Unity是移动APP游戏的主流引擎,但是在当前小游戏平台(微信小游戏\百度小游戏\字节小游戏等等)火热的大潮之下,用Unity工具编辑3D场景然后导出资源开发出小游戏,相信还是有不少开发者并不知道如何做到,本篇将全面介绍依托Unity工具流以及LayaAir引擎及插件,将Unity中编辑的3D场景和预设等资源导出,并加载显示。
Layabox Charley
2020/08/22
10.7K0
如何用Unity导出H5与小游戏的3D场景
一篇读懂HTML5引擎性能之王LayaAir
性能是HTML5引擎最核心的指标,性能一旦出现瓶颈,就会限制策划的系统设计,限制美术的画面表现。譬如,近期有CP吐槽“本欲使用某引擎设计5 V 5的战斗,同屏跑10个人物骨骼动画后就跪了,从此再也不敢用骨骼动画”。性能之坑,可见一斑。
Layabox Charley
2019/04/30
1.6K0
一篇读懂HTML5引擎性能之王LayaAir
LayaAir 2.9.0的3D渲染效果大幅提升(支持CommandBuffer、反射探针等众多3D功能)、插件功能大幅升级
一是LayaAir 2.8.0的正式版,这是一个历经两个月,中间发布了4个beta版升级而来的正式版,所以相对比较稳定,而且该版本开始,也支持了淘宝创意互动小程序,建议大家升级到该版本。
Layabox Charley
2020/11/04
1.2K0
LayaAir 2.9.0的3D渲染效果大幅提升(支持CommandBuffer、反射探针等众多3D功能)、插件功能大幅升级
LayaAir 2.0.1新增3D动画文件压缩、内存与性能优化、开放域项目创建等功能
今天,LayaAir 2.0.1 beta版发布了,在这个版本里,有几个比较重要的更新,小编分别为大家介绍一下。
Layabox Charley
2019/04/30
1.7K0
LayaAir 2.0.1新增3D动画文件压缩、内存与性能优化、开放域项目创建等功能
LayaAir引擎放弃Canvas API,打造次世代3D引擎与云游戏引擎,提供AI赋能!
LayaAir引擎放弃Canvas原生API,并不等于放弃2D,而是为更好的发展2D和3D!那为什么要放弃Canvas原生API,以及LayaAir引擎未来的发展规划,这里我们来和大家聊一聊!
Layabox Charley
2019/04/29
1.4K0
LayaAir引擎放弃Canvas API,打造次世代3D引擎与云游戏引擎,提供AI赋能!
LayaAir开始在GitHub实时提交了,2.3版支持多光源渲染, 3D效果华丽提升!3D导出插件支持Unity2018了!
今天的引擎版本更新又是一次大版本更新,不仅推出了2.2正式版,还有重磅版本2.3.0beta版,关于本次重要的版本更新内容,本篇逐一为大家进行详细介绍。
Layabox Charley
2019/09/25
1.7K0
LayaAir开始在GitHub实时提交了,2.3版支持多光源渲染, 3D效果华丽提升!3D导出插件支持Unity2018了!
LayaAir3.0今日公测发布,新特性全面概述
在此,我们首先感谢一直以来关注LayaAir引擎以及积极参与封闭测试的开发者们。
Layabox Charley
2023/03/04
1.3K0
LayaAir3.0今日公测发布,新特性全面概述
LayaAir已支持vivo小游戏适配与IDE内一键发布!
引擎语言从AS3全面转向TS,这个动静有点大,很多引擎小细节变了(不影响API),不止是代码迁移的工作量,还有各种测试。
Layabox Charley
2019/07/10
2.2K0
LayaAir:用3D项目演示老项目如何适配微信小游戏
阅读本文前,如果不了解微信小游戏的基础创建流程和如何配置开发环境的,请先点击链接阅读《创建微信小游戏全流程介绍》或前往官网阅读LayaAir引擎官方技术文档,配置环境等基础内容本篇不再重复介绍。
Layabox Charley
2019/05/10
1.7K0
LayaAir:用3D项目演示老项目如何适配微信小游戏
LayaAir引擎学习经历
  由于公司任务安排,需要笔者先去了解一下LayaAir引擎库,以用来完成公司将要启动的大数据可视化项目,需要借助LayaAir引擎实现复杂的动画。笔者花两天时间将LayaAir引擎的技术文档浏览了一遍,有了一个大致的印象。   LayaAir是一个轻量级、易上手的游戏引擎库,支持ActionScript3、TypeScript、JavaScript三种语言进行开发。同时他能够支持2D,3D,VR ,AR,时间轴动画,缓动、UI系统、粒子动画、骨骼动画、物理系统等动画构建。 LayaAir官网
饮水思源为名
2018/09/06
2.8K0
LayaAir引擎学习经历
Creator3D新版本震撼来袭
大噶猴,在预祝大噶中秋国庆双节快乐的同时,Cocos 也带来了 Creator 3D v1.2 介个船新版本,几需体验七天,里造会跟我一样,爱向这款引擎!
张晓衡
2020/10/10
1.1K0
Creator3D新版本震撼来袭
推荐阅读
LayaAir 2.0 正式版发布了,重要特性全面介绍
4.6K0
LayaAir2.12新特性:增加性能分析工具、增加骨骼遮罩、增加新的纹理压缩格式、增加RenderTexture抗锯齿等功能
1.7K0
LayaAir2.7物理引擎大幅升级并新增cannon物理引擎支持,强化3D光影效果,新增vivo平台引擎共享插件,强化3D插件
1.6K0
LayaAir 2.4易用性大幅提升,3D物理引擎库体积减少近50%、编码模块不再内嵌到LayaAirIDE,支持微信引擎插件
1.6K0
LayaAir次世代引擎再进一步, 2.5版本重构并完善了PBR引擎模块,新增支付宝小游戏适配及发布!
9620
LayaAir 2.12.2新版本已发布,即将进入3.0时代
8520
LayaAirIDE的可视化2D物理使用文档
2.4K0
重磅:LayaAir2.2将引擎源码全面切换至TypeScript,支持WebGL2.0,并增加大量3D实用功能
1.9K0
一篇上手LayaAir的3D物理引擎
4.9K0
如何用Unity导出H5与小游戏的3D场景
10.7K0
一篇读懂HTML5引擎性能之王LayaAir
1.6K0
LayaAir 2.9.0的3D渲染效果大幅提升(支持CommandBuffer、反射探针等众多3D功能)、插件功能大幅升级
1.2K0
LayaAir 2.0.1新增3D动画文件压缩、内存与性能优化、开放域项目创建等功能
1.7K0
LayaAir引擎放弃Canvas API,打造次世代3D引擎与云游戏引擎,提供AI赋能!
1.4K0
LayaAir开始在GitHub实时提交了,2.3版支持多光源渲染, 3D效果华丽提升!3D导出插件支持Unity2018了!
1.7K0
LayaAir3.0今日公测发布,新特性全面概述
1.3K0
LayaAir已支持vivo小游戏适配与IDE内一键发布!
2.2K0
LayaAir:用3D项目演示老项目如何适配微信小游戏
1.7K0
LayaAir引擎学习经历
2.8K0
Creator3D新版本震撼来袭
1.1K0
相关推荐
LayaAir 2.0 正式版发布了,重要特性全面介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验