一、引言
AssetGraph是一种减少资源导入构建工作流所需的工作量的工具,构建AssetBundle和构建可运行应用。使用这个工具,您可以构建工作流,以图形化的方式创建、修改和更改资源设置,甚至使它们自动设置,从而使设计师和艺术家在游戏开发过程中从重复的任务中解脱出来。
- 重要说明:
本插件是Unity日本分公司开发的一款可视化资产自动化构建工具,但该工具已经停止开发,无法直接基于该插件进行自动化工作流构建和部署,有一些地方会有报错。需要项目上的程序员二次开发。
Unity 2019 新特性在次时代手游 《黑暗之潮》中的应用经验及技术分享www.bilibili.com/video/BV1ca4y1W7wN
Unity线上技术大会干货盘点(2020)-《黑暗之潮》中次时代技术的应用经验及技术https://zhuanlan.zhihu.com/p/355729231
二、支持的版本
Unity 2018.4.2f1 及以上版本。
三、安装
可以从Unity 的Package Manager中进行安装。
从unity工程顶部工具栏【window】> 【Package Manager】,点击+号按钮,从下拉菜单中选择“Add package from git URL”,然后在链接中输入地址:https://github.com/Unity-Technologies/AssetGraph.git。
四、界面
4.1Graph编辑窗口
Graph编辑器窗口是一个可视化窗口,在此界面可以查看、编辑和构建资源流程。
编号 | 说明 |
---|---|
1 | 当前已打开的资源流程图,单击以打开下拉菜单。 |
2 | 刷新Graph |
3 | 显示Graph中所有的错误 |
4 | 显示Graph中的说明 |
5 | 导出有关Graph何时重新加载和其构建时间的详细消息。 |
6 | 启用此选项可将Graph用作资源后处理器。启用了此选项的Graph将在每次更新此项目中的资源时运行。 |
7 | 当前应用的平台,可以从下拉菜单中选择其他平台 |
8 | 运行此Graph(在1.7.2预览版中,此按钮名称被变更为Execute) |
9 | |
10 | 显示此Graph的资源路径 |
4.2The Graph 编辑器菜单
编号 | 说明 |
---|---|
1 | 在编辑器中选择要打开的Graph类型 |
2 | 创建一个新的Graph |
3 | 导出或导入一个json格式的Graph设置 |
4.3日志窗口
日志窗口显示在“AssetGraph”节点中完成的资源修改的列表。它还显示了在Graph中发生的任何错误。
序号 | 说明 |
---|---|
1 | 清除记录 |
2 | 激活以使在每次运行资源自动化配置时,都会先清除记录。 |
3 | 资源预览 |
4 | 资源的名称以及日志记录的时间 |
5 | 日志类型,以及工作流的名称和节点名称 |
6 | 打开工作流图表并选择发出此日志事件的节点 |
7 | 日志列表 |
4.3.1错误记录
当运行Graph出现错误时,日志中会出现一个通知。在日志中显示了对错误的描述,以及如何修复它。
4.4 The Batch Build Window批量生成窗口
该批处理构建窗口允许您在多个平台上同时运行多个Graph列表
4.4.1 The Edit Tab编辑选项卡
序号 | 说明 |
---|---|
1 | 切换编辑、运行选项卡 |
2 | 点击add按钮可以新增一个空的集合,也可以通过拖放创建集合。 |
3 | Graph列表 |
4 | 显示当前选定的Graph集合中包含的Graph。集合中的Graph将按从上而下的顺序运行。可以通过在列表中拖动Graph来更改顺序。 |
4.4.2 The Build Tab 运行选项卡
序号 | 说明 |
---|---|
1 | 下拉选项,选择一个Graph集合 |
2 | 运行所选中的Graph |
3 | 更改指定的平台,用鼠标右键单击以添加或删除一个平台 |
4 | 显示运行的状态:成功、失败 |
5 | 详细的运行结果,以及失败时的报告信息 |
4.5 The Project Window 项目窗口
Graph有项目级别共享设置,这些设置在项目窗口中实现。
要修改项目设置,选择 Menu>Window>Asset Graph>Open Project Window,打开项目设置窗口
4.5.1 The Asset Bundles 选项卡
序号 | 说明 |
---|---|
1 | 选择一个在AssetBundle构建时的缓存目录 |
2 | 与AssetBundle集成时,默认的Graph |
4.5.2 The Execution Order Tab执行顺序选项卡
序号 | 说明 |
---|---|
1 | Graph的名字 |
2 | 执行顺序,首先执行值最小的Graph,没有特殊设置的将默认按此顺序从上到下执行 |
3 | 从列表中增加/移除Graph |
五、基础操作
AssetGraph在Graph中完成所有的工作。创建Graph后,请从“Graph Editing 窗口”添加节点Node,通过链接Node,可以为待处理的Asset配置工作管道。
Asset将从左到右处理,在每个阶段进行修改和分组,最终作为AssetBundle进行添加,或者复制到特定目录。
使用此工具的基本方法是通过使用内置Node节点或自定义节点来构建流程管道,然后一次性处理许多的Asset。
5.1 创建一个Graph工作蓝图
要创建一个Graph,选择【Create New】,或者右键单击并选择“AssetBundle Graph”.也可以选择Menu > Window > Asset Graph > Open Graph Editor,并点击‘Create’按钮
当你已经创建过一个Graph asset文件,则可以双击打开它进行编辑。在编辑器界面,可以右键创建新的节点。
5.2 加载资源类型Loading Assets
要配置一套工作流程Graph,需要先加载资源。在编辑器蓝图窗口中,右键点击后出现“右键菜单”,在菜单中选择Loading Assets。然后我们在出现的二级菜单中,选择【Load From Directory】就会从特定目录加载资源。也可以从【project】窗口拖动目录到编辑器蓝图窗口中,也可以创建来自该目录的节点。
创建节点后,选中该节点,则右边的【Inspector】中会出现本节点的信息,你也可以在这里进行加载路径的修改。点击【Select】后可以从资源目录下选择需要操作的资源文件夹。
现在已经创建了加载资源节点,可以创建另外一个节点并链接他们。在链接节点时,你可以看到该资源被传递给已链接的节点。单击此链接,可以从【Inspector】中看到传递的资源列表
对于加载节点类型,在一个Graph中,没有数量上限限制。但是当打包为Asset Bundles模式时,如果一个asset在多个Asset Bundles中,就会报错。
5.3 资源组节点类型Grouping Assets
使用资源编组的方式对资源进行分组管理,通常建议当你希望向Asset Bundle中添加大量资源,或希望从一组资源中创建一个Prefab时使用。当资源首次加载时,他们都在一个默认名称为“0”的组中。你可以以任何你喜欢的方式组合资源。可以尝试右键【Group Asset】—【Group By File Path】(按文件路径分组)来创建节点。
【Group By File Path】是一个按文件路径分组对资源进行分组管理的节点。比如:如果Assets/Enemies文件夹下有【Pirate】、【Vampire】的角色资源,他们将被分为两组。
【Group By File Path】匹配文件路径并对其进行分组,如上图所示,在这个特殊的示例中使用通配符(*)模式匹配很方便。选择【WildCard】(通配符)作为模式类型,并选择“enemies”作为分组关键字
创建另外一个节点,将其与【Group By File Path】链接起来,然后选中连线。在【Inspector】中,你可以看到“Pirate”和“Vampire”目录下的资源分别被编组到【Pirate】和【Vampire】组中。
要构建asset bundle设置,请在编辑器蓝图区域右键单击,然后【Configure Bundle】—【Configure Bundle From Group】创建节点。创建完毕后,将其与【Group By File Path】链接在一起。
5.4 构建AssetBundle类型Constructing AssetBundle Settings
当对资源进行分组时,请尝试将其转换为AssetBundle。你必须创建一个AssetBundle设置,才能将组转换为AssetBundle。创建AssetBundle设置包括命名AssetBundle、指定变量等。在构建AssetBundle之前,需要链接一个节点,用于创建你的AssetBundle设置并映射到该组。
创建AssetBundle设置,右键单击并选择【Configure Bundle】—【Configure Bundle From Group】,创建好后,将【Group By File Path】节点链接过来即可。
5.5 创建Asset Bundles
你已经成功设置了Bundle,我们现在将开始为AssetBundle构建做准备。要根据设置进行Bundle构建,请右键单击【Build】—【Build Asset Bundles】以创建一个新的节点。链接【Configure Bundle From Group】节点和【Build Asset Bundles】节点,如果你要修改AssetBundle的构建设置,比如压缩方法,请选择【Build Asset Bundles】节点,并在“Inspector”窗口中勾选复选框。现在你已经准备好构建你的AssetBundle了。
5.6 Building A Graph
你已经处理了从加载资源到构建AssetBundle的完整流程,现在可以开始构建Graph工作流了,让我们看看他们的效果如何。要开始构建工作流,请单击窗口上的【Excute】
当进度条消失的时候,构建完成。打开在【Build Asset Bundles】中选择的目录,检查文件是否已导出。如果你设置为在缓存目录中构建,AssetBundle将在安装目录的缓存目录下。
5.7 同时构建多个Graph工作蓝图
当随着项目的进展,需要制作多个Graph时,转到 【Menu】—【Window】—【Asset Graph】—【Open Batch Build Window】,该批处理构建窗口功能,可以允许你同时为多个平台构建多个Graph工作流。要了解关于批处理生成窗口的更多信息,请参阅4.4批量生成窗口
六、进阶操作
6.1 资源分类
当使用目录和标签加载资源时,资源类型并不总是相同的。在将资源传递给下一个节点时,要按照名称或类型对资源进行分类时,可以使用【Split Assets】—【Split By Filter】,此筛选器允许你根据名称和类型对资源进行分类,你还可以添加自己的过滤器,(高级功能:添加自定义筛选器)。当一个资源匹配多个筛选器时,该资源将导出到它经过的第一个筛选器,这意味着筛选器的顺序很重要。
6.2 创建资源Creating Assets
你可以创建新的资源,比如:你可能从美术添加的贴图、模型,自动创建游戏预制体。右键单击,选择【Create Assets】—【Create Prefab From Group】,以创建一个节点。要使用【Create Prefab From Group】创建预制体,你必须向项目中添加预生成脚本。请参阅高级功能:从组内创建预制体,如何成为一个预制体构建者。
当你通过【Create Prefabs From Group】来创建预制体时,程序会自动生成预览并添加到导出。
6.3 编辑资源Editing Assets
你可能会需要批量编辑资源,或者作为批处理时批量编辑资源。通过使用AssetGraph,可以一次性编辑导入设置,并直接编辑未通过导入器的资源(比如材质、贴图),如果你要更改贴图和模型的导入设置,右键单击【Modify Assets】—【Overwrite Import Settings】
你可以使用【Overwrite Import Settings】节点,变更模型、贴图、材质、音频、视频的导入设置。有关如何使用它的更多信息,请参阅【Built-in nodes】—【Overwrite Import Settings】,当资源传递到节点时,资源的设置将被修改。
如果要编辑没有导入的资源,请使用【Modify Assets Directly】节点,要了解如何使用它,请参考【Built-in nodes】—【Modify Assets Directly】