下载地址
更新记录:072014
- 添加遗漏的 Spine API(getAttachments,Skin.getAttachment,etc)
- 修复 Spine 动画在最后一帧不会停止可能导致的闪烁
- 修复 Spine 的透明度级联表现
- 修复原生上 Spine 开启 Cache 时调试模式报错的问题
- 修复 unknown WASM_FALLBACK 的警告
- 修复角色控制器在原生 PhysX 下部分 API 的崩溃问题
- 修复多光源在自定义管线下失效的问题
更新记录:071314
- 修复 Spine Cache 模式下的 addAnimation 行为
- 修复 Spine initAnimationCache 和 getAnimationCache 的返回值类型
- 支持 OpenHarmony 4.0
更新记录:071213
- 在小游戏平台默认将 WASM / Asm.js 拆分至子包中,避免主包过大超过限制
- 优化 effects 包体(缩减 1mb)
- 修复 Spine API 遗失、兼容性和稳定性问题
- 移除 RenderGraph 对 TextDecoder 的依赖(修复微信平台支持)
- 修复 RenderGraph 对 instancing 的支持问题
- 修复 RenderGraph 下 CSM 导致的渲染计算量大幅度增加的问题
- 修复叶片材质的散射计算
- 修复皮肤材质的漫反射计算
- 修复 GLES 后端 Color Grading 的崩溃问题
- Character Controller API 的微调
- 修复一些特殊情况下的性能下降
- 修复特殊情况下 Widget 在编辑器中会导致 UI 乱跳的问题
- inspector 界面提供更多帮助文档和提示信息
更新记录:070106
- 修复 Spine 在 iOS 15 以下的 Safari 中无法运行的问题
- 补充部分遗漏的 Spine API 和部分行为 bug
- 修复 Spine 在 OPPO 平台勾选引擎分离时无法运行的问题
- PhysX 在 Web & 微信平台使用 WASM 库
- 增加 RenderGraph 的 API 文档
- 优化自定义管线后处理的属性提示信息、帮助文档和编辑体验
- 优化光源的
luminous
和luminousFlux
的默认编辑步长 - 修复自定义管线在开启 Instancing 时的内存泄露
- 修复部分环境中由
FRAMEBUFFER_INCOMPLETE_DIMENSIONS
引起的渲染错误 - 修复 Prefab 在 inspector 中取消关联的行为问题
- 修复 inspector 中编辑材质时部分数据未缓存的问题
- 修复动画帧事件在动画图中的派发问题
- 修复超长 Label 排版可能崩溃的问题
- 修复 box2d shape 的 aabb 计算错误问题
- 修复部分手柄上的 Y 轴事件反向问题
更新记录:062117
- 修复部分情况下 BMFont 的首字母渲染错误
- 修复 iOS 14 以下版本 Safari 无法成功加载 Spine WASM 的问题
- 修复部分 Spine 加载过程中的异常
- 修复 UIModel 中添加移除 3D 粒子可能无效的问题
- 修复 Marionette 动画系统中 PoseGraphNodeInputBinding.outputIndex 的序列化问题
- 修复自定义管线中 CSM 在接缝处会有漏光的问题
- 支持 LUT 后处理在 Nx1 块和 8x8 块之间的自动切换
- 支持从 Profiler 中获取 stats 数据
- 修复 Quaternion::fromMat3 计算
- 加粗 2D 物理的调试线线宽
- 修复 Spaces XR 构建模板的依赖导入问题
- 优化部分 inspector 排版问题
- 修复 inspector 面板上编辑 material 报错的问题
- 修复反射探针操作报错的问题
- 修复独立 bundle 构建多个平台时,一个出错没有中断的问题
- 修复复制 light-probe 节点报错的问题
- 修复老项目设计分辨率没有设置过的话,升级后自动变化的问题
- 修复 inspector 上,修改 bundle 配置时 reset 按钮不显示的问题
- 修复带有 uitransfrom 组件的 prefab 在插入场景时,会自动增加一个 canvas 的问题
- 修复重新布局后,场景内按钮一次点击可能多次响应的问题
- 修复操作某些节点后,执行 undo 可能出现报错的问题
- 修复 searcher 弹窗在 win 上可能出现偏移、遮盖系统弹窗的问题
更新记录:062106
- Spine WASM 版本更新和修复
- 使用新版本 Emscripten 工具链编译 WASM,大幅提升 Web & 小游戏性能
- 优化 WASM & ASM.JS 占用的包体,在 Web & 小游戏平台剔除 Spine ASM.JS 库
- 支持 DebugDraw
- 修复 Spine 数量过多时的内存溢出问题,改为使用自增长内存模式
- 降低 Spine 在编辑器中的内存占用(降低 50%)
- 修复 Spine 开启合批后的偏移问题
- 修复 Cache 模式下的颜色更新问题
- 编辑器
- 修复材质面板中 Effect 在少数情况下无法选择的问题
- 修复多层嵌套预制体子预制体变化时最外层实例没更新的问题
- 修复预制体实例添加子节点更新到资源后子节点所属父节点异常问题
- 优化属性检查器面板对资源编辑的界面
- 修复动画图界面样式问题
- 修复 sprite-frame 多选后改为单选,编辑按钮不再出现的问题
- 修复在编辑器中撤销移除 Label 导致的问题
- 优化项目设置里 bundle 配置的界面
- 修复登录界面中 skip 按钮文案错位问题
- 修复编辑器顶部预览相关弹出层会被其他遮罩层挡住的问题
- 修复 fbx 里动画事件帧编辑没触发显示保存按钮的问题
- 修复切换节点 inspector 闪烁的问题
- 修复编辑 widget 组件界面里监听窗口尺寸变动时监听事件死循环的问题
- 粒子曲线面板:无法成功修改、编辑第一个关键帧
- 动画辅助曲线:在曲线视图下复制关键帧后,可以正常粘贴至其它关键帧
- Bundle 界面调整,移除重置按钮
- 修复 bundle 构建多个平台,出现失败后未立即中断
- 兼容旧版本升级后的默认设计分辨率,避免升级后强制修改设计分辨率
- 修复纹理压缩 mipmaps 禁用失效
- 修复自动图集的纹理压缩失效
- 修复旧版本项目升级后,因资源导入记录的 depend uuid 可能导致内存泄漏
- 动画图、偏好设置、项目设置在主窗口遮罩的情况下,默认行为改为打开新窗口(如果已经在主窗口内不做处理)
- 修复 searcher 窗口在 win 上可能出现的错位、系统窗口遮挡问题
- 尝试在多显卡电脑上强制使用独立显卡
- 修复插件关闭的时候,没有关闭面板的问题
- 修复部分平台新文本可能会被截断的问题
- 修复文本 Shadow 启用时切换场景可能导致的渲染问题
- 修复 Hair 材质的半透明 pass 效果
- 修复 Toon 材质在 Vulkan 下的显示粗细问题
- 修复部分设备 Vulkan debug 模式下材质编译不过的问题
- 修复数字 Editbox 输入时 iOS 会首先弹出字母键盘再跳到数字键盘的问题
- 修复 Android Gradle 插件版本
- 修复 iOS 上 HingeConstraint 错位的问题
- 渲染管线
- 更新自定义 Deferred 管线
- 自定义 Custom 管线改名为自定义 Forward 管线
更新记录:061906
- 优化编辑器 UI 间距
- 修复解除预制体无法撤销的问题
- 修复剪切粘贴节点到自身时可能出现异常的问题
- 修复预制体上挂载的附加节点更新到资源时可能出现异常的问题
- 修复纹理压缩 mipmaps 开关失效以及图集资源的压缩纹理没有正常生成的问题
- 修复纹理压缩后,Image 资源序列化结果可能不稳定的问题
- 修复动画图预览面板可能出现 previewer 为空的报错
- 优化部分编辑器内存增长问题
- 修复 effect 修改后可能导致材质面板无法选择 effect 的问题
- 修复部分 effect 兼容问题
- 修复创建部分资产(渲染纹理、着色器片段资源、自动图集)的报错
- 修复不勾选初始场景分包时,可能出分包列表异常的问题
- 修复新建任务修改任务名称可能报错的问题
- 修复自定义 Custom 管线的级联阴影效果问题
- 更新自定义管线中的 Deferred 管线(基于 RenderGraph)
重点更新
Custom 管线集成后处理流程
Creator 3.x 依赖 3D 游戏呼声最高的需求应该就是后处理了,之前一直都推荐开发者使用 RenderTexture 来制作却没有提供内置能力,主要原因在于支撑后处理的自定义渲染管线一直没有完成。而经过 3.7 赛博朋克 Demo 对自定义渲染管线的验证,在 3.8 中我们终于可以将抗锯齿、超分辨率、环境光遮挡、炫光等后处理特效交付给开发者。这些后处理流程目前都集成在了 CustomPipeline 中,一方面作为 RenderGraph 的示例,另一方面也可以作为我们标准 Forward 管线的试验场。
- 抗锯齿:提供了消耗非常低的 FXAA 和效果较好基于时序的 TAA
关闭 TAA
开启 TAA - 超分辨率 FSR:有助于用较低的损耗提升渲染分辨率,达到用较低的损耗达到更高的画质,或者减轻项目的性能压力
关闭 FSR
开启 FSR - 环境光遮蔽 HBAO:高质量的环境光遮蔽可以大大提升场景的表现力和真实感,是一种非常通用的画质提升方法
- Bloom:增强高光位置的泛光表现,提升画面质感
- 自定义 Color Grading:这是非常简单但立竿见影的一种后期处理方法,可以用来增强对比度、饱和度,调节颜色、白平衡等画面属性
关闭
开启
从 3.8 开始,我们推荐需要使用后处理的项目切换到 Custom 自定义管线,可以参考文档进行管线的开启。后处理流程的开启方法我们会在后续文档中添加,目前可以先参考管线测试项目来了解如何使用。
2D & UI
- 高清晰度 Label:此项优化是将默认 Label 组件的实现高清化,所以所有项目升级以后都可以免费获得收益。其原理主要是根据 view 的像素缩放比例重新计算 Label 实际渲染的字体尺寸,获得更高清的文本贴图,尤其是移动平台上效果提升比较明显。
- 2D 渲染器重构,主要目标是让 2D 渲染器在不同操作系统适配以及针对不同组件的实现都能有相对统一的框架,高清 Label 的落地也是受益于此,未来也会更容易扩展 3D UI 和 3D 空间的 2D 渲染能力。
- Spine Web & Native 的运行时以及 API 统一
- Spine 使用 Webassembly 运行在微信小游戏,Web 等平台,大幅度优化性能表现
渲染算法和材质更新
- 皮肤材质:在内置 effect 中更新简单皮肤材质和高级皮肤材质,案例可以参考 Cocos Example Materials 中的 Character 场景
- 眼球材质:在内置 effect 中更新高级眼球材质,案例可以参考 Cocos Example Materials 中的 Character 场景
- 叶片材质:在内置 effect 中更新高级叶片材质,案例可以参考 Cocos Example Materials 中的 Character 场景
- 支持 Zeno & Houdini 导出的预烘焙模拟动画:这项功能可以让开发者在游戏或内容中集成离线计算的高质量物理模拟动画,包括刚体、流体、布料等,使得游戏转场或一些固定场景的表现力大幅度提升,尤其是对车机等应用内 3D 模拟非常有帮助。
Zeno
Houdini
- Reflection Probes 支持 Blend,之前的版本中,动态物体在不同 probe 区域之间的移动会引起跳变,在 3.8 中,不仅支持 Probe 之间的效果混合,也支持 Probe 和天空盒之间的混合,在不同烘焙区域以及室内到室外的场景中,都可以得到很自然的过度效果。
无 Probes Blend
v3.8 Probes Blend
无 Skybox Blend
v3.8 Skybox Blend
物理和动画
- 新增角色控制器组件,对于角色扮演和动作类等游戏,可以极大降低角色的开发成本,内置能够和环境自然交互的角色控制能力。
- 约束:新增可配置约束组件,可以用于定制各种复杂的物理部件连接方式,比如汽车的轮轴、各种关节等。
- 约束:Hinge 约束新增转轴驱动和转动范围限制
- 新增 sweep 碰撞检测
- 动画图:动画图开始支持程序式动画:引入姿态图、支持双骨骼 IK,以允许开发者能实现更精细和复杂的动画
- 动画图:引入辅助曲线。使得动画剪辑种除了骨骼动画外,还可以附加一些额外的信息。
- 动画图:状态机移除实验性质的过渡中断功能,改为支持多条过渡
- 动画图:状态机数值条件增加了几种不同类型的条件绑定:权重绑定、动画时间绑定和辅助曲线值绑定
Google Play Games on PC 平台支持
在今年 Google IO 大会上 Google Play Games on PC 和大屏体验是受到重点关注的安卓平台更新,Cocos 也被 Google 官方推荐为适配 Google Play Games on PC 平台的引擎和大屏体验的推荐游戏引擎。
Cocos 也已经有很多知名游戏登录了该平台,从 v3.8 开始,你只需要在构建 Android 时勾选 x86 架构,以及 InputSDK 选项,即可满足 Google Play Games on PC 的平台要求。该平台是 Google Play 尝试扩展桌面平台的重要机会,同不断出现的折叠屏、平板一样,标志着大屏幕适配对移动游戏来说越来越关键,也可以帮助开发者获取更多用户。
烘焙器更新
- LightFX 增加 Blur pass
- LightFX 支持阴影饱和度
- LightFX 支持材质 AlphaThreshold
RenderGraph 自定义管线
自定义管线能力将在 3.8 正式开放给开发者,它在 3.8 中将支持 Custom 管线和默认 Deferred 管线的实现,同时我们还支持了 Compute Shader 能力,不过目前自定义管线的文档尚未准备完成,需要大家耐心等待一段时间,正式版之前我们会把完整文档提供给大家。
OpenHarmony 支持
Cocos 引擎团队和 OpenHarmony 团队紧密合作两年多以来,一起推动了 OpenHarmony 系统在游戏领域的支撑能力不断提升,在社区版本之后,v3.8 我们正式集成了 OpenHarmony 3.2 版本的支持。
编辑器更新
- 编辑器 UI 更新,信息呈现更加紧凑
- 模型导入流程
- 自动生成 LOD 工作流
- 模型导入添加顶点色填充选项
- Asset Bundle
- Bundle 支持单独构建,构建面板支持选择参与构建的 Bundle
- Bundle 配置支持过滤,更方便的控制 Bundle 内资源的颗粒度
- 优化 Bundle 配置的平台设置方式
- 支持在命令行构建时,通过 stage 参数指定要单独执行 Make 或者只构建 Bundle
Breaking Changes
- Gradle 升级 到 8.0.2 , AGP 升级到 8.0.2. JDK 需要升级到 JDK 17. 同时升级 Android Studio 到 2022.2.1.
- 文本底层逻辑调整,深入定制 label 组件能力到 assembler 层的用户需要迁移定制能力到 TextProcessing 中,对上层效果无影响