【最强大佬】Panda携手放空小姐姐将为大家带来...

今天 Cocos Creator 3D v1.1 和大家见面的时候了。

为了帮助各位开发者更快了解 Cocos Creator 3D v1.1,5 月12 日(周二)19:00 Panda 将携手放空在 B 站为大家带来直播,详细介绍 v1.1 的重大更新及特性,我们不见不散喔。

在列举 v1.1 的一系列更新之前,我们想先给大家展示一下使用我们引擎制作的各种品类的 3D 游戏,从最初的休闲类到 IO 类、物理类,再到赛车竞速类、射击类。

近期腾讯光子工作室制作的「最强魔斗士」,不仅制作精良,加载和运行性能也非常优秀,光子团队也接受了我们的专访,并大方分享了游戏的开发经验,包括关卡设计、动画效果、角色换装、碰撞检测、资源管理和加载、性能优化等,感兴趣的童鞋可以点击链接查看详细内容喔。

相信这些游戏的品质已经足以证明 Cocos Creator 3D 的 3D 游戏制作能力。在这里预告一下,我们也会在近期继续为大家奉上「最强魔斗士」策划向专访分享,敬请期待喔。

以下是 Cocos Creator 3D v1.1 完整更新说明。为保证阅读体验,[参考链接]统一放在文末。

性能方面  

GPU Instancing 合批优化

为了释放更多 GPU 端的能力,我们支持了模型使用 GPU Instancing 特性来帮助开发者优化合并 Draw call(需要手动在材质中指定开启 UseInstancing 选项才会生效哦),适用于绘制大量顶点数据完全相同的动态模型,同时也可以通过自定义 shader 加入更多逐 instance 的材质属性。

[动态合批文档]更进一步,我们甚至支持蒙皮模型的动态 GPU Instancing 合批,同样只要满足顶点数据完全相同,即便是模型在播放不同的骨骼动画、动画进度不同的情况下,也可以正确合并渲染。

当然如果你的骨骼动画比较多,可能需要做一些配置,我们也为开发者提供了很方便的[骨骼动画贴图合批配置面板]。

最后,更加令人安心的是,不仅支持渲染特性更完善的 Web 和 Native 平台,即便是微信平台也有相应的 WebGL 扩展支持,所以如有相关渲染效果需求,请一定开动脑筋,多加利用!

GPU 粒子特效

在最新的测试版本中,大家只需要在 ParticleSystem 组件的 Renderer module 中设置 useGPU 即可开启 GPU 粒子模拟。

GPU 粒子在不支持 JIT 的 iOS 平台性能测试结果如下,有成倍的性能提升,可以放心的使用一些轻量的粒子特效了。未来我们还会继续用更极限的方式优化粒子特效的性能。(注意:目前版本 GPU 粒子不支持 TrailModule 和 LimitVelocityOvertimeModule)。左:CPU 版,右:GPU 版。

另外,我们还新增了粒子数据剪裁功能,只要在粒子组件面板中开启 EnableCulling 即可对未开启的粒子模块进行数据剔除,减小场景和 prefab 的尺寸。

功能方面  

动画系统

多个千呼万唤的动画功能在 v1.1 也正式加入了:

1. 开发者们通过内容生产工具导出的 Morph Target 顶点形变动画也可以在 Creator 3D 中正常播放啦,需要在 SkinningModelComponent 上勾选 EnableMorph 选项。

2. [骨骼动画的实时计算模式]:非预烘焙模式,作为后续 blending、masking、secondary physics 和代码手动控制骨骼姿势等需求的统一基础支撑框架。只需要在 SkeletalAnimationComponent 中不勾选 UseBakedAnimation 即可使用实时计算模式。

3. 动画组件的 crossFade 函数正式支持骨骼动画的融合过渡,由于这个功能基于实时计算模式,所以需要在 SkeletalAnimationComponent 中不勾选 UseBakedAnimation。

注意,因为这实际上让骨骼动画从 GPU 计算改为了 CPU 计算,所以性能损耗会大很多,需要尽量控制使用动画融合的模型数量。

地形功能增强和烘焙库

在 v1.1 中我们增强了地形编辑功能,也增加了场景 light map 烘焙功能。地形编辑的 UI 界面有了很大的提升,也增加了凹下、平滑等功能。

需要注意的是,这两个功能仍然在实验室阶段,所以还需要不断地打磨,功能和特性上尚未固化,欢迎大家提出宝贵意见。

[Terrain 文档]

新增物理碰撞体支持

为了加强对物理游戏的支持,我们新增了数个非常有用的碰撞体:

  • 胶囊体编辑 Gizmo

  • 圆柱体碰撞体及编辑 Gizmo

  • 静态网格碰撞体(暂不支持编辑)

除此之外,我们还增加了法线信息到物理射线检测结果中,方便判断物体朝向,开发者可以利用这个信息来计算子弹等物体在接触面上的反弹。

const ray = new geometry.ray();
ray.d.set(0, 0, 1);
if (PhysicsSystem.instance.raycastClosest(ray)) {
    const result = PhysicsSystem.instance.raycastClosestResult;
    result.hitNormal; // 获取法线方向,可以和 ray.d 一起计算出射角度
}

支持发布百度小游戏平台

v1.1 版本继续加强了平台支持,新增百度小游戏平台支持,开发者们可以直接将游戏发布到百度小游戏平台了,使用体验和其他平台一致。

易用性方面  

Cocos Creator 3D 接入 Cocos Dashboard

从 v1.1 开始 3D 引擎也直接由 Cocos Dashboard 来管理,这是 Creator 2.x 和 3D 引擎融合的起点。产品层面的融合还有很长的路要走,但我们有坚定的信心最终能够带给大家完善统一的产品体验。

Camera 预览小窗

虽然之前已经提供了一个独立的 Camera 预览窗口,不过大家对场景中随时观察游戏视角的需求非常强烈,我们也快速地实现了这个功能,从 v1.1 开始,当开发者选中场景中的 Camera 时,就会在场景窗口右下角看到这个 Camera 的预览小窗,切换 Camera 会实时改变预览内容。

材质预览

同样是一个预览功能,材质面板上也开启了材质球预览的功能,这样编辑材质的时候就可以直接在不同的预设模型上看到材质的效果预览了。

这个功能有时候过于鬼畜,程序员和技美可千万忍住不要把策划大人的脸贴上去,笑到脱力我们引擎不会负责任的(免责声明)

插件脚本依赖

这也是最新的测试版中新增的功能,再也不用担心插件脚本的加载顺序混乱了,大家可以给自己的 JS 插件脚本定义依赖关系,加载的时候也会按照依赖进行加载排序。这个功能会更好支持一些多脚本的第三方库,比如说 Protobuf。

我们也更新了一个使用 Protobuf 的实例工程到 [Example 仓库]中。

动画编辑器操作优化

动画编辑器一直都是我们非常重视的模块,从 Cocos Creator 时代开始就不断打磨到现在,在 v1.0.4 中,我们已经增加了诸如:快捷的批量关键帧间隔调整、跨节点轨道复制粘贴、间接属性(如材质属性)关键帧编辑、动画编辑器内直接对资源进行选取等非常好用的功能。

现在在 v1.1 中,我们进一步支持了多选关键帧后的缩放、移动和删除功能,还支持动画编辑器布局的调整。可以通过以下视频更直观地感受我们动画编辑器内的编辑体验。

需要注意的行为修改

  • macro.ENABLE_WEBGL_ANTIALIAS 配置在之前到版本中并没有生效,而 v1.1 我们修复了这个问题。由于该配置默认值为 false,开发者们可能会感受到抗锯齿被关闭的模糊感,可以通过在 main.js 的 cc.game.init 之前增加 cc.macro.ENABLE_WEBGL_ANTIALIAS = true; 来开启抗锯齿。默认值保持 false 的原因是关闭抗锯齿可以在不少中低端设备上提升性能。

  • 原生平台构建目录存在 frameworks 时将不修改配置数据只更新项目资源,原生平台的查看构建配置选项屏蔽平台相关修改。如果需要编辑器来重新配置项目数据,请删除原目录下的 frameworks 文件夹或者新建构建任务。关于原生构建任务我们后续还会收集用户反馈做进一步的优化。

  • 重构 SpriteFrame 结构,SpriteFrame 不再直接引用原始图像资源,而改为引用一个 Texture2D。

  • 胶囊碰撞体属性重构,height 变为 cylinderHeight。

文档和教程  

随着 v1.1 大量新功能的更新和体验的优化,我们也准备了充分的文档给大家参考。还有一个好消息是,我们在 B 站连载的快上车系列视频教程也完结了,如果你是刚接触 Cocos Creator 3D 的开发者,那么这份视频教程可以说是最合适的上手资料。

  • [使用文档]

  • [API 文档]

  • [快上车教学视频]

除此之外,在我们公众号上,最近也会陆续更新一些 3D 的技术分享,大家可以保持关注哦~

有帮助的话点个在看呗▼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值