2023 Unity “玩更大”,一文详解必知重点(建议收藏)

作为全球领先的游戏开发引擎之一,Unity 致力于通过定期迭代新功能、响应开发者需求,赋予用户在游戏开发领域的持续竞争力,为玩家提供更高质量的游戏体验。在广东省游戏产业协会与 Unity 中国联合主办的 IGDC 国际游戏开发者大会中,Unity 中国高级技术经理刘伟贤先生介绍了 2023 年 Unity 在游戏方向的发展路线,包括面向数据的技术堆栈 (DOTS)、图形、美术工具、多人游戏等方面的内容。

图片

Unity 的目标和使命非常简单,就是希望能够帮助各位开发者创造出非同反响的游戏,并轻松触达到世界各地各类的玩家。开发者的反馈对于我们来说是至关重要的,正是因为有了你们的反馈,我们才能携手并进。

图片首先,我们希望提供一个稳定的、快速的、统一的平台以及内核;其次,将会让渲染能力具备更强大的可扩展性;最后,让引擎实现深度 profiling 及性能优化。以此为基础,就可以使用 Unity 引擎构建一个更庞大的游戏世界,与更多用户产生连接,并且能够触达更多目标平台,也可以通过云服务跟全球更多开发者合作。

图片

Unity 版本分为两种,一种是长期维护版本(LTS),官方会对其提供持续两年的支持,适合新手以及商业项目使用;另一种是技术更迭版(TS),可让用户亲身体验早期功能、提出反馈,更适合科技发烧友。

图片

稳定、快速且统一的内核

Unity 引擎内核今年将带来以下内容更新:内容生成管线(Content Pipeline)、包管理器(Package Manger)、输入系统(Input System)、.NET 和 IL2CPP,以及 UI Toolkit。

图片

 Shader Variant prefiltering

Shader Variant prefiltering 这个功能将极大减少 Shader 的编译时间,会在 2023.1 的版本中发布,并同步到 2022 版本。以往,Shader 是后段才会去处理的,并且匹配的机制并不准确。在引入 Shader Variant prefiltering 后,把 Shader 提前了,在编辑器的使用阶段就把这些变体确定下来,并且排除无效的变体、给 Shader 的变体做更加严格的匹配。如果有在打包资源里不存在的变体,Unity 引擎就会直接用一个粉红的 Shader 表达出来,而不会像现在一样选择一个跟它接近的 Shader 来代为呈现。在我们的测试数据中,该功能可以极大提高整个 Shader 的处理及构建流程,提高的效率高达 90% 左右。

图片

Prefab replacement

为了实现更快的迭代速度及内容生产速度,将推出一个功能 Prefab replacement。它可以很方便地替换原来的 Prefab,并选择是否保留或去掉原有的修改。

Addressables 可视化工具

在 Addressables 上,也将提供一个新的可视化工具,该工具可以显示用户正在使用 Addressables 构建资源的信息报告,可以更加清晰地了解到其结果,并验证打包结果是否与预期一致。在 AssetBundle 的构建方面,Unity 2023.1 也会提供一些试验性的特性,如利用多核的机器资源进行导入处理和打包处理。

USD 文件格式支持

在文件格式方面,也将会引入 USD 的格式支持。除此之外,在 2023.1 版本中,用户还可以在 ECS 项目里解锁新的文件格式,这种文件格式能实现更快速的加载、更好的内存扩展。

图片

Package Manager

Package Manager 能够帮助用户快速引入或移除某些插件或功能。今年的目标是让它更具可扩展性,而且更加透明。首先,缓存位置方面进行了改进,可以更方便地自定义 Package 存放的位置。其次,扩展了一个多选功能,可以更方便地对多个 Package 进行操作和修改。最后,正在研发针对 Package 的签名功能,让开发者能清晰知道当前 Package 的版本状态以及它的修改状态。

图片

  Input System在 Unity 编辑器中, Input System 使用将变得更简单。今年将会提供一套 High-level 的 API 方便用户使用,并且提供一个 action map 让开发者在统一位置配置全部输入及处理响应事件。

图片

  .NET and IL2CPP

.NET and IL2CPP 是非常重要的部分。针对这方面,首先将对 Async/Await 进行了改进。在 Unity 里面有很多不同 Async 的 API,这些 API 混在一起使用是非常困难复杂的,新版本中它们将会统一到一起,提供一个现代化的、功能相似的 Unity 异步接口,并且支持 Async/Await 这样原生的关键字。对于 Burst,有三个提升:第一是增加了增量构建的方式,能减缓构建时间;其次是关于调试体验,从 2022.2 开始,用户就可以 Debug 经过 Burst 编译出来的代码,并且对于 call stack 还有一些 exception 的实现都能正常提供,包括 debug 时候的代码跳转等;最后,在 Burst 1.8 中,会提供一个新的 inspector,用户可以更好地检视代码。同时,还有一个非常重大的计划,就是去拥抱 .NET 的技术生态,包括 CoreCLR,支持最新的 API,以及将编译流程迁移到 MSBuild 和 NuGet 上。

图片

UI Toolkit

在 UI Toolkit 方面,将提供一个强大、完整、独立的 UI 解决方案,并且让开发者和设计师能在编辑器工具运行时协同工作。今年,会提供 UI widgets 以及更多自定义形状扩展和一些新的控件,比如 TreeView、Multi-column 等等,还有更加底层的 API,比如 Vector drawing APIs。UI Toolkit 将成为我们最推荐的 UI 解决方案。

图片

Memory Profiler1.0.0

2022.2 的版本中,推出了 Memory Profiler1.0.0,其提供了更好的 UI、UX 体验,更加清晰的数据整理集成线,以及更好的数据分类方式等等,希望开发者通过这个工具,能够快速定位并且提前修复性能问题

Unity 编辑器以及 runtime 的性能也是非常值得关注的模块,在 2022 的版本基础上,针对大场景数据及动画数据的存储、读写都做了提升;在 2023.1 的版本中,也会有更多关于编辑器的性能改进。

图片
图片

更精美、更写实、更智能

 SRP

渲染方面的改进,涉及三个部分——第一是 SRP 的核心基础包,以及从这个核心基础包衍生出来的 URP 和 HDRP。在 2022 后的版本中,会聚焦于给 URP 和 HDRP 带来更多提升,与此同时,也对 SRP 的 code 提供了众多新特性:包括 Material Variants,方便快速对材质进行扩展和修改;Full-screen master node,可在 Shader Graph 里更好地实现自定义的屏幕后处理效果;VFX Graph 的增强以及 Adaptive Probe Volumes;最后,URP 跟 HDRP 的完美整合将简化跨平台内容创作的复杂度。

图片图片

Material Variants

在 2022.1 的版本中,加入了 Material Variants,可以通过它来基于一个常规材质去制作材质的变体,而这个材质的变体能够与模版材质共享一些通用的属性,也可以根据需要去修改属性。当用户对模版材质进行修改的时候,相关修改也会被同步应用到材质变体里面。

另外,用户也可以锁定部分模块材质的特殊属性,以避免材质变体的这部分属性被修改。这个功能听起来跟 Prefab Variant 有点类似,但是它更加强大,再配合上 Shader Variant prefiltering 功能,就能实现效果丰富且资源可控。

图片

Full-screen master node

Shader Graph 在 2022.2 的版本中引入了 Full-screen master node,可以实时看到编写的后处理效果,可以直观地在 Shader Graph 中进行改进和调整。对于 Full-screen master node,用户可以通过全屏后处理节点扩展出自定义后处理,比如像左边夜视效果,也可以利用这个节点扩展出各种自定义的 passes,比如说做边缘检测、物体高光等功能。

另外,也可以渲染一些程序化生成的贴图,比如说 HDR 的夜景、星空图、雨滴动画等等,而 Full-screen master node 也可以被应用在一些局部体积物的实现上面。可见这个节点将极大地丰富 Shader Graph 的功能。

VFX Graph

VFX Graph 能够让用户通过节点编程的方式创造出来更强、更丰富的粒子效果。在 2022 的版本中,也针对 VFX Graph 做了很多提升。首先是 Instancing,帮助用户在一个 VFX 的 Graph 里面渲染更多的粒子。另一个功能叫做 Boolean ports,可以让用户更灵活地控制效果的配置,也可以关掉部分 VFX Graph,从而实现更酷炫的效果。

六面体烟雾效果

在烟雾效果的模拟上,提供了一个新的特性——基于六面光照图的烟雾效果实现。在 2022.2 的版本里面,引入了一个完整的从 ECC 工具到 Unity 的工作流,允许用户真实地渲染、烘焙模拟这种效果。这项技术基于一组烘焙的光照贴图,这些光照贴图带有 6 个方向的光照信息,通过这些烘焙的光照贴图,能够实现复杂的灯光交互,提升视觉效果的同时也兼顾了性能和显存的消耗。

Adaptive Probe Volumes

最后,Adaptive Probe Volumes 还引入了 Timeline 的支持,可以通过 Timeline 实现一些交互效果,也可以让 VFX 更好地融入不同系统以及不同动画效果。Adaptive Probe Volumes 简称 APV,是在 2022.2 版本引入的一个新特性,它能够实现更好的场景 GI 效果。除此以外,APV 也提供了全自动的 Light probe 排布工具,相比之前手动排布的方式更加方便。APV 也提供了更好的间接光效果,对于光照的计算从之前 per object 的方式变成了 per scene 的计算。在 2023 的版本中,将把 APV 扩展到 URP,同时持续提高它的功能、质量,比如对于静态物体的防漏光、针对不同场景的光照需求进行混合等。除此以外,也会额外对 GI 做一些提升,比如说 SSGI、光线追踪等等。最后也会开放一些 API,方便于做光照烘焙。

图片

URP 和 HDRP 的快速切换

下一步是非常重要的是将实现 URP 和 HDRP 的快速切换。为了达成这个目标,需要让 URP 和 HDRP 放在同一个项目里,不同的渲染管线选择去设置不同的配置,让引擎能够根据不同的渲染管线工作。

Block shaders

Block shaders 这个特性专门针对切换 Shader,它提供了一个创新的工作流,以简化、模块化的方式去创作 Shader 中的 Block。Block shaders 的使用方式就像搭积木一样,基于 Block shaders 的模板,用户可以去定义中间的 block,Block shaders 就会根据用户定义的 block 串连起来,根据不同的管线去走统一的流程。

图片图片URP 是目前可覆盖平台最广泛的,可以提供高渲染质量以及最佳性能的管线。后续会继续增进它的特性,并且在工作流以及平台扩展上也会增强。

Forward+

在 2022.2 版本里,给 URP 添加了 Forward+,这个特性能让 URP 摆脱灯光的限制,让它们实现更高、更好的实时光表现。在 Forward+ 管线中,对于 per Object 没有灯光限制,但对于 per Camera 有一些灯光限制,PC 跟主机平台目前限制是 256 盏灯,在移动平台限制是 32 盏灯。灯光在目前的 Forward+ 版本里面是通过 ECS(Unity Entity Component System) 实现的。另外也对 LOD 的过渡也有改进,过渡和混合更加自然。

贴花

现在用户可以通过设置,去过滤或配置需要应用贴花的物件,从而提升性能。由于该功能不支持 SRP Batcher,因此使用的时候一定要配合 GPU Instancing 功能。

TAATAA 也会在 2023 的版本上出现,这样 URP 基本涵盖了所有 AA 的主流算法——TAA、MSAA、FXAA、SMAA。

图片对于 HDRP,会继续打磨提升 HDRP 的性能和质量,同时保持它的可扩展性,将更适用于制作 3A 作品。

物理环境

在 2022.2 版本中,改进了基于物理的天空,让 Cloud Layer 的动态光跟 Volumetric Clouds 设置进行更好的混合,能够支持随着时间、光照、风、天气变化来改变渲染效果。同样,海洋、湖泊的水系统也支持深度模拟和采样,使得它能对时间、环境的变化做出改变。在 2022.2 以及 2023.1 版本,都提升了半透明的渲染效果,通过更易用的 Diffusion Profile 实现在皮肤材质上更好的折射效果。

图片

数字人

对于高保真数字人,将提供一整套完整的头发模拟和头发渲染方案。这是基于引导线的毛发系统,能实时生成并且渲染海量毛发,并且能做出各种真实的物理碰撞以及摆动模拟。这套方案已经打通了数据格式,完全可以投入到实际的生产中。目前关于头发的 demo,可供下载学习和使用。在 2022.2 的 HDRP 版本里,头发 Shader 也提供了一个基于物理的选项。

图片

Ziva

在 2023 的版本里面,我们针对角色和环境、植被等,都进行了改进。首先是 Ziva,这里涉及三个部分 Ziva VFX、Ziva Real-time 以及 Ziva Facetrainer。Ziva Facetrainer 是目前可以直接使用的功能,它支持 ARKit 以及无标记头戴摄像头的捕捉,能够提供精确、可扩展的实时人脸捕捉和回放技术。今年,将会为 Unity 用户免费推出 Ziva Real-time 的播放器,可以让面部训练出来的动画无缝简单地放到 Unity 中使用。

图片

SpeedTree

植被相关的制作工具早在 2015 年就已经部分出现在 Unity里。SpeedTree 能够制作植被相关内容,关于它的工作流改进、表现效果提升以及性能提升都将会在 2023 版本中得以体现。SpeedTree 在 9.3 版本中提供了更多更强大的功能,比如通过照片建模的方式生成树木,利用徒手雕刻实现风格化造型。在 SpeedTree + Unity 方面,改进了 SpeedTree 和 HDRP、URP 的集成,新的风场技术也减少了消耗。SpeedTree 的资产库还更新了上百款模型,新增了很多基于真实环境的资源及材质

图片

图片

多人游戏,多面提升

Netcode for GameObjects

Netcode for GameObjects 是 Unity 构建的一个 High Level 网络库,它用于抽象网络逻辑,能快速帮用户通过网络同步许多 Unity 数据,并且支持跨平台。使用 Netcode,用户可以专注于构建游戏,而不是去处理各种 low level 的网络协议及网络框架。目前 Netcode for GameObjects 在 2020、2021、2022 的版本中都已“开箱即用”。

图片这些 Network tools and server 都是 Netcode for GameObjects 的核心工具,主要帮助定位网络性能的问题。第一可以脱离编辑器的状态追踪实时网络状态及流量状况,第二是监控整个网络状况及流量信息,最后 UTP 1.0 提供了跨平台的抽象层作为网络通讯的抽象层。

图片

图片

Multiplayer Services

在 Multiplayer Services 中,提供了几个重点模块。比如 Relay,一个 Peer-to-Peer 的网络链接服务;Lobby,一个可以让用户同时连接更多玩家的服务;Matchmaker,能够快速匹配到玩家;Game Server Hosting,可以实现高效部署。

图片

图片在 Multiplayer workflows 里面,将提供更多针对多人开发的支持,以加快测试迭代的速度。比如第一个是 Multiplayer Play mode,在编辑器模式下能够快速拉起多人游戏测试。第二个 Network Simulation,可以在编辑器里模拟各种网络状况,包括断连、延迟较高以及丢包等情况。第三个 UTP 2.0,它会扩展支持到 WebGL 及其他游戏服务的嵌入。最后,Server Content Selection,可以帮助用户从编辑器当中构建出特定的轻量化服务器版本。

图片

在新版本中,整个网络场景都将是可视化的,网络操作是可以记录并回放的。

扩大游戏承载

扩大游戏承载离不开 DOTS 技术栈。DOTS 是由三个部分组成的:ECS、C# Job System 及 Burst compiler。目前 C# Job System 以及 Burst compiler 都已经非常完善,可供使用。


图片ECS 目前已经可以投入到生产环境。在 2020 的版本中,就已经发布了 ECS 0.50,而在 2022.2 的版本,ECS 将迎来 1.0 的发布。假如想使用 ECS,推荐 ECS 1.0 版,并使用 Unity 2022.2。ECS for Unity 能够给用户带来难以置信的可能性,但是比较复杂,倾向于推荐经验丰富的游戏开发者使用。

图片未来将提供一个流水线式 ECS 工作流,完全兼容 GameObjects 转换成 Entity。另外,ECS 的架构能自然实现非常灵活的游戏架构,适应各种游戏类型,因为它耦合比较低,可以共用不同的系统。ECS 目前也已开源可供使用。ECS 给用户提供了更多的可控性和决定性,用户可以根据游戏逻辑来决定是否需要进行修改和提升。最后,C# Job System 和 Burst 配合 ECS 能够充分利用硬件资源,会持续优化内存以及 CPU 用量和性能。

图片ECS 的下一步是,提供一个贴近开发者真实生产环境的工作流。将在 ECS 里面实现一套完整的角色控制,另外 ECS 的技术将能够应用到多人网络游戏。最后,目标是拉近跟大世界技术的距离,包括其中 LOD 管理以及各种资源的伸缩能力等。

图片

图片关于 Animation,通过 ECS 的改造将能够得到一个更好性能、更多同频在线人数的动画系统。当然,也会持续保证动作系统的稳定性以及性能。

图片在 Worldbuilding 上将做更多扩展,包括提供基于样条曲线的编辑工具以及整个环境编辑的工作流等等。

图片

全平台支持

移动端

在移动端,首先将减少迭代时间、打包时间,让项目更快速地部署到安卓手机上面,如果有更新,就只把更新的部分同步到手机,而不需要每一次都重新构建、重新部署。并且将提供新工具:configuration manager ,可以让用户针对不同的安卓机器快速完成不同的配置项。还扩展了一些谷歌的 API、GameActivity 的 API 支持。最后,也会保证整个 Toolchain 更新,不管是对于 iOS 还是安卓,都会持续更新 SDK 版本去适配最新的设备及系统

图片

PC 和主机

2022.2 版本里面的 DX12 已经可以投入到正常的生产环境里面,在 2023 的版本上,会引入一个新的线程模型,更大拉开 DX12 与 DX11 的性能差距。用于增量构建的增量部件将扩展到各种 PC 平台以及主机平台等更多的平台。

图片

Web

Web 也是国内开发者关注的要点。今年会持续投入对 Web 浏览器的支持,把重点放在移动端浏览器上,并且将会支持触控,比如虚拟键盘和移动的压缩。最后,也会针对内存管理做更直观的呈现,方便对当前内存的用量以及当前的情况做追踪。同时,该版本有一个非常重要的特点,它将支持多线程,这意味着引擎经过编译以后,C++ 部分的代码可以获得多线程的能力。

图片

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论