hero-image
2019.12.16

V1.0.2版本

发布时间: 2019.12.16

重点功能介绍

1. 新增 OPPO、vivo、华为平台支持

v1.0.2 最重要目标之一就是增加小游戏平台的支持,在这个版本中,我们正式支持了 OPPO 小游戏、vivo 小游戏和华为快游戏平台。

Cocos 还在继续扩展平台支持能力,原生平台和支付宝平台在 v1.1 开发版本中已经成功运行起来,敬请期待!

2. UI Static Batch

从 v1.0.2 开始,在 UI 节点上,你可以挂载一个 UIStaticBatchComponent 组件(参考文档),UI 静态合批组件是一个提升 UI 渲染性能的组件,当调用 markAsDirty 方法时,引擎就会在当前帧渲染过程中收集该 UI 节点子树(除模型以及 Mask 和 Graphices)下所有的渲染数据,存储为一个静态的 IA 渲染数据,并在后续的渲染流程中使用静态数据进行渲染,不再遍历其节点树。此后的坐标变换将不再生效,当你需要修改静态数据的时候,可以再次调用 markAsDirty 来重新触发渲染数据收集。

3. 微信引擎分离插件功能

我们已在框架层支持微信的引擎插件功能,以尽可能降低小游戏平台的加载耗时,可以在构建时勾选“分离引擎”选项。

4. API 改动说明

为了避免物理事件不准确和物理节点的抖动,PhysicsEngine 中添加 useFixedTime API 来设置是否使用固定的时间步长进行模拟,感谢@MFshangying 的论坛反馈

编辑器其他重要更新   

  • [FEATURE]Inspector 中点击添加组件时,新增组件分类和搜索功能
  • [FEATURE]模型动画资源面板新增支持缩放坐标轴、支持更改 FPS、支持拖拽切割动画
  • [FEATURE]支持资源和节点的剪切操作
  • [FEATURE]项目设置中增加项目全局 layer 配置
  • [FEATURE]新增 effect 头文件资源类型(chunk),所有内置头文件全部资源化
  • [FEATURE]偏好设置中新增实验室标签页
  • [FEATURE]Effect 资源编译加入无效代码剔除流程
  • [FEATURE]为 glTF 导入器的报错信息提供中文版本
  • [FEATURE]开放各个小游戏平台的插屏设置
  • [IMPROVE]优化 glTF 导入器以保障更优的 glTF 一致性测试结果
  • [IMPROVE]优化 glTF 和贴图的导入逻辑,使用异步读取避免卡顿
  • [IMPROVE]避免 glTF 导入过程中出现未命名的动画 clip
  • [IMPROVE]优化 FBX2glTF 转换失败时的报错信息
  • [IMPROVE]优化 Effect 的语法检查能力
  • [IMPROVE]提供通用顶点着色器的 general-vs.chunk
  • [IMPROVE]简化构建 JS 和 CSS 资源的流程
  • [IMPROVE]更新 inspector 内部组件命名
  • [IMPROVE]优化 inspector 相关的 Drag n Drop 组件逻辑
  • [IMPROVE]针对 NPOT 图片设置 wrap mode 时做出警告
  • [IMPROVE]构建过程中添加了脚本构建以及合图编译的 debug 信息
  • [IMPROVE]启动过程中检查项目是否合法,不合法的话报错并关闭
  • [IMPROVE]移除构建时对游戏名称的中文限制
  • [FIX]解决层级和资源面板在高分辨率屏幕下的滚动跳跃问题
  • [FIX]修复 inspector 组件重命名替换的遗漏
  • [FIX]修复 Dashboard 切换 tab 中的一处判断错误
  • [FIX]修复动画编辑器界面 speed 更改后的数据更新问题
  • [FIX]修复动画编辑器中 active 属性轨道动画无效的问题
  • [FIX]修复动画编辑器左键移除关键帧的问题,以及增加关键帧移除的容错
  • [FIX]修复切换场景时可能存在的选中相同 uuid 节点的问题
  • [FIX]修复替换插屏功能中是否保存水印数据存储错误的问题
  • [FIX]修复 UIComponent 组件的显示名称以及单双击操作
  • [FIX]修复 bitmap front 的 meta 更新问题
  • [FIX]修复快速重复复制同一个资源 DB 可能导入失败的问题
  • [FIX]修复取色器窗口不响应回车确认事件的问题
  • [FIX]修复编辑多个粒子时,展开状态没有被正确保留的问题
  • [FIX]修复多个粒子节点删除时场景面板里的粒子控制面板不会消失的问题
  • [FIX]修复无法获取到 menu 参数的问题
  • [FIX]修复编辑器打开的时候会白一段时间的问题
  • [FIX]修复引擎启动时窗口大小为 0 引发的报错
  • [FIX]修复刷新编辑器或弹出面板时资源未保持选中的问题
  • [FIX]修复渐变组件初始化值没有传入的问题
  • [FIX]修复偏好设置中微信开发者工具在 mac 无法选择路径的问题
  • [FIX]修复 node command not found 的问题
  • [FIX]修复 RGBE 格式 cubemap 的生成问题
  • [FIX]修复数字输入框的精度和步长空值判断
  • [FIX]修复 OPPO 小包模式的打包问题
  • [FIX]修复 OPPO/vivo/Huawei 平台的打包替换插屏资源的功能
  • [FIX]修复 Camera 的 visibility 下拉框未显示自定义 layer 的问题
  • [FIX]修复创建自定义构建模板报错的问题
  • [FIX]修复微信子域文件夹拷贝问题
  • [FIX]修复微信子域不存在时的文件夹未清空问题
  • [FIX]修复 render texture 资源导入问题

引擎其他重要更新

  • [FEATURE]提供 2D 相机下映射并同步 3D 节点位置的通用组件
  • [FEATURE]Sprite 新增 Tiled 渲染模式
  • [FEATURE]支持多于 32 个 Effect 宏定义
  • [FEATURE]兼容 iPadOS 的桌面模拟模式
  • [IMPROVE]重构 Model 内存管理策略
  • [IMPROVE]优化更新 Standard 材质接口
  • [IMPROVE]优化骨骼动画模型包围盒计算
  • [IMPROVE]将 UI 渲染组件的 priority 属性迁移到 UITransform 组件上
  • [IMPROVE]将 Node TRS 更新事件从字符串更改为位标记,兼容旧版本代码
  • [IMPROVE]优化循环引用导致组件类型丢失时的报错信息,帮助用户找到引发错误组件
  • [IMPROVE]Sprite 组件上保留用户设置的 SpriteAtlas
  • [IMPROVE]切换 Layout Alignment 的时候在非对齐方向和父节点同步一次位置,更方便切换
  • [IMPROVE]优化引擎内的无依赖 Playground 实现
  • [IMPROVE]优化 Particle 渲染模式在材质中的设置
  • [IMPROVE]避免生成 shader 中未开启逻辑中的 UBO 对应 BindingLayout
  • [IMPROVE]针对空场景优化管线内每帧执行的函数实现
  • [IMPROVE]更好的检测深度贴图是否支持的方法
  • [IMPROVE]物理引擎中添加 useFixedTime API 来避免物理事件不准确和抖动
  • [IMPROVE]将 UIStaticBatchComponent collect 属性改为 collectMark 属性
  • [IMPROVE]增加用于骨骼动画计算的贴图尺寸
  • [FIX]修复 RenderScene 中对 Light 的管理
  • [FIX]修复渲染器中对默认主光源的管理
  • [FIX]修复插屏贴图 Base64 字符串为空时的错误
  • [FIX]修复 OPPO、支付宝等小游戏平台上无法获取和更新第 0 位 uniform 的问题
  • [FIX]修复部分平台不支持 OES_element_index_uint 扩展时模型无法渲染的问题
  • [FIX]在 OPPO 等 Runtime 平台上禁用 VAO
  • [FIX]修复 SpotLight 的剪裁问题
  • [FIX]修复父节点为 undefined 时 _onPreDestroyBase 的逻辑判断错误
  • [FIX]修复 SkinningModelComponent 和 ModelComponent 的初始化和启用逻辑
  • [FIX]修复 Canvas 组件启动时 camera viewport 没有初始化的问题
  • [FIX]修复 AudioBufferSourceNode 的 start 被调用多次导致的报错问题
  • [FIX]修复不同层级 Canvas 渲染时可能排序不正确的问题

文档和案例更新    

2019.11.20

V1.0.1版本

发布时间: 2019.11.20

重点功能介绍

  • 微信插屏配置:正式支持微信插屏配置,只需要构建时选择替换插屏,提交项目信息即可自动替换微信插屏图片,可以选择在插屏下方保留一个不显眼 Powered by Cocos Creator 3D 水印,如果您这么做我们会非常感激。
  • 支持物理材质编辑:目前的功能还比较简单,只支持 Friction 和 Restitution。
  • Effect 资源面板:Effect 的资源面板现已支持预览编译后的 shader 代码,并支持可视化编辑 shader 的每个 define。
  • 优化导入和数据迁移的效率 我们测试的一个超大型项目,数据迁移过程中的内存使用从 4-6 GB 降低到了 0.5-1.2GB,时间从降低到了原本的 10 - 30%。
  • Raycast 支持 v1.0.1 在物理模块 API 中支持对 Collider 进行 Raycast,示例代码如下:

// 找到所有结果 PhysicsSystem.instance.raycast(worldRay, Layers.Enum.DEFAULT, maxDistance, queryTrigger); // 找到最近的匹配结果,两个 API 性能是一样的 PhysicsSystem.instance.raycastClosest(worldRay, Layers.Enum.DEFAULT, maxDistance, queryTrigger);

其他编辑器更新日志

  • [FEATURE] 偏好设置里支持指定不同类型资源的打开程序:代码类资源,图片类资源
  • [FEATURE] 修改节点 layer 属性时,询问是否递归修改所有子节点
  • [FEATURE] FBX 以及 glTF 数据不存在的时候显示默认值
  • [FEATURE] 对 Meta 增加换行符检测,如果文件内有 CRLF 则默认使用 CRLF 换行,没有则使用 LF
  • [IMPROVE] 优化了资源导入、迁移的速度
  • [IMPROVE] 优化盒子碰撞器的编辑操作体验
  • [IMPROVE] 支持全局的自定义引擎位置配置
  • [IMPROVE] 在编辑器环境下不预编译 shader
  • [IMPROVE] 将光源组件集合在独立的组件子菜单项中
  • [IMPROVE] 优化资源搜索面板使用以及统一 icon 数据管理
  • [IMPROVE] 去掉新建脚本名称中的空格并减少树形缩进
  • [IMPROVE] 移动资源时增加了一个是否覆盖原文件的对话框
  • [IMPROVE] 优化 prefab 资源丢失时的展示
  • [IMPROVE] 防止 prefab 不指向自己
  • [IMPROVE] 优化资源很多资源树很长的情况下滚动有上下空白区的问题
  • [IMPROVE] 优化文件夹在自身粘贴的操作
  • [IMPROVE] 去掉删除资源时的因文件系统产生的阻塞
  • [IMPROVE] 增加复制已删除资源时的容错
  • [IMPROVE] 对资源预览面板中前进后退操作增加容错判断
  • [IMPROVE] 优化 SphereLight 组件界面
  • [IMPROVE] 动画编辑器选中关键帧后自动选中对应节点,选中对应的属性轨道
  • [IMPROVE] 动画编辑器 clip 发生变化后检查并选中关键帧
  • [IMPROVE] 优化动画编辑器中 Rotation 显示
  • [IMPROVE] 记忆节点树层级的展开、折叠状态,支持 alt 键全部折叠或展开
  • [IMPROVE] 数组折叠 UI 上 +/- 有歧义,修改为倒三角
  • [IMPROVE] 优化 fbx/gltf 资源的材质编辑效果
  • [IMPROVE] 优化 fbx/gltf 资源中的贴图导入流程
  • [IMPROVE] 优化构建面板操作以及支持单独编译引擎
  • [IMPROVE] 构建时清空 Loader 缓存
  • [IMPROVE] 调整编辑器 Camera 的近裁剪面为 0.1
  • [IMPROVE] 禁止 SkeletonAnimationComponent 的 clips 的编辑
  • [IMPROVE] 场景拖拽的时候,不响应任何其他的事件
  • [IMPROVE] 添加反序列化容错
  • [FIX] 修复项目配置无法被保存的问题
  • [FIX] 修复资源迁移的时候导致的内存泄漏
  • [FIX] 修复资源迁移失败导致死循环的问题
  • [FIX] 修复场景未做任何修改却产生数据差异提示需要保存的问题
  • [FIX] 修复构建过程中由于内存增长导致奔溃的问题
  • [FIX] 修复场景加载带有 MissingScript 的数据卡死问题
  • [FIX] 修复场景文件不存在时保存场景无效的问题
  • [FIX] 修复 HDR 模式下的 gizmo 渲染问题
  • [FIX] 修复节点移除时子节点的 gizmo 仍然残留在编辑器上的问题
  • [FIX] 修复 gizmo 的受光表现
  • [FIX] 修复 undo 后阴影丢失的问题
  • [FIX] 修复并升级 glTF importer 的问题
  • [FIX] 修复某些 glTF-embedded 资源导入数据错误的问题
  • [FIX] 修复包含内嵌贴图资源的 FBX 文件的导入问题
  • [FIX] 修复模型导入时 normal 和 tangents 数据导入问题
  • [FIX] 修复多 UV 模型的导入问题
  • [FIX] 修复导入模型时的贴图搜索算法
  • [FIX] 修复资源面板列表偶现显示不正确的问题
  • [FIX] 修复导入操作系统上创建的文件夹时没有保留文件夹里 meta 文件的问题
  • [FIX] 修复父资源拖拽进 inspector asset 编辑框无效问题
  • [FIX] 修复 uuid 冲突的时候,误将旧资源 uuid 替换的问题
  • [FIX] 修复刷新数据时资源面板中选中的文件夹和根节点文件夹折叠状态不准确的问题
  • [FIX] 修复 ui prefab 从资源还原时场景不显示的问题
  • [FIX] 修复 prefab 还原过程中 Node 类型对象发生的引用错误问题
  • [FIX] 修复 Effect 资源的 define 提取问题
  • [FIX] 修复材质 PipelineStates 没有读取 Effect 文件中默认值的问题
  • [FIX] 修复 TextureCube 删除部分子资源时报错的问题
  • [FIX] 修复框选动画编辑器关键帧时的问题
  • [FIX] 修复动画编辑器 duration 在移动时可能出现的位置不准确
  • [FIX] 修复动画编辑器更改 sample 后当前控制杆的更新
  • [FIX] 修复动画编辑器中丢失属性无法移除以及点击报错问题
  • [FIX] 修复动画编辑器选中关键帧移动一次后移动其他帧的问题
  • [FIX] 修复动画编辑器选中关键帧后直接移动选中的多个关键帧
  • [FIX] 修复动画编辑器 duration 在修改帧数后显示异常
  • [FIX] 修复动画编辑器移除关键帧后依旧显示的问题
  • [FIX] 修复动画编辑器按 Ctrl 键无法多选关键帧的问题
  • [FIX] 修复刷新编辑器后 inspector width 取值不正确的问题(可能导致材质面板异常)
  • [FIX] 修复动画编辑器更新事件帧数据错误
  • [FIX] 修复动画编辑器加载状态管理错误
  • [FIX] 修复 inspector 中编辑数据时的可能发生的报错
  • [FIX] 修复 inspector 中 node 编辑框双击跳转问题
  • [FIX] 修复数字输入框值变化的精度、最大最小值控制的问题
  • [FIX] 修复节点 layer 属性值被序列化为字符串的问题
  • [FIX] 修复 Camera Preview 黑屏的问题
  • [FIX] 修复程序关闭的时候 profile 数据可能未保存的问题
  • [FIX] 修复 ui 组件 clear 按钮不显示
  • [FIX] 修复 prefab 在动画编辑状态下,inspector 闪烁的问题
  • [FIX] 修复层级面板取消关闭时 loading 遮罩一直存在的问题
  • [FIX] 修复微信开发者工具设置方式
  • [FIX] 修复构建微信时未保留原有的子域文件夹问题
  • [FIX] 修复微信子包内包含图集时资源可能会丢失的问题
  • [FIX] 修复模板文件在编辑器打包后创建出来的是只读文件的问题

其他引擎更新日志

  • [FEATURE] 属性支持独立的 type decorator: @integer, @float, @string, @boolean, @type
  • [FEATURE] 给 Sprite 组件添加灰度模式
  • [FEATURE] 新增微信 SubContextView 组件,用于配合 Creator 生产的子域工程使用
  • [FEATURE] glTF 格式支持 khr-draco-mesh-compression
  • [FEATURE] 内建材质支持顶点色
  • [IMPROVE] 使用二进制格式存储并优化骨骼动画序列化后的尺寸
  • [IMPROVE] 大幅降低 Profiler 在渲染过程中的性能损耗
  • [IMPROVE] 复用材质实例,单独处理 PSO 状态变化的更新,优化内存和性能
  • [IMPROVE] 统一 SkeletalAnimationClip 功能到 AnimationClip 中(包含数据迁移)
  • [IMPROVE] 支持最高 32 个 shader 宏定义
  • [IMPROVE] 优化 shader 中的对运行环境支持精度的判断
  • [IMPROVE] 完善 RenderScene raycast 功能
  • [IMPROVE] 防止在父节点生效或禁用过程中修改相关的节点树
  • [IMPROVE] 在基于物理系统的 Transform 同步完成后发送碰撞检测相关事件
  • [IMPROVE] 增加 geometry 中的相交判断 API 并修复部分问题,新增 line_sphere, line_aabb, line_obb
  • [IMPROVE] 优化 Widget 组件对百分比数据的保存方式和编辑器呈现(包含数据迁移)
  • [IMPROVE] 优化 Skybox 在场景加载过程中的内存创建
  • [IMPROVE] 在音频成功播放后取消不必要的事件监听
  • [FIX] 修复模型动态批处理只支持十个节点的问题
  • [FIX] 禁止向场景中添加组件
  • [FIX] 修复节点 setWorldScale 计算错误
  • [FIX] 修复节点 translate 计算错误
  • [FIX] 修复 Tone mapping 和阴影渲染
  • [FIX] 修复 PSO 管理导致的骨骼动画阴影错落问题
  • [FIX] 修复部分设备精度问题导致的 WebGL1 下的渲染错误
  • [FIX] 在微信环境下禁用 VAO 以避免部分机型下的渲染丢失问题
  • [FIX] 修复微信环境下部分 GL 常量不存在的问题,使用值代替索引
  • [FIX] 修复部分情况下微信平台音频无法播放和音量控制无效的问题
  • [FIX] 修复粒子拖尾在 UI 下无法显示的问题
  • [FIX] 修复粒子拖尾的计算问题
  • [FIX] 修复粒子拖尾变形的问题
  • [FIX] 修复粒子 limit velocity 模块的表现问题
  • [FIX] 修复模型属性初始化顺序问题
  • [FIX] 修复模型资源销毁后骨骼动画数据可能丢失的问题
  • [FIX] 修复对 GLTF 的 cubic spline 动画插值支持
  • [FIX] 修复 UI ScrollView 的回弹效果
  • [FIX] 修复 UI 节点在微信下的概率性排序问题
  • [FIX] 修复九宫格贴图在旋转状态下的渲染错误
  • [FIX] 修复 Widget 对节点树事件监听管理导致的对已销毁 Widget 进行计算处理的问题
  • [FIX] 修复常驻 Canvas 节点在切换场景时导致的摄像机移除问题
  • [FIX] 修复基于 Kinematic 的物理同步
  • [FIX] 修复禁用的 RigidBody 组件仍然生效的问题
  • [FIX] 修复地形中类型定义的错误
  • [FIX] 修复 TS WebGL 对象类型提示
  • [FIX] 修复微信插屏会缩小以及横屏状态下尺寸判断错误的问题
  • [FIX] 修复 RenderScene API 注释笔误

文档和案例更新

  • [Sample] 新增完整游戏弹弹乐 3D项目,后续会增加教程
  • [Sample] 新增物理小车 Demo
  • [Sample] 新增下落球球 Demo
  • [Sample] 新增滚动小球 Demo
  • [Sample] 新增吞噬黑洞 Demo
  • [DOC] 新增 PageView 的使用文档
  • [DOC] 新增内置 shader 变量的文档
  • [DOC] 新增 AutoAtlas 资源的使用文档
  • [DOC] 新增动态合批使用文档
  • [DOC] 新增压缩纹理使用文档
  • [DOC] 增加 Canvas clearFlags 属性的说明
  • [DOC] 优化构建选项说明
  • [DOC] 优化 Effect 格式文档
  • [DOC] 完善模型资源的使用介绍(骨骼动画裁剪)
  • [DOC] 修复一些文档中的错误

2019.10.16

V1.0.0版本

发布时间: 2019.10.16

在 2D 和 2.5D 游戏领域以及各类小游戏平台上,Cocos Creator 已成为首屈一指的游戏开发引擎。秉承着 Cocos 一贯的低成本,低门槛,高性能,跨平台等产品特性,Cocos Creator 3D 旨在成为开发者创作 3D 游戏的新选择。

  • 以数据驱动和组件化作为核心的游戏开发方式,高效的工作流能够让团队成员完美协作,极速开发,加速迭代,提高收入
  • 易学易用的编辑器,大大降低了 3D 游戏的入门门槛
  • 轻松跨平台,一次创建,即可发布到原生( v1.0.0 暂不支持)、Web、小游戏等平台,并保持超高性能,真正实现一次开发,全平台运行,最大化游戏产品的可见度和成功概率

Cocos Creator 3D 功能特点

一体化 3D 编辑器,带来轻量易用的创作体验

Cocos Creator 3D 在 Cocos Creator 2D 多年编辑器框架上进行了重构、拓展和升级。

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

Cocos Creator 3D 便利的编辑器体验,还包括:

  • Camera 预览面板
  • 资源缩略图面板
  • 节点和组件的批量编辑
  • 动画编辑器可以直接编辑粒子和模型材质属性
  • 支持压缩纹理
  • 自动合图功能
  • 支持 JSON 合并,缩减包体

完善的功能特性,带来更好的 3D 游戏表现

Cocos Creator 3D 首次真正将基于物理渲染全面带到了小游戏中,不仅支持 PBR 材质,还将光源系统和渲染统一升级为基于物理的度量衡和算法。有了这套真实感渲染引擎和材质系统,相信开发者可以制作出更加精美的 3D 游戏,尤其是在小游戏和 Web 平台上创造出令人惊艳的效果。

  • 拥抱 ES6 和 TypeScript ,完善的代码提示和自动导入
  • 支持 WebGL1.0 和 2.0 多渲染后端
  • 面向未来的高性能渲染层 API 设计
  • 基于物理的光源、Camera 、材质
  • 强大的粒子特效
  • 灵活简洁的 UI 系统
  • 简单易用的物理系统
  • 纯 GPU 驱动的骨骼动画系统
  • 便捷的 tween 动作系统
  • 支持 Camera 渲染到 RenderTexture ,便于实现各种后效
  • 便捷的地形系统,快速绘制地形纹理

Cocos Creator 3D 适用对象

Cocos Creator 3D 适合中小规模 3D 游戏团队以及资源有限的独立游戏开发团队。Cocos Creator 3D 的下载和使用完全免费,官网已充实了大量详细的技术文档,此外,Cocos 活跃的开发者社区、强大的技术顾问团队,能够为开发者及时有效地答疑解惑,帮助开发者攻克 3D 游戏开发过程中的技术难题,提高游戏开发效率。