hero-image
2020.01.20

V1.0.3版本

发布时间: 2020.01.20

这个版本可以说是 Cocos Creator 3D 自诞生以来最重要的一个版本,或者说是真正的完全体!因为从 v1.0.3 开始 Cocos Creator 3D 正式支持原生平台。

除了继续扩大平台支持以外,在易用性和上手门槛上我们也做了大量的优化工作,以及无数细节上的功能增强,相信这个版本可以满足绝大部分轻度休闲品类游戏的制作。

在 2020 年春节后,引擎组将继续投入到 v1.1 的开发当中去,届时我们会有更多重要的功能特性更新以及性能优化,将会不断提升 Cocos Creator 3D 产品的优势以及对品类的支撑能力。

重点功能介绍

1. 原生平台支持

从 v1.0.3 开始,大家可以正式打包 iOS、Android、Windows、Mac OS X 原生包,继续基于 Creator 一直以来的原生积累,提供给大家最统一的跨平台开发体验。原生发布的详细使用说明请参考发布文档

2. 小游戏平台支持

我们继续新增了 Cocos Play、小米快游戏、支付宝小游戏三个小游戏平台的支持,请大家参考各个平台的发布文档

3. Async Await !

对!我们响应大家的呼唤,提前了 Async Await 的支持,只需要在构建时,勾选 “异步函数”/"Async Functions" 就可以自由在项目中使用了。除此之外,脚本系统还增加了一些新的特性支持,比如
- 可选链(Optional Chaining)支持
- 空值合并(Nullish Coalescing)支持
- 移除 INode 和 IBaseNode
- 某些循环引用行为将在运行检测并作出警告
- 增加 core-js polyfills 来帮助部分平台补全 ES6 支持

4. 动画编辑器优化

v1.0.3 动画编辑器增加了分量动画功能,支持针对 Vec2、Vec3、Vec4、Color 等类型的分量拆分轨道制作动画帧。同时还增加了同类型的属性轨道的复制、粘贴功能(目前仅支持单轨道);在选中多个关键帧后高亮中间线条,并支持拖拽中间线条来移动关键帧。

5. 增加 Ammo.js 物理模块

为了尝试提供更多的可能性,我们增加了 Ammo.js 物理后端,会在将来支持 wasm 构建出的 Ammo 物理引擎(原生实现是 bullet),将会给物理游戏赋予更高的性能和更多可能性。物理方面,我们还初步增加了胶囊体支持(暂时仅支持 builtin)。

6. 重构 Tween 模块

之前 Tween 模块的使用方式不是非常友好,在内部的审核和讨论后,我们决定将这个模块的 API 和使用方式和 Cocos Creator 2.x 统一起来,在 v1.0.3 中已完成重构,请参考文档了解具体的使用方法。

7. UI 功能强化

UI 做了大量的功能强化工作,比如:
- Editbox 重构和跨平台支持优化
- 透明度级联组件 UIOpacity
- Mask 反向遮罩功能
- 多点触摸开关功能

8. 带搜索功能的添加组件窗口

在节点 Inspector 中,用户选择添加组件时,将看到组织更清晰的组件选择面板,还可以通过搜索来快速寻找想要添加的组件。

部分注意事项和 Breaking Changes

  1. Ammo.js 物理后端已知问题
    • 刚体球和盒碰撞时存在抖动(会影响到表现和事件)
    • 物理材质的回弹系数比较大时,会导致事件不准确
    • 使用物理 ammo.js 时,刚体组件的 Factor 属性在底层的中的表现作用在力和冲量上,与 cannon.js 不同( cannon.js 作用在速度上面,未来可能会调整成一样的)
  2. 材质和合批
    • 蒙皮模型和动态合批的开关全部挪到了材质里,虽然导入 glTF 生成的材质和目前项目已有的材质做了迁移,但任何接下来用户直接新建的材质,都需要在材质里手动指定是否要开启蒙皮或合批
    • 由于资源化渲染管线对启动顺序的影响,所有用户脚本内,在 require 时期创建的 material 将全部失效,最后显示效果为纯黄色(effect 丢失),需要挪到 onLoad 等时期再创建
  3. 平台特性支持
    • 除了微信小游戏平台外,暂时还不支持小米和支付宝小游戏平台上的分包功能,此功能会在以后版本完善。
    • 在打包微信小游戏过程中,如果你勾选了引擎插件功能,会发现有报错,请按照这个说明贴中的方法进行修复,这些修复也将合并在下一个版本中。
  4. TexturePacker 支持:3D 引擎中不再支持 3.x 版本以下的图集格式,导入是会报错的,推荐使用的版本是 4.x。

编辑器详细更新说明

  • [FEATURE]支持原生平台构建(Mac、Windows、Android、iOS)
  • [FEATURE]支持 Cocos Play、小米快游戏、支付宝小游戏三个小游戏平台支持
  • [FEATURE]动画编辑器重构,新增 Vec2、Vec3、Color 的分量动画曲线支持
  • [FEATURE]动画编辑器增加同类型的属性轨道复制/粘贴功能
  • [FEATURE]选中关键帧后高亮中间线条,并允许拖拽中间线条移动关键帧
  • [FEATURE]支持在构建时勾选异步函数来开启 Async Await 等函数支持
  • [FEATURE]新增带搜索功能的添加组件窗口
  • [FEATURE]完善实验室版本地形系统,优化编辑体验,地形数据资源化
  • [FEATURE]添加 UI 空间的对齐按钮(场景面板顶部 Toolbar)
  • [FEATURE]Inspector 面板允许复制组件和只粘贴值
  • [FEATURE]为模型导入切割出的子动画提供 FPS 设置功能
  • [FEATURE]新增 RenderTexture 资源类型(.rt)
  • [FEATURE]立方体贴图导入器添加贴图参数设置
  • [FEATURE]Material 面板上新增定位 Effect 文件的功能
  • [FEATURE]层级管理器面板和资源管理器面板的右键菜单中新增拷贝 uuid 和 path 功能
  • [FEATURE]增强地形编辑功能
  • [FEATURE]新增资源面板右键菜单及功能:在文件夹内搜索
  • [FEATURE]新增其他小游戏平台的自定义构建模板支持
  • [FEATURE]增加了 core-js polyfills,在各个平台完善 ES6 支持
  • [FEATURE]新增实验室功能:资源化的 Programmable Rendering Pipeline
  • [IMPROVE]重构构建流程,完全插件化,让平台扩充更轻松
  • [IMPROVE]重构 Undo/Redo 系统
  • [IMPROVE]独立实现编辑器依赖的数学库
  • [IMPROVE]修改 RenderableComponent的材质动画属性为 materials
  • [IMPROVE]在属性检查器中编辑图片资源时,对应的 sub asset 也一同显示可以编辑
  • [IMPROVE]将 gizmo 的材质引用变为运行时的材质实例
  • [IMPROVE]完善场景内材质资源的迁移流程,支持 sub asset 级迁移
  • [IMPROVE]统一新建资源和节点的名称格式
  • [IMPROVE]优化 FBX 导入时的贴图查找算法
  • [IMPROVE]模型资源 FBX & glTF 的 inspector 面板支持多语言
  • [IMPROVE]FBX 和 Javascript 资源导入器的多语言提示
  • [IMPROVE]对包含蒙皮模型的 glTF 模型导出的材质中自带骨骼动画支持
  • [IMPROVE]优化了某些导入器的报错消息,附加上了被导入资源的 UUID
  • [IMPROVE]防止资源面板数据迁移时报错的情况下导致的死循环问题
  • [IMPROVE]场景面板 Toolbar 插件化
  • [IMPROVE]节点编辑状态下优化材质编辑的方式,改为在同一个界面同时显示组件和材质信息
  • [IMPROVE]加快创建 prefab 节点时层级面板上的显示速度
  • [IMPROVE]减少生成多节点时的查询次数
  • [IMPROVE]防止一些情况下在场景初始化之前发送 ipc 请求
  • [IMPROVE]新增私有节点时层级面板增加容错机制
  • [IMPROVE]将摄像机预览面板从开发者菜单移到面板菜单下
  • [IMPROVE]在构建时自动检测引擎修改以及重新构建引擎
  • [IMPROVE]增加打开版本不匹配或项目类型不匹配时的警告
  • [IMPROVE]增加偏好设置面板的 saving 提示
  • [IMPROVE]优化退出动画编辑模式时面板闪烁的问题
  • [IMPROVE]在脚本资源 library 缺失时不报错
  • [IMPROVE]优化各个面板使用的 ui 和图标
  • [FIX]修复粒子 Gizmo 位置和渲染可能不正确的问题
  • [FIX]修复 prefab 里的动画编辑退出后 info bar 消失的问题
  • [FIX]修复了材质属性面板贴图可能不显示的问题
  • [FIX]修复了节点折叠状态在切换编辑模式后还原不正确的问题
  • [FIX]修复了某些特殊的 binary 格式 glTF 模型无法解析的问题
  • [FIX]修复了某些情况下,构建脚本时脚本会被重复包含的问题
  • [FIX]修复了循环引用提示功能里面,对 type-only-used 标识符的错误处理
  • [FIX]修复动画挂点无法正确获取的问题
  • [FIX]修复 FBX 属性检查器页面 dump material 无法使用的问题
  • [FIX]修复资源移动因 .meta 文件存在而被阻止的问题
  • [FIX]修复 Mac 平台构建的时候资源可能被删除的问题
  • [FIX]修复粒子 multiply effect 计算错误
  • [FIX]修复 prefab 节点在丢失资源的情况下 undo 报错
  • [FIX]修复删除部分组件后 undo 报错
  • [FIX]修复动画编辑中无法复制资源关键帧的问题
  • [FIX]修复动画编辑器中对 sprite frame 属性进行 undo 的问题
  • [FIX]修复取消选中节点后动画编辑器的状态显示
  • [FIX]修复动画编辑器中材质的贴图属性无法打关键帧的问题
  • [FIX]修复退出动画编辑,prefab 会重新生成节点的问题
  • [FIX]修复场景相机离模型很近时,无法使用移动 Gizmo 的问题
  • [FIX]修复粒子组件曲线角度值的显示

引擎详细更新列表

  • [FEATURE]完善物理多后端支持,新增 Ammo.js 后端
  • [FEATURE]将 Tween API 与 Cocos Creator 2.x 同步
  • [FEATURE]SpriteComponent 组件新增 tiled 模式
  • [FEATURE]给 PhysicsSystem 添加 useFixedTime 属性以避免事件不准确和抖动的问题
  • [FEATURE]Builtin 物理中新增胶囊体(暂不支持其他物理引擎)
  • [FEATURE]新增 UIOpacity 组件用于实现 UI 节点的透明度级联
  • [FEATURE]在 Camera 组件中提供 3D 世界坐标系转换到 UI 节点坐标系的方法 convertToUINode
  • [FEATURE]Mask 支持使用 Graphics 作为蒙版(使用方法可参考 test-cases-3d)
  • [FEATURE]Mask 组件支持反向遮罩
  • [FEATURE]新增多点触控开关:macro.ENABLE_MULTI_TOUCH
  • [FEATURE]动画系统支持分量和 Uniform 属性作为动画数据
  • [FEATURE]实验室版本可编程渲染管线初步实现
  • [IMPROVE]优化引擎构建流程,缩减引擎构建包体
  • [IMPROVE]重构 Model 的内存管理模式
  • [IMPROVE]支持计算骨骼动画的包围盒
  • [IMPROVE]重构 AnimationClip,使用动画数据仓库来增强复用和优化动画数据组织
  • [IMPROVE]新增内部材质实例,便于共享和实例化
  • [IMPROVE]节点 TRS 事件改为复用 Node.TransformBit 中的位标记
  • [IMPROVE]将 UIComponent 的 priority 属性移动到 UITransform 组件上,新建 2D 节点默认添加 UITransform 组件
  • [IMPROVE]在 Layout 的排列方向改变时重新调整一次子节点的位置以对齐
  • [IMPROVE]优化 UIStaticBatchComponent 的 API 设计以及添加 clear 操作
  • [IMPROVE]使用 materials 属性取代 sharedMaterials 用于动画编辑
  • [IMPROVE]移除 INode 和 IBaseNode 接口
  • [IMPROVE]重构节点中 UI 相关属性的组织方式,统一迁移到一个 NodeUIProperties 类型属性 _uiProps 下
  • [IMPROVE]更新 Cannon 到 1.0.5 版本,修复 trigger 事件不准确问题
  • [IMPROVE]复用 canvas 来管理 Label 贴图
  • [IMPROVE]同步 Creator 中的 Editbox 组件实现和跨平台实现
  • [IMPROVE]重构引擎启动流程以适应可编程渲染管辖的加载需求
  • [IMPROVE]优化 Profiler 信息的文字尺寸计算
  • [IMPROVE]UICoordinateTracker 增加对 Camera 更新的监听和重新计算
  • [IMPROVE]在 shader 完成 link 之后立即卸除并释放
  • [IMPROVE]优化骨骼动画的材质编译和包围盒计算
  • [FIX]修复 UI 静态合批组件可能导致的 buffer 越界问题
  • [FIX]在部分不支持 gl.UNSIGNED_INT 的平台将顶点 index 的格式适配到 short
  • [FIX]修复贴图为空时的插屏逻辑
  • [FIX]在部分不支持的平台关闭 WebGL 2.0 和 VAO 的使用
  • [FIX]修复点光源的剪裁
  • [FIX]修复阴影在部分平台上由于 z-fighting 导致的闪烁问题
  • [FIX]修复 Layout 类型变化时可能导致的错误
  • [FIX]修复深度缓冲在部分小游戏平台上的兼容性问题
  • [FIX]修复多 UI Canvas 共存时的渲染闪动问题
  • [FIX]修复 ScrollView 运动过程中可能产生的贴图拼接缝隙问题
  • [FIX]修复 ScrollView 的 elastic 属性表现
  • [FIX]修复 Label 在 shrink 模式下宽度仍然越界的问题
  • [FIX]修复重置 ImageAsset 时的错误表现
  • [FIX]修复传递 w 为 0 时导致的 Quat 构造结果错误
  • [FIX]修复 ArrayBufferView 在部分设备上的动画数据解析问题
  • [FIX]修复 SpriteFrame 代码中的不统一性
  • [FIX]修复物理 body 在添加或移除 shape 后被自动重新启用的问题
  • [FIX]修复粒子拖尾的一些渲染问题
  • [FIX]修复编辑器窗口下场景视图并非半透明的问题
  • [FIX]修复一个由对象释放引起的混合表现错误(导致 UI 闪屏)
  • [FIX]修复 iOS Safari 下导航栏下拉可能导致的触摸位置错误问题
  • [FIX]避免 Loader 中可能出现的 ownerQueue 为空的问题
  • [FIX]修复对骨骼的 raycast 计算
  • [FIX]修复骨骼模型的释放问题
  • [FIX]修复了当存在全局标识符 cc 声明时(如 import * as cc from 'cc')脚本执行报错的问题
  • [FIX]修复了项目使用的引擎类型声明文件(cc.d.ts)某些错误
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 游戏开发过程中的技术难题,提高游戏开发效率。