Cocos Creator 3.0 Preview 发布

大家好,引擎组经过了近半年的努力,终于带来了 Cocos Creator 3.0 预览版。Cocos Creator 3.0 集成了原有 2D 和 3D 两套产品的所有功能,带来了诸多重大更新,将做为 Creator 之后的主力版本。同时 3.0 还延续了 Cocos 在 2D 品类上轻量高效的优势,并且为 3D 重度游戏提供高效的开发体验。我们会在 3.0 的基础上大力深耕,用真诚的态度和敬业的精神,踏踏实实完善产品体验,普惠所有开发者。

为了保障现有的 Cocos Creator 2.4 项目平稳过渡,我们会将 2.4 做为 LTS(长期支持)版本,提供后续两年的持续更新!在 2021 年,2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,以及 Apple Silicon (M1) 芯片的支持,保障大家的项目成功上线;在 2022 年我们还将为开发者持续提供 2.4 的关键问题修复,保障已上线的游戏平稳运营!因此,

  • 现有的 2.x 项目可以安心继续开发,无需强制升级 3.0。
  • 新项目则建议使用 3.0 版本开发,我们会不断优化 3.0 的开发体验和运行效率,支撑好 2D、3D 等不同品类的重度游戏顺利上线。

而原有的 Cocos Creator 3D 做为 Creator 的分支版本,已经面向中国进行了长达一年的迭代,成功上线了星空大决战最强魔斗士等重度项目!3.0 发布后,Creator 3D 也将包含在 3.0 中,现有的 1.2 项目都可直接升级,因此 Cocos Creator 3D 后续不会再发布独立版本,还望周知。

此次发布的 3.0 Preview 版本,在功能上已经接近正式版,可以用于新项目立项和特性预研,欢迎大家使用!后续的正式版会在春节前后发布,届时将进一步完善性能、修复问题,确保大家的新项目能顺利推进。

3.0 使用了面向未来的全新引擎架构,将为引擎带来高性能、面向数据及负载均衡的渲染器,并且无缝支持 Vulkan & Metal 多后端渲染,未来还会支持移动端 VR/AR 及部分主机平台。下面对 3.0 Preview 的新特性进行简要介绍。

What’s new

强大的编辑器特性

一体化的编辑器,带来轻量易用的创作体验。Cocos Creator 3.0 在 Cocos Creator 2.x 沿用多年的编辑器框架上进行了重构、拓展和升级。

  • 全新界面设计,更加简洁清晰
  • 启动速度大幅提升,操作体验更上一层楼
  • 资源系统升级,增强对超大项目的支持,更加高效可靠
  • 模块之间代码隔离,纯消息驱动,更加稳定
  • 插件系统彻底模块化,迎接更强大的插件机制

构建

缓存构建内容

在构建之后,Creator 3.0 将会缓存大部分构建内容,包括资源,压缩纹理,自动图集,引擎代码等,在之后构建中,如果没有变化,将直接使用缓存内容,加快构建速度,提升效率。

任务式构建列表

构建发布将以构建任务的形式进行,保存每次构建的配置、状态、log 等,方便切换构建任务以及查看历史配置。

构建后单独编译、生成

提取了各个小游戏平台的生成阶段,允许在构建之后修改文件内容重新生成 rpk/cpk,同时可以支持在编译前后添加构建钩子来定制构建流程。

支持 Asset Bundle

和 2.4 一样,3.0 也使用 Asset Bundle 作为资源模块化工具。开发者可以将贴图、脚本、场景等资源构建为多个 Asset Bundle 中,进而在游戏运行过程中按需加载,从而减少首次下载和加载游戏所需的时间。Asset Bundle 可以按需求随意放置,比如可以放在远程服务器、本地,或者小游戏平台的分包中,也可以跨项目复用,用于加载子项目中的 Asset Bundle。

Splash Screen

可以在构建时设置 Splash Screen,用于在游戏启动之前显示一段过场动画,优化首屏启动速度。

GameView

GameView 是内嵌于编辑器的游戏运行面板,开发者无需打开浏览器预览,即可在编辑器中直接运行游戏。除了更无缝的开发体验,还能在游戏运行过程中通过场景编辑器或其它面板实时调试、修改元素状态,让游戏开发更高效!

插件

强大的插件系统

Cocos Creator 3.0 拥有更加强大的插件系统,编辑器几乎所有功能模块都是以插件形式存在。你可以在扩展菜单中快速创建自己的插件,从而实现自己想要的效果。另外,Cocos Creator 3.0 还提供了扩展管理器,可以轻松管理所有扩展插件的运行和卸载。

消息通信

插件可以使用 IPC 消息与其他插件或编辑器进行通信,快速方便地使用编辑器内部已提供的能力。Cocos Creator 3.0 还提供了消息管理器,可以清晰地看到目前编辑器内已提供的功能,降低插件开发门槛。

动画编辑器

动画编辑器是我们一直在持续优化的重要模块,除了标准的位移、旋转、缩放动画和序列帧动画以外,这套动画系统还支持驱动任意组件属性和用户自定义属性,再加上可任意编辑的时间曲线和创新的移动轨迹编辑功能,能够让内容生产人员不写一行代码就制作出细腻的各种动态效果,任意驱动游戏逻辑。

除常规操作外,3.0 的动画编辑器更提供了以下快捷操作,帮助游戏开发者实现想要的内容:

  • 批量关键帧间隔调整
  • 跨节点轨道复制粘贴
  • 间接属性(如材质属性)关键帧编辑
  • 动画编辑器内直接对资源进行选取、直接编辑关键帧数据
  • 多选关键帧的缩放、移动和删除
  • 支持多选节点后批量添加属性轨道
  • 支持复制粘贴节点上的所有动画数据
  • 支持屏蔽无关键帧节点与搜索节点
  • 支持编辑分量轨道
  • 支持调整动画编辑器布局

更完善的工具链

  • 支持模型预览
    编辑器中选中模型后可以对模型资源进行全方位预览,也可以查看默认材质中使用的各种贴图。
  • 新版的 FBX 导入器
  • 支持 glTF 资源的导入,支持 khr-draco-mesh-compression、sparse accessor
  • 支持动画切割
  • 提供 Mesh Optimizer 工具
  • 模型导入支持 quantized joints/weights

地形编辑器

便捷的地形系统,快速绘制地形纹理。地形编辑主要包括三大功能:管理(Manage)、雕刻(Sculpt)、描绘(Paint)。同时支持 Normal Map 和 PBR 材质。

内置烘焙系统

烘焙是通过预先计算光源对物体的影响来生成光照贴图并应用到场景中的过程,可以在不损失运行效率的前提下大大提升静态场景的画面表现。

优化组件面板

  • 支持组件搜索与分类功能
    之前不少开发者反馈添加组件时无法直接搜索,在大型项目中查找自己编写的组件十分困难。Creator 3.0 支持了组件搜索,可以快速添加组件。
  • 支持同时拖拽多个资源到属性检查器中的数组元素,进行批量赋值
  • 支持复制粘贴组件的值

配置

可视化的宏配置

提供了修改引擎宏配置的快捷方式,配置的宏将会在预览、构建时生效,同时也会跟随自定义引擎的配置更新当前宏配置的默认值。

通过预设批量配置压缩纹理

支持添加压缩纹理预设配置,用于快速配置纹理的压缩方式。给图片设置预设后,还可以直接修改预设来批量更新对应的纹理,大大方便了项目的全局管理。

强大的引擎特性

Cocos Creator 2.4 在 2D 渲染方面很强大,Cocos Creator 3.0 则允许开发者制作出更加精美的 3D 游戏。我们在 3.0 中将两者的优势进行了融合,全面支持 2D、3D 的各种功能特性,无论 2D 还是 3D,3.0 都将满足你的需求。

渲染系统

渲染系统作为游戏引擎的核心模块,起着至关重要的作用,直接决定了游戏所能输出给玩家的内容。一个优秀的渲染系统还必须兼顾各类平台,抹平平台间的差异。Cocos Creator 3.0 的渲染系统,从架构到设计都是以面向未来、高性能、跨平台为目标,极大地提升了渲染能力和健壮性。

  • 支持 Metal, Vulkan, WebGL 1.0,WebGL 2.0,GLES2, GLES3 的多渲染后端
  • 面向未来的高性能渲染层 API 设计
  • 原生支持 PBR
  • 支持 GPU Instancing 合批优化,适用于绘制大量顶点数据相同的动态模型,更支持对包含骨骼动画计算的模型进行 instancing 合批
  • 支持全局雾效
  • 强大的原生渲染器,使用内存共享机制减少 JSB 调用,加快数据访问
  • 支持 ASTC,ETC,ETC2,PVR 等压缩纹理

光影

在 3D 世界中,光与影一直都是极其重要的组成部分,它们能够丰富环境表现,质量好的阴影可以达到以假乱真的效果,并且使得整个世界更具立体感。

  • 基于物理的光源
    Cocos Creator 3.0 采用光学度量单位来描述光源参数。基于光学度量单位,我们可以将光源的相关参数全部转化为真实世界中的物理值。这样,设计人员可根据实际灯光的工业参数以及真实环境的实际物理参数来调节光照强度、颜色、范围等信息,使整体光照效果更加符合真实的自然环境。
  • 支持 Planar Shadow
  • 基于多 Pass 的多光源支持
  • 基于 Shadow Map 的方向光和聚光灯动态阴影,支持 PCF 软阴影与 GPU Instancing

粒子系统

粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。良好的粒子效果可以使游戏画面更加惊艳。

  • 支持多达数十个模块设置,并支持各类曲线,常量变化
  • 支持 GPU 粒子,极大提升渲染性能
  • 支持 Cocos 传统的 2D 粒子

材质系统

材质作为资源,决定了其所附加的物体的渲染效果,几乎游戏中所有渲染出来的效果都与材质密不可分。材质系统作为基础模块,为上层建筑提供了坚实的基础。

  • 基于物理的材质
  • 支持 Cocos Effect
    Cocos 设计的基于 YAML 和 GLSL 的 Cocos Effect,是一种单源码嵌入式领域特定语言 (single-source embedded DSL),YAML 部分声明流程控制清单,GLSL 部分声明实际的 Shader 片段,这两部分内容上相互补充,共同构成了一个完整的渲染流程描述。
  • 支持超过 32 个 Effect 宏定义
  • Cocos Effect 编译器自动剔除无效代码
  • 支持导入 Effect 头文件
  • Effect 的资源面板现已支持预览编译后的 Shader 代码,并支持可视化编辑 Shader 的每个 Define
  • 支持材质预览

中间件

  • 支持 TiledMap
  • 支持 Spine、DragonBones

动画系统

Cocos Creator 3.0 内置了通用的动画系统用以实现基于关键帧的动画。在编辑器中我们可以很方便地产出动画剪辑资源,例如通过动画编辑器,或者某些外部资源中已经包含的动画剪辑资源。在这种情况下,我们仅需要对这些动画剪辑进行组织,按我们的意愿进行播放控制即可。

  • CPU 或 GPU 驱动的骨骼动画
  • 支持动画的融合过渡(CPU 驱动)
  • 使用二进制格式存储骨骼动画,减少文件大小
  • 支持通用动画与骨骼动画两种组件
  • 支持 Uniform 动画
  • 支持 CPU 驱动的 Morph Target (Blend Shape)

脚本系统

Cocos Creator 3.0 的项目开发全面转向了 TypeScript,项目中也不再支持 JavaScript。我们在 3.0 中进一步完善了对 TypeScript 的支持:

  • 拥抱 ES6 和 TypeScript,完善的代码提示和自动导入
  • 属性支持独立的 type decorator: @integer@float@string@boolean@type 等
  • 支持 Async Await 语法
  • 可选链(Optional Chaining)支持
  • 空值合并(Nullish Coalescing)支持
  • 某些循环引用行为将在运行检测并作出警告
  • 增加 core-js polyfills 来帮助部分低端平台补全 ES6 支持
  • 支持 loose 编译模式,可以减小包体和优化性能

UI 系统

Cocos Creator 3.0 延续了 2.x 的 UI 设计,并进一步优化升级,包含以下内容:

  • 灵活简洁的 UI 组件,支持包括 Sprite, Label, Button, Widget 等 20 种组件,你可以使用这些基础组件组合出各种类型的 UI 效果。
  • 支持静态合批
    引擎提供了 UIStaticBatchComponent 组件,不需要频繁改动的 UI 可以使用此组件来缓存渲染数据,从而降低渲染消耗,提高性能。

物理

Cocos Creator 3.0 目前内建了轻量的碰撞检测系统 Builtin 和具有物理模拟的物理引擎 cannon.js,以及由功能强大的 bullet 编译成为 asm.js/WASM 版本的 ammo.js,并为用户提供了高效的组件化工作流程和便捷的使用方法。

  • 支持多物理后端选择,包括 ammo.js、cannon.js 以及更为轻量的 builtin 物理
  • 支持微信小游戏使用 WASM 物理后端,能在 iOS 上获得更高的性能表现
  • 物理系统支持固定步长刷新
  • 支持物理材质
  • 支持包括单形、圆锥、平面、地形、胶囊体、圆柱体、静态网格碰撞体等多种实用的碰撞体
  • 支持点到点、铰链约束组件
  • 网格碰撞器添加凸包近似功能
  • 支持传统 Creator 2D 物理与碰撞系统

详细改动(相比 Creator 3D)

Editor

  • [3.0 NEW FEATURE] 新的 FBX 导入器
  • [3.0 NEW FEATURE] 编译时支持 loose 编译模式
  • [3.0 NEW FEATURE] 地形支持 normal map 和 pbr 材质
  • [3.0 NEW FEATURE] 在 GameView 模式下支持 EditBox
  • [3.0 NEW FEATURE] 支持编译项目脚本时按照预编译宏进行代码剔除
  • [3.0 NEW FEATURE] 支持构建过程中,剔除 deprecated 的兼容代码,减少包体
  • [Sync 2.x] 支持模拟器预览
  • [Sync 2.x] 支持发布连尚小游戏平台
  • [Sync 2.x] 支持发布趣头条小游戏平台
  • [Sync 2.x] 支持构建 Android Instant
  • [Sync 2.x] 支持新版序列化机制
  • [Sync 2.x] Asset Bundle 支持
  • [Sync 2.x] 支持预览时引擎模块剔除
  • [Sync 2.x] 编辑器支持导入 JSON 资源
  • [Sync 2.x] 编辑器支持导入文本资源
  • [Sync 2.x] 编辑器支持导入 LabelAtlas 资源

Engine

  • [Sync 2.x] 支持 Tiledmap
  • [Sync 2.x] 支持 Spine
  • [Sync 2.x] 支持 DragonBone
  • [Sync 2.x]支持MotionStreak
  • [Sync 2.x]支持WebView
  • [Sync 2.x]支持VideoPlayer
  • [Sync 2.x]支持2d物理与碰撞系统,包括box2d与内置
  • [Sync 2.x]支持Asset Manager资源管理
  • [Sync 2.x]支持LabelShadow
  • [Sync 2.x]支持SafeArea
  • [Sync 2.x]蒙版支持图像模具
  • [Sync 2.x]音频支持多播
  • [IMPROVE]可移除cc.Class()样式声明
  • [IMPROVE]重建3d物理碰撞矩阵,碰撞矩阵仅用于初始化刚体的分组和连续,不再维护更新,废除使用Collision Matrix配置项
  • [IMPROVE]重建3d刚体,移除RigidBody.isKinematic,增加RigidBody.type为设置刚体类型,可移除fixedRotation,替换为angularFactor替代
  • [IMPROVE] UI支持自定义材质
  • [FIX]修复iOS 14与iPad OS 14的性能问题
  • [FIX]修复按钮组件Scale设置异常的问题
  • [FIX]修复子模型的lightPassIdx一致导致渲染错误的问题
  • [FIX]修复地形碰撞器在预测缩放后,与渲染效果不匹配的问题

Mini Game

  • [3.0 NEW FEATURE] 支持全新的子域方案
  • [3.0 NEW FEATURE] 支持微信小游戏使用 wasm 物理后端

Native

  • [3.0 NEW FEATURE] 支持 Metal 渲染后端
  • [3.0 NEW FEATURE] 支持 Vulkan 渲染后端
  • [IMPROVE] 进一步减少 jsb 调用,优化性能

Known Issue

  • 安卓上的 Vulkan 后端目前存在性能问题,我们将在正式版进行修复。

Breaking changes

  • 引擎源码内置的 effect 统一更改为和编辑器资源不同的命名规则,如果项目场景里完全没有用到某个 effect,现在在脚本里用 effect 名字是获取不到了(比如 builtin-unlit 等)。建议开发者在需要程序创建材质时,统一把 effect asset 作为脚本的 property 暴露出来,在场景里挂载,然后在 material.initialize 时直接传入。
  • 编辑器 HOME 目录从 ~/.CocosEditor3D 切换回了 ~/.CocosCreator,插件目录由 packages 更名为 extensions。3.0 之后的插件,都会存放在 ~/.CocosCreator/extensions 和 PROJECT/extensions 里。
  • 原先的子域方案不再适用,请切换到最新的子域方案
  • 不支持 JavaScript,仅支持 TypeScript
  • 不再支持 cc 全局变量,请通过模块导入来使用

API 更新(相对 Cocos Creator 3D)

物理材质类型名称进行了变更

Creator 3D v1.2Creator v3.0
PhysicMaterialPhysicsMaterial

geometry 空间下的部分类型名称和方法名称进行了变更

Creator 3D v1.2Creator v3.0
lineLine
planePlane
rayRay
triangleTriangle
sphereSphere
aabbAABB
obbOBB
capsuleCapsule
frustumFrustum
MorphModelmodels.MorphModel
ray_aabbrayAABB
ray_planerayPlane
ray_trianglerayTriangle
ray_sphereraySphere
ray_obbrayOBB
ray_capsulerayCapsule
ray_subMeshraySubMesh
ray_meshrayMesh
ray_modelrayModel
line_planelinePlane
line_trianglelineTriangle
line_aabblineAABB
line_obblineOBB
line_spherelineSphere
aabb_aabbaabbWithAABB
aabb_obbaabbWithOBB
aabb_planeaabbPlane
aabb_frustumaabbFrustum
aabbFrustum_accurateaabbFrustumAccurate
obb_pointobbPoint
obb_planeobbPlane
obb_frustumobbFrustum
obbFrustum_accurateobbFrustumAccurate
obb_obbobbWithOBB
obb_capsuleobbCapsule
sphere_planespherePlane
sphere_frustumsphereFrustum
sphereFrustum_accuratesphereFrustumAccurate
sphere_spheresphereWithSphere
sphere_aabbsphereAABB
sphere_obbsphereOBB
sphere_capsulesphereCapsule
capsule_capsulecapsuleWithCapsule

sys 下的某些平台变量进行了变更

Creator 3D v1.2Creator v3.0
BAIDU_GAMEBAIDU_MINI_GAME
VIVO_GAMEVIVO_MINI_GAME
OPPO_GAMEOPPO_MINI_GAME
HUAWEI_GAMEHUAWEI_QUICK_GAME
XIAOMI_GAMEXIAOMI_QUICK_GAME
JKW_GAMECOCOSPLAY
ALIPAY_GAMEALIPAY_MINI_GAME
BYTEDANCE_GAMEBYTEDANCE_MINI_GAME

预览版暂未支持的功能

以下功能将在正式版加入:

  • 暂不支持 HUAWEI AGC 平台
  • 暂不支持 Cocos Services 服务,将在正式版加入
  • 暂不支持动态合图
  • 暂不支持 Prefab 嵌套
  • Android 暂不支持发布 x86_64 架构
  • 原生平台暂不支持使用 freetype 进行文字渲染
  • 编辑器暂不支持资源包导入导出功能
  • 编辑器暂未实现华为快游戏调试工具
  • Button 组件暂不支持 enable auto gray effect

参考文档

以上就是 Cocos Creator 3.0 Preview 版本的更新说明。

完善的功能覆盖、高性能游戏效果、易用的工作流、便捷的跨平台支持以及强大的编辑器,让 Cocos Creator 成为越来越多开发者开发游戏的首选。我们会不断完善功能特性和平台服务,以帮助开发者更轻松地进军游戏市场,用更低的成本开发出成功的游戏。

在 3.0 Preview 版本使用过程中,如遇到任何问题,欢迎通过论坛 3.0 专区Cocos 小秘书等渠道向我们提交反馈!

而我们也会继续优化 3.0 Preview 版本,确保在春节前后发布 3.0 正式版时,可以给大家带来更好的体验、更小的包体和更高的性能!

另外,如果您计划使用 v3.0 立项开发原生重度游戏,欢迎向我们的产品负责人(jare@cocos.com)报名,您将有机会获得官方交流答疑、立项协助、引擎定制等服务,期待您的来信!