●支持按照构建任务名称匹配构建模板,例如build-templates/wechatgame-001内的模板,会在构建任务名为wechatgame-001的任务构建时作为其构建模板拷贝使用。项目可以根据实际需求为同一平台定制不同的构建模板,比如debug与release的不同模式模板。
●Substance贴图导入后可以右键多选贴图自动生成材质,目前已在Substance内支持了Cocos引擎的导出选项,有指定的命名规则。
可以根据项目情况自行在项目设置-自动材质设置内修改自定创建材质的关键字,目前支持houdinivat、zeno、SP材质节点等文件类别关键字。
●纹理压缩支持小游戏平台单独配置格式不做剔除
●优化构建任务的进度显示,显示详细的子日志信息
●优化引擎模块的分组显示,支持整组的全选操作
●优化调整了构建编译、运行按钮锁定的规则,互不影响的平台如web平台可以同时运行
●更新了设备管理器内的设备数据
●完善优化了旧版本插件脚本默认值行为以及一些界面选项的操作,新增在小游戏平台的执行环境控制
●Bundle文件夹添加新的图标标识
●修复新管线使用外部资源纹理进行上屏时报错的问题
●修复开启Box2Dwasm/asmjs实验性功能后,在不支持wasm的平台上使用Box2Dasmjs导致初始化场景黑屏问题
●修复editbox的隐藏节点之后、延迟加载显示editbox等输入坐标不对的问题;
●修复label没有激活节点时,销毁时,纹理不会立即释放的问题
●修复label的cache模式不支持字符表情的问题;
●修复default_pannel设置太大,导致编辑器异常的问题;
●修复bmfont的opacity不生效的问题;
●2D物理返回的角速度返回值从角度改成弧度
●修复了Ve3.rotateN()的逻辑错误
●修复自动图集文件夹内小图更新后重新构建图集内容纹理压缩图未及时更新
●修复编辑器ipc通信的内存泄漏的问题
●修复Bundle构建成功后,点击确定按钮报错
●修复构建流程内对构建模板文件MD5添加的缺失与替换问题
●修复vivo平台在install失败后没有正常抛出异常
●修复抖音小游戏平台以lite模式点击运行后报错
●修复PolygonCollider2D在编辑模式下调整边界框时卡顿的问题
1.新增自定义管线Subpass、MSAA支持
2.动画图恢复了对非骨骼动画(AnimationClip)的支持
3.脚本系统开始支持解析符号链接,以用于支持pnpm等依赖符号链接的包管理器。(现在默认对符号链接进行解析,此举可能影响那些将assets目录链接至项目的做法)。
4.添加了iOS对屏幕边缘手势的延迟触发以防止误触
6.添加了RichText的默认颜色接口
7.新增钢琴烤漆、车漆和玻璃材质
8.HDR下Scene面板增加PostSettings选项,ToneMappingType提供DEFAULT和LINEAR选项
10.新增角色控制器Trigger事件,支持角色控制器组件和碰撞体监听onControllerTriggerEnter,onControllerTriggerStay,onControllerTriggerExit
11.支持动态改变MeshCollider的Mesh
12.换用更稳定的meshsimplify工具
13.新增meshcluster的支持
14.新增meshquantize的支持
15.新增meshencode/decode和inflate/deflate的支持
a.面板选项
b.大场景加载/渲染的性能提升
1.偏好设置添加JavaHome路径设置,用于解决Android构建时设备安装多个JDK的问题
2.Android构建面板添加ResizeableActivity和MaxAspectRatio选项
3.抖音小游戏支持配置开发者工具启动模式并快捷启动
5.材质、模型、Mesh及骨骼动画的预览窗口添加了网格、天空盒以及SceneGizmo,同时支持控制预览视角
6.新增3D工具可见性开关,关闭后将隐藏变换工具以外的3DGizmo
7.属性检查器支持拖动调节属性名宽度
8.属性检查器支持显示部分组件图标
9.优化Light和Camera组件的visiblity在属性检查器中的显示效果
10.减少内置引擎的boost库的文件数量,缩减编辑器包体
11.其他细节体验优化
1.修复自定义管线特定条件下渲染错误问题
2.修复动画图变体未对嵌套的状态机生效的问题
3.forceLOD调用后,改变节点的active,接口不能正常工作
4.优化android端editText输入框的交互
5.修复editbox旋转后,在web-mobile上可能出现的错误显示效果
6.修复Mac切换窗口和全屏时editbox的输入表现错误
7.修复Android多点触摸崩溃问题
8.修复音效播放过程锁屏,解锁屏后不能恢复播放
9.修复iOSSafariwebaudio播放超过5分钟后会有杂音的问题
10.修复audioManager存放的player可能被destroy的问题
11.优化同一帧调用同一个音频对象的多个音频操作可能存在卡顿的问题
12.淘宝小游戏iOS平台:修复多次调用音频play进度条会一直卡在0的问题
13.小米平台:修复音频播放时,拖动进度条,进度条会从0的位置再跳转的问题
14.修复小游戏批平台,播放的音频个数超过10个后,继续调用其他音频的播放接口可能导致内存泄漏问题
15.修复videoplayer暂停&结束后通过isPlaying接口获取的状态错误
16.修复切换video源时可能出现的异常表现
17.修复swig绑定重载构造函数时绑定代码丢失命名空间的问题
18.修复swig绑定多级(>=2)内部类导致的异常问题
19.修复在.i中重命名内部类导致胶水代码编译失败的问题
20.修复原生平台上scene._instantiate实现不对的问题
21.修复非安卓平台,反复重启`game.restart()`导致的崩溃或者卡死问题
22.修复编辑器中scale不为1时widget带来的场景错乱问题
23.修复Button组件在启动时会使用Sprite组件的spriteFrame覆盖本身normalSprite的bug,将按button组件序列化的数据来填充spriteFrame状态。
24.修复ScrollView使用鼠标滚动后,scrolling属性始终为true的bug
25.修复带carmera的场景,点击鼠标会出现偏移的bug
26.修复OpenHarmony收到resize之后,分辨率出现不正确的bug
27.修复OpenHarmony取消勾选WebSocket之后出现链接的问题
28.修复自定义管线中FogAO半透明等混用的渲染错误(需要开启CC_USE_FLOAT_OUTPUT宏)
29.修复反射探针烘焙和移动更新的问题,并优化原生引擎调用性能
30.修复切换雾效类型天空盒不受影响的问题
31.修复创建的默认SphereCollider的Center不为0的问题
32.角色控制器调用move方法时会马上将其物理世界位置同步到场景节点
33.修复使用Xcode15编译iOS项目导致的程序启动崩溃问题
1.修复碎图和图集同时配置纹理压缩时导致的运行时报错
2.修复自动图集在压缩纹理后仍包含原图的问题
3.修复图集被多个Bundle引用并且bundle优先级一致时纹理压缩图片拷贝异常的问题
4.修复Bundleconfig重定向配置存在重复数据的问题
5.修复空Bundle不输出config.json的问题
6.修复Bundle中的文本资源包含uuid时构建依赖信息错误的问题
7.修复Bundle构建面板的输出目录无法选择的问题
8.修复只构建Bundle后构建面板无法新建构建任务的问题
9.修复构建任务名称修改后切换构建模式,任务名称可能出错的问题
10.修复插件脚本里实现组件后,预览和构建时报错类重复注册的问题
11.修复勾选初始场景分包后,脚本、资源可能输出位置错误的问题
12.修复预制件的部分操作撤销后的数据异常
13.修复点击事件引用了预制件子节点后无法正常保存的问题
14.修复拖拽预制件节点覆盖原预制件文件时嵌套预制件的修改丢失问题
15.修复编辑预制件时的其他若干问题
16.修复编辑器预览无法调试localStorage的问题
17.修复编辑器预览设置FPS无效的问题
18.修复编辑地形时打开预制件再回到场景时地形数据异常的问题
19.修复编辑地形时部分操作撤销重做后表现不符合预期的问题
20.修复往预制件实例的mounted嵌套预制件上添加节点,没有显示+号的问题
21.修复Mac上通过程序管理器(program)配置默认浏览器为Safari可能会出错的问题
22.修复艺术字资源可能因为导入时序缺失数据的问题
23.修复动画编辑器事件帧、关键帧,曲线编辑等若干问题
24.修复粒子曲线面板编辑时的若干交互问题
25.修复编辑FBX资源时事件帧图标不能拖动和部分情况下位置不正确的问题
26.修复Widget组件undo不准确的问题
1.抗锯齿:提供了消耗非常低的FXAA和效果较好基于时序的TAA
2.超分辨率FSR:有助于用较低的损耗提升渲染分辨率,达到用较低的损耗达到更高的画质,或者减轻项目的性能压力
3.Bloom:增强高光位置的泛光表现,提升画面质感
4.HBAO:高质量环境光遮蔽,可以大幅度提升场景的立体感和质感5.自定义ColorGrading:这是非常简单但立竿见影的一种后期处理方法,可以用来增强对比度、饱和度,调节颜色、白平衡等画面属性。支持任意Nx1的长条图和8x8的方块图,系统自动适配
4.支持Zeno&Houdini导出的预烘焙模拟动画:这项功能可以让开发者在游戏或内容中集成离线计算的高质量物理模拟动画,包括刚体、流体、布料等,使得游戏转场或一些固定场景的表现力大幅度提升,尤其是对车机等应用内3D模拟非常有帮助。
5.ReflectionProbes支持Blend,之前的版本中,动态物体在不同probe区域之间的移动会引起跳变,在3.8中,不仅支持Probe之间的效果混合,也支持Probe和天空盒之间的混合,在不同烘焙区域以及室内到室外的场景中,都可以得到很自然的过度效果。
在制作复杂的程序化生成动画时,你可能需要为动画添加一些变量曲线,以进行逻辑判断或作为变量使用。为了满足这些需求,我们在动画编辑器中新增了辅助曲线功能。你现在可以为任何一条骨骼动画添加额外的曲线,并且添加后,这些曲线可以在姿态图和状态机中进行读取和混合。这个新功能将提供更大的自由度,帮助你更好地控制和定制动画。
此外Marionette动画系统还有这些升级:
2.约束:新增可配置约束组件,可以用于定制各种复杂的物理部件连接方式,比如汽车的轮轴、各种关节等。3.约束:Hinge约束新增转轴驱动和转动范围限制
4.新增sweep碰撞检测
支持单独构建指定Bundle,便于用户单独更新资源,功能入口位于选中的Bundle文件夹设置中。
支持在Bundle文件夹设置中添加过滤选项,让用户可以更灵活地筛选Bundle内要参与实际构建的资源。
优化Bundle配置的平台设置方式,支持预设配置,便于用户精确管理不同平台的导出选项。
注意:项目升级到3.8后,CocosCreator会自动将Bundle配置迁移到项目设置内,请在升级后记得向项目源码库(如Git)提交项目的settings文件夹及bundle文件夹对应的meta文件改动,以免配置冲突。
构建时支持只构建Bundle。
构建时支持筛选参与构建的Bundle,默认全部导出。
我们在3.7支持导入LOD模型的基础上,支持了在模型中显示LOD信息及新的LOD自动生成功能,以便用户更轻松简单地使用LOD。
用户可以在3.8直接导入任何不包含LOD的模型,并模型导入选项中设置不同的LOD层级,CocosCreator会自动进行减面,并且在场景中创建模型实例时自动添加LODGroup组件。
3.8.0开始,引擎部分模块开始使用wasm实现,目前包括spine,渲染webgpu后端,物理引擎的bullet和physx后端。在使用时需要注意以下情况:
注意
其他平台支持方面的更新包括:
偏好设置的程序管理器支持配置默认图片编辑器
应用光照探针的角色:
使用光照探针实例化绘制的球体:
光照探针编辑:
CSM层级阴影最明显的一个效果问题就是在不同层级之间的阴影精度不同,导致在接缝处可能产生比较违和的割裂感,尤其是随着相机的移动,不同层级的拼接位置也在不断变化,导致很容易被发现的接缝移动现象。在3.7中,我们新增了CSM层过渡的支持,混合不同层级的渲染效果,使两个CSM阴影层级间过渡更加平滑。
3.7的场景编辑器可以运行在以C++为基础的Windows/Mac原生Cocos引擎之上,而不是原先以JS/WebGL为基础HTML5引擎。这意味着编辑器有潜力充分发挥Cocos引擎在原生端的性能优势,为各类元宇宙场景、3D开放世界做好准备。此功能目前处于实验性状态,需在偏好设置-实验室开启Usenativeengineforsceneeditor开启试用。开启后,编辑器支持打开一个与Scene并存的独立Game面板,用于多窗口项目预览以及调试。
3.7升级了扩展管理器,采用了全新的UI并且支持一键安装和更新扩展插件,还支持记录和安装项目所依赖的扩展,让项目的分发更加方便。
为了实现更好的版本管理,提高扩展稳定性,新版扩展管理器也调整了一些管理机制:
项目设置:
构建面板:
3.7支持在Mesh的属性检查器中显示各个通道的UV,方便用户快速确认导入模型的UV或者Lightmap的UV是否正确,是否在(0,1)的区间内,是否有重叠等信息。
调整CurveRange的构造逻辑,延迟构造底层曲线数据,同时优化了内部装饰器,加快粒子系统初始化速度。在不同复杂度的粒子下均有可观的性能提升。
除了粒子加载速度以外,其他不少模块也有了不同程度的性能优化,其中包括以下几个比较显著的方面:
注:图示中每个平台下都会不断增加负载进行性能测试数据采集,不同平台之间负载并不一致,统一在帧率上进行差异展示,所以数值越高越好
在3.6.3中,我们新增了淘宝小程序创意互动平台的支持,同时还完成了一系列关键性的缺陷修复,建议所有3.6用户升级。
3.6.0发布后,我们收到了不少开发者的反馈,非常感谢大家一如既往的支持。3.6.1对这些问题集中进行了修复,提升了用户体验,也对一部分性能进行了优化,建议所有3.x用户升级。
下面是这次更新的主要内容:
在Cocos团队内部,我们一直将3.6作为3.0的合并版本之后最重要的里程碑版本来看待,一方面这个版本的迭代周期是迄今为止最长的一个版本,另一方面是因为这个版本在多个方面的大幅进化。下面就是3.6版本的更新说明,由于更新数量过多(engine:1110PRs,editor:678PRs),在此只列出相对重要的更新。
SurfaceShader使用统一渲染流程和结构,可以让用户以简洁的代码创建表面材质信息,指定用于组合的光照和着色模型。相比旧版(LegacyShader)的优点是更易书写和维护,有更好的版本兼容性,也更不容易产生渲染错误。并且可以从统一流程中获取很多公共特性,如统一的全场景光照和DebugView调试功能等。
Creator也更易扩展出多种常见的复杂材质提供给用户,未来还会支持ShaderGraph自动生成Effect代码,可以极大提高Shader开发者的效率。
普通的阴影贴图有一个致命弱点:当投影面积较大时,对阴影贴图分辨率的需求会超出硬件承载极限。如果不提高分辨率会导致阴影锯齿严重、形状缺失、不清晰,但减小投影面积又会导致阴影可视距离非常短。在阴影可视距离和阴影效果上的平衡调整是一个非常令人头痛的问题。
CSM将视锥按远近顺序划分为多块,近处投影范围更小而远处投影范围更大,相当于一个自适应的阴影贴图,从而提高数倍贴图利用率。它可以在较大的阴影可视距离上具备精细的阴影效果,再也不用把精力花费在参数调校上了。
多种自定义的显示模式,帮助用户更快定位各种材质、光照、阴影显示问题,以及方便用户查看更清晰的特定场景信息,帮助用户做出优化决定。
由于精确光源的高光都是使用GGX的BRDF分布,对于环境光源而言也必须使用同样的BRDF做球面卷积才可以让两种光源的光照效果对应。此外不同粗糙度的反射光照是存储在对应的Mip中,相比于自动生成的Mip数据,卷积计算可以修复以下问题:
如图所示:
自动Mipmaps
GGX卷积
GGX|平行光|Mipmaps
通过SurfaceShader带来的好处,我们可以充分扩展PBR光照模型。在3.6已经完整支持了在精确光源和环境光源下,各向同性和各向异性的材质与光照模型。可以对接SubstaincePBR材质库,制作拉丝纹路的金属、头发、丝绸等等。
V3.6启用了全新的编辑器UI,本次改版围绕「更协调」的视觉系统、「更科学」的视觉反馈、「更沉浸」的交互感受,对UI和交互进行了一次全方位的梳理。我们希望通过交互来改善视觉感受,通过视觉来影响交互体验,并从这两个层面进一步提高用户体验。未来我们将继续基于Cocos的设计目标、设计系统、设计原则进行规范化设计,持续更新迭代,优化核心交互和工作流程。
开发效率是CocosCreator非常重视的一项核心优势,在v3.6中这项优势得到了进一步提升。除了网页预览和模拟器预览,现在开发者还可以使用「编辑器预览」来运行游戏。编辑器预览将在场景管理器中直接执行游戏逻辑,并且可以实时调试游戏场景。一方面带来更无缝的预览体验,另一方面也补足了在调试方面的短板。
动画编辑器新增了嵌入播放器功能,可以在任意动画中嵌入其他粒子和动画,并用类似视频剪辑软件轨道的方式进行编排,自由调整时长和播放位置。
在完成编辑之后,嵌入播放器的内容会伴随此条动画剪辑(AnimationClip)一起播放,在Animation组件和动画图系统中都能支持。此外,动画嵌入播放器支持添加到FBX导入的动画上,可以实现更灵活的特效控制,解决了导入动画难以二次编辑的问题。
目前在3.6中提供了粒子和动画两种播放器,可以在实验室设置中启用。
为了更好地服务开发者出海,v3.6提供了内置的多语言工具LocalizationEditor(L10n),目前支持文本翻译和资源替换。其定位是与Creator深度集成,通过高自动化提高翻译的效率,并且以无代码的方式降低使用门槛,达到任何人都可以开箱即用的目的。
包含的核心功能为:
LocalizationEditor目前处于实验性阶段,未来将提供更丰富的游戏本地化能力,欢迎大家提供反馈。
表面吸附SurfaceSnapping(按住ctrl/cmd+shift)
顶点吸附VertexSnapping(按住v)
支持框选功能,可以批量选中多个物体
3.6还有一个重要的具有里程碑意义的标志,那就是在2D渲染性能上和2.x达到了同样的水准,代表着2.x用户如果有3D需求或持续迭代需求可以放心升级到3.x。在底层原生化的基础之上,我们进一步将2D渲染数据结构、2D合批管理器和渲染流程都原生化了,让2D的合批和提交渲染的流程都在原生进行,以达到类似2.x的性能表现。当然,现阶段还有部分遗留的工作没有完全完成,比如Spine的合批支持,但这也代表着在原生化的基础之上,3.x的2D渲染性能还将有更高的天花板等待我们去突破。
原生插件可以链接开发者现有的C/C++代码库,绑定接口到JS层并在不同项目间重复使用。
通过利用CMake的能力,插件能灵活地集成源文件、静态库或动态库。C/C++接口可以直接使用传统的自动/手动绑定机制,也可以使用3.6新增的sebind高阶接口导出到脚本层。开发完成后,原生插件可以zip包的形式单独分发,也可以打包到编辑器插件一并发布。
3.6在材质导入上实现了对Diffuse-Specular材质模型(包括Phong和SpecularGlossinessPBR)的支持,可将材质参数智能转换到标准MetallicRoughnessPBR模型中。这样就可以在不更改光照模型的情况下获得接近原DCC软件中的材质表现。
Blender|未使用材质转换|使用材质转换
使用Phong材质的FBX智能材质导入
之前的版本由于uniform的限制,在CPU计算的骨骼动画中,当骨骼数量超过一定值后,无法一次性通过uniform存储所有骨骼数据,所以我们在模型导入时有可能拆分模型和骨骼。所以经常收到反馈说自己的一个角色模型会占用多个DrawCall,主要原因就是这里被自动拆分了。更重要的是由于拆分不能在运行时进行,只能在离线进行,所以我们的拆分标准使用的是最低端的运行时设备和驱动(iPhone6WebGL),对骨骼数量限制很大。
所以,CocosCreator3.6对这一问题做了策略优化:
使用纹理传递骨骼动画数据的方式需要在顶点着色器中访问纹理,这一特性最低支持为OpenGLES3.0,WebGL2.0。但依靠GL扩展,在仅支持OpenGLES2.0和WebGL1.0设备上,几乎已达到100%的覆盖率,所以无需担心兼容问题。
目前保留此选项应该只是为了保持旧项目的兼容性,在适当的时候会考虑移除。
V3.5.1在不影响原有功能稳定性的前提下加入了两项影响深远的实验性功能。一是智能导入FBX中的DCC默认材质,还原美术在各类DCC工具中使用的材质和外观;二是内置了一系列SurfaceShader材质资源,这将成为未来支撑材质定制的基石。除此之外,我们还完成了一系列关键性的问题修复,体验优化和大量的文档优化,建议所有3.x用户升级。
FBX智能材质导入是模型导入器中辅助转换材质的一个功能,它可以将各种DCC工具导出到模型中的部分标准材质直接映射到CocosCreator的内置材质中,尽量还原美术在DCC工具中看到的材质效果。我们可以对比一下Maya中的StandardSurface材质导入CocosCreator后的效果:
Maya工具内效果
开启FBX智能材质导入后CocosCreator内效果
此功能已支持主流DCC工具:3dsMax、Blender、Maya、C4D中的部分标准材质。
在v3.4版本中我们带来了支持复杂角色动画的动画系统Marionette,支持动画状态机和多维混合等功能。在v3.5中,我们继续向其中添加了不可或缺的关键能力:层级和遮罩。这可以让开发者轻松做出更复杂的动作系统,比如下面展示的上下半身分离。
对于2D用户和2D项目开发,我们做了一些编辑器的体验增强,这也是为了帮助有升级需求的2.x开发者更好得升级上来,获得与2.x类似的体验。从3.0发布以来,我们一直在通过各项性能和体验优化积极推动开发者的升级,并且还会持续优化下去。在v3.5中,你将可以看到下面的一些体验优化:
我们在此版本中引入了一个新的简易几何渲染的API,这些API是为了绕过组件层,直接在屏幕上渲染一些用于调试的标记几何体。目前已支持线条、盒子、球体、多边形等几何体,渲染模式支持线框模式、填充模式,一部分几何体也可以动态开启光照和深度测试。所有几何体的坐标系在世界空间,并且支持transform。
更详细的几何体信息请参考下面的表格
同时敬请期待我们后续版本中更显著的美术体验优化。
地形编辑器在新版本中提供了新的抹平和高度画刷,可以让开发者们更方便得编辑平面地貌。
此版本中比较显著的性能优化包含以下几点:
在v3.4.1中我们完善了2D渲染组件的数据提交和合批策略,由于这些是触及基础的改动,所以引发了一些Tiledmap,Graphics的问题。并且Spine和Dragonbones在Android浏览器上性能没有得到提升,这些问题都在v3.4.2版本中得到了集中的解决。
请所有使用v3.4的用户升级到v3.4.2,将得到更优秀的稳定性和开发体验。
在v3.4.1中,我们重点修复了v3.4.0发布后用户反馈的问题,提升了稳定性。同时为了帮助开发者v2.x开发者升级到v3,我们调整了2D渲染组件的合批策略,大幅度提升了2D渲染的整体性能表现,相比v3.3提升幅度可达到20%-70%左右。性能测试结果我们也对比了v2.x版本,参考下面的对比图,绝大部分测试的表现都已经和2.x逼近或持平,小部分超过。
3.4.1经过了个把月的论坛公测,期间有很多热心开发者(如@ankoGo和@ankye)和我们保持了高频度的线上交流,这些宝贵的反馈建议帮助我们提高了版本的成熟度,非常感谢大家!
v3.4是自2021年初3.0发布以来快速迭代后的一个年度收官版本,要的就是一个字:稳!这个版本研发和测试周期都比之前版本更长,也在社区进行了长达一个月的公开测试,在此也要感谢所有参与测试的开发者们!
在v3.4中不仅增加了像Marionette动画系统这样的重要功能,而且在产品体验、稳定性、性能优化、基础架构层面都做了大量的工作。除此之外,我们还集中修复了一批社区反馈比较多的问题,解决了一些以前遗留的疑难杂症。相信引擎团队倾注心血奉献给大家的v3.4版本会成为一个里程碑版本,更好得帮助开发者开发出优秀的游戏作品!
动画系统是3.4中最重要的新功能,我们取名为Marionette,意思是提线木偶,不仅形象得描述了它的作用,而且使用提线木偶的木偶剧还是源自于中国的传统艺术形式,从唐代就出现,千年来流传至今仍然是闽南地区重要的戏曲形式。借助Marionette,我们也希望开发者能够完美控制游戏角色,增强游戏通过角色叙事的能力。
在编辑器体验方面,我们做了大量的体验细节优化和疑难杂症的处理。功能和体验优化包括:
v3.0以来,Creator一直在不断积累和打磨渲染能力,v3.4中为了增强引擎的氛围感和画面效果,也带来了一系列重要的升级。尤其是光照模型的改进将使得引擎在光照表现层面更加精细。
手动设置环境光vs自动生成漫反射卷积图
关闭HDRvs开启HDR
开启Denoisevs关闭Denoise
在渲染管线方面,FrameGraph是从v3.1开始引入的基础设施,经过几个版本的迭代,在v3.4我们正式将Forward和Deferred管线都对接了FrameGraph,下面是一个简化的延迟管线FrameGraph。
目前引擎的延迟管线总共包含2个计算pass,7个渲染pass,虽然不算复杂,但已经能凸显FrameGraph的作用了。一方面简化了管线层的代码组织,降低了维护成本;另一方面也降低了开发者定制管线时的心智成本。基于FrameGraph,华为HMSCGKit团队在v3.4中继续在延迟管线中贡献了ClusteredLightCulling用于优化动态光源计算性能,可在移动端支持同屏数百个动态光源(麒麟990芯片在Sponza场景运行1000盏动态光源可达到40fps)
另外,渲染管线中的Subpass也是基于FrameGraph来实现的,FrameGraph的第二大优势就是延迟模式渲染(不同于延迟渲染管线),引擎可以先分析渲染流程,进行优化之后再执行完整渲染流程。目前移动端的GPU都是和CPU共享系统内存的,功耗的一大热点就是对于显存的读写。而Subpass优化就是充分利用GPU的Tiled缓存来降低显存读写功耗,当两个相邻渲染Subpass的写入资源和读取资源是同一份帧内资源,且不会被其他pass引用时,这个资源就只会通过Tiled缓存来读写,不会读写内存,可以明显降低功耗。这种对资源和渲染流程的自动推导正是FrameGraph带来的优势。
正如前文介绍,稳定性是v3.4版本的首要目标,所以我们也修复了一些困扰多时疑难杂症,将引擎的稳定性推上了一个新的高度。下面列举一些比较重要的修复
除了重要问题的修复以外,引擎的整体性能也得到了一定的提升,比如2D渲染和合批效率、物理性能、iOSWeb的3D场景性能、Android部分场景。下面是2D渲染的部分测试结果:
这个处理会确保index.html内部有一个固定的div结构
如果缺失了GameDiv/Cocos3dGameContainer,运行时会自动补齐
注意:这个div结构是引擎内部管理的私有结构,我们希望保持这个结构完整且不被定制。如果在这个结构内加入了其他web标签,可能会导致一些不确定的兼容问题。
新增的IBL采样降噪算法目前对iOSWeb环境兼容有一些问题,由于发现较晚就没有在版本中合并了,会在后续的3.4.1中完成对iOSWeb的支持
目前延迟管线仍然在高速迭代过程中,功能和平台兼容性还存在一些问题,暂不建议在项目中实战使用。目前已知的一些问题包括部分粒子混合模式无法渲染,暂不支持builtin-toon材质,部分低端平台和设备有兼容性问题,不支持聚光灯阴影,2D&3D相机混排问题等。
该版本主要功能是让引擎构建出来的原生应用可以支持iOS10+。为了支持iOS10+,引擎代码去除了对C++17的依赖。
引擎的有些功能依赖C++17,有些功能对AndroidAPI有要求。为了方便开发者使用,编辑器的功能配置界面对于这些依赖进行了提示。比如,Android使用延迟管线时,要求AndroidAPI21+,如果配置选择使用延迟管线,编辑器会提示需要的AndroidAPI版本:
从v3.1开始,UITransform组件的priority属性已弃用,若需要调整节点树的顺序请使用setSiblingIndex方法。在v3.1之前通过代码创建并依赖priority属性的节点可能会出现节点树表现和之前不一致的问题,请手动调整。
RenderTexture在不同平台上会出现正反不一致的情况,为了解决这个问题,Creator为effect新增了SAMPLE_FROM_RT宏,在使用RenderTexture时,需要将SAMPLE_FROM_RT宏设置为true,各后端便会统一适配至正确的效果。
CocosCreator3.x版本已经正式发布,2.4版本将做为LTS(长期支持)版本,提供后续两年的持续更新!在2021年,2.4将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在2022年我们还将为开发者持续提供2.4的关键问题修复,保障已上线的游戏平稳运营!因此,
CocosCreator对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
本次更新修复了一些已知问题,CocosCreator将持续优化性能,为开发者带来更好的使用体验!以下是详细更新内容。
同时,我们进一步提升了原生引擎的绑定层级,在渲染管线之上的渲染场景部分也完成了原生化,光源、模型等渲染对象的收集过程使用原生实现,进一步提升了原生平台的性能。
同时,在3.3中,我们也完成了动画数据的升级:引入了新的基础曲线类,重构了AnimationClip,统一了动画和粒子系统使用的曲线数据。这些工作都是为了后续的完善动画系统而准备的,在后续版本我们将支持动画状态机编辑,BlendTree动画融合等高级功能。
除此之外,动画编辑器还完成了以下工作:
在v3.3中,我们加入了windowsx64的构建选项,未来将逐步废除win32平台的构建。
在构建面板上,我们也做了诸多优化:
在之前的版本中,阴影的配置一直是一个比较让开发者困惑的功能,我们已经有完整的规划,正在逐步完善中,v3.3会首先简化阴影的配置,优化软阴影算法,修复阴影的部分效果问题。配置上的调整包含:
v3.1
v3.3
CocosCreatorv3.2.1是我们将v3.1.2合并到v3.2.1而来,继续在大版本分支上给大家带来更稳定的体验,v3.2用户和v3.1.x用户都可以无痛升级。
CocosCreator3.2正式支持HarmonyOS,成为全球首家支持HarmonyOS的游戏引擎。与此同时,Creator与字节跳动平台进行了深度合作,以实验性功能支持在字节小游戏中使用平台提供的PhysX物理能力!欢迎所有开发者使用与体验!以下是详细更新内容。
字节跳动平台一直致力于为开发者提供最强大的性能和基础能力,抖音将在16.3之后版本为小游戏提供PhysX原生物理接口,而Creator与字节跳动平台进行了深度合作,在3.2中以实验性功能支持在字节小游戏中使用平台提供的PhysX物理能力,优化物理运算性能,对比Bullet有近100%的性能提升。
可以在构建面板选择是否开启多线程:
v3.1.2是在v3.1.1上优化体验和性能的版本,这个版本的更新内容是不包含在v3.2中的,之后会将v3.1.2的更新合并到v3.2.1和v3.3.0。
从3.1.0之后引擎组其实一直在并行推进三个版本线,v3.2.0,v3.1.x,v3.3.0,其中v3.2由于有配合鸿蒙2.0发布的需求,所以发布日早就定下了,为了稳定性其实主要就是在v3.1.1基础之上增加了鸿蒙平台支持。而在这之后,我们也在持续收到开发者关于3.1的问题反馈,为了更切实解决开发者遇到的痛点问题,并且降低开发者的升级门槛,我们决定继续在v3.1.2上优化体验和性能,交付给开发者。目前CocosCreatorv3.x作为一个新生的3D引擎,距离开发者的期待还有不小的距离,我们希望通过这种持续交付的实际行动来给开发者更强的信心。同时感谢所有v3.x先行者的支持,是你们的反馈让引擎日趋完善!
以上就是v3.1.2的重要更新,优化了大量开发者反馈的问题,有些问题由于反馈众多,就不单独列出论坛链接了,如果有修复各位遇到的问题,欢迎大家去关联到本帖并标记已解决。
另外,v3.3.0版本已进入迭代后期,这个版本有一些非常重要的更新可以提前透露给大家:
CocosCreator3.x版本已经正式发布,2.4版本将做为LTS(长期支持)版本,提供后续两年的持续更新!在2021年,v2.4将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线;在2022年我们还将为开发者持续提供v2.4的关键问题修复,保障已上线的游戏平稳运营!因此,
CocosCreator对项目的升级操作是不可逆的,请在升级前提交或备份旧版本项目。绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。
为了适配M1,重新编译了第三方库,要求Xcode版本为11.5+
在导入含有负帧动画的FBX时可能造成编辑器不工作,请在相应DCC工具中确定没有负帧动画出现,之后版本将修复此问题
原生平台Spine预乘渲染不正确,之后版本将修复此问题
在3.0预览版发布后,引擎组收到了大量开发者的热情反馈,引擎组工程师们动力倍增,经过了又两个月的迭代后,终于将这灌注了汗水与热血的产品正式推出。Creator3.0统一了2D与3D的开发工作流,兼顾了轻量与重度游戏的开发体验,融合了几乎所有Creator2.x与Creator3D1.x版本的功能,而这一切都是建立在Creator3.0更加健壮的面向未来的底层架构上,这对引擎组来说是个具有重要意义的里程碑。我们会在3.0的基础上继续深耕,用真诚的态度和敬业的精神,踏踏实实完善产品体验,普惠所有开发者。3.0正式版在预览版的基础上,进一步优化了性能,完善了品质,并推出了更多功能,例如接入了Spine,DragonBones的原生运行时,支持使用NPM库,重构了Prefab系统与UI系统等诸多内容。欢迎所有开发者使用与体验!
3.0使用了面向未来的全新引擎架构,将为引擎带来高性能、面向数据及负载均衡的渲染器,并且无缝支持Vulkan&Metal多后端渲染,未来还会支持移动端VR/AR及部分主机平台。下面对3.0的部分特性进行简要介绍。
一体化的编辑器,带来轻量易用的创作体验。CocosCreator3.0在CocosCreator2.x沿用多年的编辑器框架上进行了重构、拓展和升级。
CocosCreator3.0可一键接入Cocos官方推出的各类优质服务,提升开发效率,推出更多优质内容,Cocos也将持续推出更多更优质的服务。
Creator3.0重新实现了Prefab系统,
在构建之后,Creator3.0将会缓存大部分构建内容,包括资源,压缩纹理,自动图集,引擎代码等,在之后构建中,如果没有变化,将直接使用缓存内容,加快构建速度,提升效率。
构建发布将以构建任务的形式进行,保存每次构建的配置、状态、log等,方便切换构建任务以及查看历史配置。
提取了各个小游戏平台的生成阶段,允许在构建之后修改文件内容重新生成rpk/cpk,同时可以支持在编译前后添加构建钩子来定制构建流程。
支持在构建时设置SplashScreen,用于在游戏启动之前显示一段过场动画,优化首屏启动速度。
GameView是内嵌于编辑器的游戏运行面板,开发者无需打开浏览器预览,即可在编辑器中直接运行游戏。除了更无缝的开发体验,还能在游戏运行过程中通过场景编辑器或其它面板实时调试、修改元素状态,让游戏开发更高效!
CocosCreator3.0拥有更加强大的插件系统,编辑器几乎所有功能模块都是以插件形式存在。你可以在扩展菜单中快速创建自己的插件,从而实现自己想要的效果。另外,CocosCreator3.0还提供了扩展管理器,可以轻松管理所有扩展插件的运行和卸载。
插件可以使用IPC消息与其他插件或编辑器进行通信,快速方便地使用编辑器内部已提供的能力。CocosCreator3.0还提供了消息管理器,可以清晰地看到目前编辑器内已提供的功能,降低插件开发门槛。
除常规操作外,3.0的动画编辑器更提供了以下快捷操作,帮助游戏开发者实现想要的内容:
便捷的地形系统,快速绘制地形纹理。地形编辑主要包括三大功能:管理(Manage)、雕刻(Sculpt)、描绘(Paint)。同时支持NormalMap,PBR材质和自定义材质。
烘焙是通过预先计算光源对物体的影响来生成光照贴图并应用到场景中的过程,可以在不损失运行效率的前提下大大提升静态场景的画面表现。
提供了修改引擎宏配置的快捷方式,配置的宏将会在预览、构建时生效,同时也会跟随自定义引擎的配置更新当前宏配置的默认值。
支持添加压缩纹理预设配置,用于快速配置纹理的压缩方式。给图片设置预设后,还可以直接修改预设来批量更新对应的纹理,大大方便了项目的全局管理。
CocosCreator2.4在2D渲染方面很强大,CocosCreator3.0则允许开发者制作出更加精美的3D游戏。我们在3.0中将两者的优势进行了融合,全面支持2D、3D的各种功能特性,无论2D还是3D,3.0都将满足你的需求。
渲染系统作为游戏引擎的核心模块,起着至关重要的作用,直接决定了游戏所能输出给玩家的内容。一个优秀的渲染系统还必须兼顾各类平台,抹平平台间的差异。CocosCreator3.0的渲染系统,从架构到设计都是以面向未来、高性能、跨平台为目标,极大地提升了渲染能力和健壮性。
在3D世界中,光与影一直都是极其重要的组成部分,它们能够丰富环境表现,质量好的阴影可以达到以假乱真的效果,并且使得整个世界更具立体感。
粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。良好的粒子效果可以使游戏画面更加惊艳。
材质作为资源,决定了其所附加的物体的渲染效果,几乎游戏中所有渲染出来的效果都与材质密不可分。材质系统作为基础模块,为上层建筑提供了坚实的基础。
CocosCreator3.0内置了通用的动画系统用以展示基于关键帧的动画。在编辑器中我们可以很方便地生产关键帧动画剪辑。我们能也支持导入外部FBX、glTF资源中已经包含的骨骼动画,资源管理器中可以对这些动画进行二次剪辑,在动画编辑器中可以预览动画效果,添加动画事件触发器,通过动画系统API也可以自如得控制动画播放。
除此之外,我们还支持以下特性:
CocosCreator3.0的项目开发全面转向了TypeScript,项目中也不再支持JavaScript。我们在3.0中进一步完善了对TypeScript的支持:
CocosCreator3.0延续了2.x的UI设计,并进一步优化升级,包含以下内容:
CocosCreator3.0目前内建了轻量的碰撞检测系统Builtin和具有物理模拟的物理引擎cannon.js,以及由功能强大的bullet编译成为asm.js/WASM版本的ammo.js,并为用户提供了高效的组件化工作流程和便捷的使用方法。引擎组将持续对物理系统进行完善与优化,提供更多功能特性以及提升性能,并将对接更多物理系统后端,我们很快将在后续版本中推出PhysX的后端支持(包括原生平台,小游戏平台,Web平台),将大大增强物理系统的原生性能和能力,未来更将会支持包括布娃娃系统,布料模拟,CCD检测等等功能特性。
为了保障现有的CocosCreator2.4项目平稳过渡,我们会将2.4做为LTS(长期支持)版本,提供后续两年的持续更新!在2021年,2.4将继续更新版本,提供缺陷修复和新的小游戏平台支持,以及AppleSilicon(M1)芯片的支持,保障大家的项目成功上线;在2022年我们还将为开发者持续提供2.4的关键问题修复,保障已上线的游戏平稳运营!因此,
而原有的CocosCreator3D做为Creator的分支版本,已经面向中国进行了长达一年的迭代,成功上线了星空大决战、最强魔斗士等重度项目!3.0发布后,Creator3D也将包含在3.0中,现有的1.2项目都可直接升级,因此CocosCreator3D后续不会再发布独立版本,还望周知。