【转载】Unity官方TA手册《Unity关键工具集和工作流程》(一)

616 阅读13分钟

原文链接

Unity官方TA手册《Unity关键工具集和工作流程》 | 高鹏涛

原文写得很好,但是主题格式我不太喜欢,所以我对文章的格式以及部分翻译有误的地方进行了修整,方便自己日后阅读

正文

Hello . 大家好
今天给大家带来的是 Unity 官方 TA 手册《Unity 关键工具集和工作流程》Part 1 我是高鹏涛!

图片

近日,Unity 官方发布了一本名为《关键工具集和工作流程》的免费电子书,该手册整合了 “所有 Unity 系统、功能和工作流程的详细摘要”。这份 91 页的指南汇集了经验丰富的技术美术师的意见,包括《Enemies》、《The Heretic》、《Book of the Dead》以及其他创作者的演示。

本书介绍了渲染管线、世界构建、着色、照明、动画、视觉特效、过场动画。以及还有一些章节讨论了脚本编写、分析和调试项目以及 2D 游戏开发。

而本篇连载将以中文翻译的形式分享给大家,英文阅读能力不错的同学可以直接去官方下载原版文档。

由于个人能力有限,如有纰漏之处欢迎留言指出。

  • 在高清晰渲染管道中创建的城市环境 图片

1 概述

本指南概述了 Unity 中或受其支持的工具集和系统,技术艺术家(TA)可以使用这些工具集和系统来帮助他们的团队满足游戏制作中的视觉要求。

技术美术师经常充当团队中美术和程序员之间的桥梁,因为他们可以为技术和美术的需求,提供出合适的解决方案。

他们对团队中所使用的数字资产创作工具和游戏引擎的各种模块,在各种可能实现的视觉表现上有广泛的了解。这使他们能够告知艺术总监和艺术家,有关各种功能机制的硬性限制。

许多 TA 直接处理团队最复杂的艺术需求,从角色绑定到编写着色器,或提出新的工作流程和创建工具来加速整个项目的生产流程。TA 在确保游戏或其他应用程序的视觉质量,能够符合团队设定的标准发挥着关键作用。

我们的 TA 在大型游戏制作有着多年的工作经验,在照明、动画、电影、视觉效果、着色器和图形编程方面也都有很深的了解。本指南是由 Unity 研发部门一些最有经验的 TA,加上位于斯德哥尔摩的演示团队 --《Adam》、《Book of the Dead》、《The Heretic》和《Enemies》的开发者提供的意见而编写的。

阅读本指南,可以帮助你了解 Unity 2021 LTS 和更新版本中的创作工具和 API,并学习如何建立一个高效的内容生产管道,并为团队中的每位成员提供帮助和支持。

2 Prefabs

  • 用于环境构建使用到的 Prefabs 零件范例 图片

使用 Unity 的 Prefab 系统来创建、配置和存储一个游戏资产,是一种可以重复使用的资产,包括它的所有组件、属性值和子物件。Prefab 作为一个资产模板,你可以在场景视图中 组合 成新的 Prefab 实例。然后,这些资产可以在场景之间,甚至其他项目之间 共享,而无需再次配置。

Prefab 对那些将被多次使用的对象很有用,例如 游戏中的平台或收集的物品。要创建一个 Prefab,从层次结构窗口中拖动一个物体到项目窗口中。

  • Prefab 类型的资产 MOD_Trees2 在项目窗口中显示样式,项目栏视图(下)和 场景资产栏视图(左) 图片

像 Unity 中的其他资产一样,Prefabs 是可编辑的。你可以在每个对象的基础上编辑 Prefab,可以实现 Prefab 的 单个实例改变为单独的资产,或者可以将改变的效果,应用到所有的实例 Prefab 。这使得修复资产错误、更改美术效果以及进行其他类型的修改,变得更加有效。

嵌套的 Prefab 允许你将 Prefab 互相连接起来,以创建一个更大的 Prefab;例如,一个由较小的 Prefab 组成的建筑,比如房间和家具。这使你更容易将资产的开发分给多个艺术家和开发人员组成的团队,他们可以同时对资产内容开展工作 .

Prefab Variant 允许你从其他 Prefab 派生一个 Prefab,很像面向对象编程中的 继承。为了影响变体,你必须在不影响原始的资产情况下 覆盖 某些部分。你也可以删除所有修改,并在任何时候 恢复 到基础 Prefab。

另外,如果要一次性改变所有的 Prefab Variants,你可以直接在基础 Prefab 本身上进行修改。

  • 较大的嵌套式 Prefab 可以由较小的 Prefab 组成. 例如,左边的 Prefab 包括许多电力变压器 Prefab,而右边的则展示了不同材质的管道 Prefab 的变体.  图片

更多资源

3 工作中的资产

生产管线

任何游戏引擎的基础系统都是一个强大的 资产管道,它确定项目中资产的状态,并根据系统相应地更新。资产管道也可以通过用户定义的生产管道来扩展。

一个可靠的项目资产管道可以减少艺术家往项目中添加不符合技术要求的资产,(例如,3D 模型的数量比预算要多)。一个好的资产管道可以帮助你的团队遵循命名规则、文件路径、 Prefabs 和其他设置的标准,从而避免资产重复、依赖关系破裂或捆绑资产时出现错误等问题。本节介绍了 Unity 中可用的工具,你可以用来创建一个安全和高效的资产管道。

  • 一个详细的预生产计划可以让你的工作室的项目,在多个艺术家中同时开展工作,最大限度地减少未使用的资产,或其他可能影响生产进度等问题。 图片

一个非破坏性的资产管道

作为制作前计划的一部分,你的团队应该就资产工作流程的各个方面达成一致,如需要创建的资产清单,要基于项目的技术要求以及开发成本去设定预算。

您可以使用一种对资产级别进行分组的方法,如下:

  • 大型元素: 这些元素不能使用独特的纹理创作,但必须使用tiling或模块化元素,例如墙壁、地面、悬崖、建筑物的屋顶等
  • 中型道具: 这些道具有独特的纹理,如桶、板条箱、岩石和门
  • 高度重复的小元素: 像地面物体或 convey scale 的物品,包括鹅卵石、树叶、螺丝和螺栓

预估每个资产的时间、多边形数和贴图分辨率,并相应地确定任务的优先级。然后,创建必要资产,并将不必要资产的数量减少到最低限度。

资产导入工作流程的另一个关键方面,是从 3D 模型中创建Prefabs。在实际生产过程中,不建议 直接在三维软件中转换为 Prefab,因为如果对 FBX 文件进行修改,如资产结构的层次变化,它将 破坏 Prefab。这会要求你用更新替换场景中的所有实例。解决这个问题的方法Prefab Variants(变体)

Prefab Variants 使你的艺术资产的生产与场景无关,使它们成为原型设计时的 理想选择。推荐在构建游戏世界的同时进行协作迭代。它们提供了常规 Prefab 的好处,如制作原始模型的变体,但也作为 FBX 模型 Prefab 的一个 "弱" 引用。这使得你可以方便地 添加分割删除 模型元素,而不必重新创建 Prefab。制作人员可以对 FBX 模型进行修改,而 Prefab Variant 也会相应地更新。Prefab Variants 还允许艺术家在不改变项目本身的情况下看到艺术变化。

同时,考虑使用 嵌套的 Prefabs 方便场景制作。

  • 对于有许多合作的开发团队,推荐的 Prefab Variant 工作流程 图片

使用 AssetPostProcessor(资产后期处理器)自动设置资产

在一个涉及成千上万资产的生产中,避免依赖从检查器中手动配置每个资产的规格。

为了自动化验证资产文件的过程,使用 AssetPostProcessor API。这可以帮助你在导入资产之前或之后连接到导入管道并运行脚本;只需为脚本添加资产以进行必要的更改。您可以从单个脚本更改设置,该脚本会自动将更改重新应用到项目中的资产。

  • 从左到右。情景板、概念艺术、预制资产、目录和命名标准,以及最终视觉效果。Unity 公司的 Megacity 演示 图片

导入资产

你可以在 DCC 工具中创建好资产,直接带到你的项目的 Assets 文件夹中,Unity 可以读取它们。Unity 会检测你何时对文件进行新的修改,并根据需要重新导入文件。

当你在 Unity 中修改资产的设置时,无论是从脚本还是从 Inspector 导入,原始的设置总是保持不变。与之相反的,Unity 在内部为你的资产,创建一个符合你选择的导入设置的 game-ready 的表示。总是从 Unity Editor 中移动或重命名你的资产,因为它对相应的 meta files 也会做同样的事。

根据手头的资产类型,导入设置看起来有所不同。

  • 在 Inspector 中对不同的资产类型进行预视化和设置:C# 脚本、纹理、FBX 资产和材质 图片

Unity 支持许多资产类型以及它们的内置导入器,包括最常见的 3D 模型、纹理和音频文件。请看 documentation 中的完整列表。

你也可以用 C# 中创建你自己的 Scripted ImportersScripted Importers 使你能够处理 Unity 中不原生支持的文件。在软件包管理器中可以找到例子,包括AlembicPSD 导入器。

资产数据库

对于大多数类型的资产,Unity 需要将资产的源文件中的数据转换成可以在游戏中使用的格式。它将这些转换后的文件和它们的相关数据存储在 Asset Database 中。

这个转换过程是 必要 的,因为大多数文件格式被优化以节省存储空间。然而,在游戏中,资产数据需要以一种可供硬件或立即使用的格式,如 CPU、图形或音频硬件。例如,当 Unity 导入一个 .PNG 图像文件作为纹理时,它不会在运行时使用原始 .PNG 格式的数据。相反,当你导入纹理时,Unity 以不同的格式创建一个新的图像表示,存储在 Library folder > Project window 中。Unity 中的 Texture 类使用这个导入,并将Unity 资产上传到 GPU 中进行实时显示。

如果你后来修改了已经导入的资产的源文件(或者改变了它的任何依赖关系),Unity 会重新导入该文件并更新导入的数据版本。关于这个过程的更多信息,请参阅 Refreshing the Asset Database

资产数据库还提供了一个 AssetDatabase API ,你可以用它来访问资产并控制或定制导入过程。

将 3D 模型在不同背景中可视化

在一个典型的制作过程中,有很多时候,一个新的视觉资产需要由不同的利益相关者(如艺术总监)进行全面的审查和验证。事先测试材质和资产的表现,是确保它们在场景中运行良好的唯一方法。

Unity 的 Look Dev 解决方案,可以在 Window > Render Pipeline > Look Dev 下找到,它是一个基于图像的照明工具,与 高清渲染管线(HDRP) 一起。它包含一个查看器,供你检查和比较资产,以验证它们在各种照明条件下的工作情况。你必须创建一个新的环境库或在第一次使用 Look Dev 时加载一个 Environment Library,但要确保它是一个 高动态范围图像(HDRI) ,以便更好地模拟真实世界的照明。

  • 在 Look Dev 中的 HDRI 图像 图片

FBX 导出

FBX Exporter 工具是由 Unity 和 Autodesk 合作开发的产品之一。Unity 和 Autodesk 合作开发的产品之一。它实现了在 Unity 和 Autodesk® Maya®、Autodesk® Maya LT™ 或 Autodesk® 3ds Max® 之间来回流畅传输 3D models 的工作流程

通过 FBX 导出工具,您可以将 Unity 场景导出为 FBX 文件,并使用艺术家友好的界面将其导入 Maya、Maya LT 或 3ds Max 中。更具体地说,你能够导出 Unity 准备好的 FBX 几何体和动画,并安全地将你的变化合并到这些资产中,以继续在 Unity 中工作。

例如,你可以在 Unity 中封锁一个关卡或原型动画或场景,然后艺术家和动画师可以在他们喜欢的 DCC 工具中加载和迭代。Unity FBX 导出器支持层次结构、灯光、网格、材质、纹理和摄像机参数。

然而,如果你正在开发一个性能要求高或图形要求高的游戏,如一个开放的世界,你会想尽早确保游戏能够处理这种复杂性。原型资产可以根据生产资产的最终规格来创建。例如,模拟资产可以有与最终资产预算相同的三角形数量的资产或相同的着色器设置。

  • 左边的灰盒资产是用 Unity ProBuilder 创建的,而右边的最终资产是在 DCC 软件中完成并导入 Unity 的。 图片

与其他的 DCC 工具工作

Unity 内部使用 FBX 文件格式,所以 建议 你在制作时也尽可能使用 FBX 文件格式,避免使用专有的模型文件格式。如果你使用 DCC 软件,一个例外的软件如 Blender。在这种情况下,你也可以在 Unity 中把你的3D资产保存为 .Blend 文件。然而,这需要你团队中的每个人都安装和使用相同版本的 DCC 软件。

Unity 将导入的网格,会把其所有节点的位置、旋转和比例都保存下来。枢轴点和名称也将被导入,连同顶点、多边形、三角形、UVs、法线、骨骼、皮肤网格和动画等等。当你在其他支持的 DCC 软件中迭代资产时,Unity 将更新相应的 GameObject,并在你每次保存文件时在 Unity 编辑器中同步你的修改的部分。

除了游走于 Blender 和其他 DCC 软件,我们建议你使用 FBX files,以最大限度地兼容 Unity 的其他功能,如 Cloud Build。如果你在 Unity 中制作原型或灰盒场景,一旦资产被导出为 FBX 文件,你的艺术家就可以在他们的 DCC 工具中处理这些资产。进入 Unity 的 Project settings,调整默认的 ExportFBX options 即可。

更多资源