简介#
本节介绍Blender的资产库系统。它在Blender 3.0中引入,并将在即将发布的多个版本中进行改进和扩展。
See also
以下博客文章是在资产浏览器的设计和开发过程中撰写的。它们是出于历史原因而在这里联系在一起的,并为当前的设计提供了一些更多的背景。
何为资产?#
资产是具有意义的数据块。
blend文件是具有多个 数据块 的数据库:物体、纹理、材质等。当计划重新使用或共享这些数据时,数据需要有意义。这是什么?有何作用? 资产是经过策划的数据块,旨在便于重复使用。
何为资产库?#
资产库是驱动器上的目录,在首选项中注册为资产库。注册意味着您为库定义名称(如 "Sprite Fright" )和驱动器上的位置(如 /home/sybren/projects/sprite-fright/assets
)。
注册后,您可以在资产浏览器中选择资产库。资产库中的所有blend文件都将扫描资产,所有这些资产都将显示在资产浏览器中。
Note
首次加载资产库可能需要一段时间,但下次加载资源库时应大大加快。Blender生成资产库中包含的所有资产的索引,并在其内修改文件时保持其最新状态。索引存储在 缓存目录 中。
blend文件可以直接在资产库的顶层目录中,也可以直接在任何子目录中。资产库的驱动器组织完全由您决定。无论哪个blend文件包含资产,都可以为每个资产分配 目录 。有关如何以这种方式整理资源的详细信息,请参阅 资产目录 。
资产类型#
资产可大致分为两类: 原始 和 预设 资产。这取决于 数据块 类型。
原始资产是 关联或追加 到当前文件的数据块。示例包括物体、材质和世界环境。这些可以从资源浏览器拖到场景(物体和世界)中,也可以拖到现有物体(材质)上。
预设资产是加载数据块,然后 应用 到某个东西。一个例子是姿态资产。施加姿态时,数据块将从其blend文件加载,然后将姿态应用于活动骨架。
今后,资产类型的定义将扩大;有关更多信息,请参阅 开发 。
当前文件资产库#
为了帮助管理当前blend文件中的资源,您可以将资产浏览器设置为显示 当前文件资产库 。这始终显示当前文件中的资产,即使当前文件未保存在资产库中。这还可以创建资产并将其用于同一文件中的小型单个文件项目。
当当前blend文件是资产库的一部分时,您当然也可以在该库中看到其资产。当前文件中的资产以图标来标记,只有这些是可编辑的。
资产的生命周期#
本节介绍如何创建、编辑、共享和使用资源。
创建资产#
要创建资产,请先创建您想要变成资产的东西。也就是说,创建物体、材质、世界环境或角色的姿态。下一步取决于资产的类型(见:资产类型)。
对于原始资产,请使用 标记为资产 操作。它可以在数据块选择器、大纲以及3D视图物体菜单中找到。使用 标记为资产 时,会自动生成预览。如果需要,也可以更改或替换为您自己选择的图像,通过资产浏览器的资产详情区域中预览图像旁边的文件夹按钮。
对于预设的资产,将为不同的资产类型提供专用按钮。当前姿态是唯一的预设资产;请使用动作编辑器中的 创建姿态资产 按钮。这将将所选骨骼的姿态复制到新的动作中,将其标记为资产,如果有打开的资产浏览器,则将其放入当前活动的资产目录中。
创建资产后,请确保将当前的blend文件保存在资产库中。Blender不会为您将资产复制到资产库中。
编辑资产#
由于资产是常规数据块,仅附带少量元数据,因此可以像任何其他Blender数据一样对其进行编辑。只需打开文件并编辑物体、材质、世界环境等即可。
对于姿态资产,这也是可以的。打开姿态库文件后,只需单击 指定动作 按钮,将姿态动作分配给当前选定的骨架。然后,您可以使用所有动画工具来编辑姿态、删除或添加关键帧等。
可以通过 资产浏览器 编辑资产元数据。
编辑资产#
可以从 资产浏览器 中使用资产。
姿态库扩展了此功能,并将资产视图添加到3D视口。请参阅 从3D视口使用。
删除资产#
清理资产 运算符可以擦除资产元数据。此操作项在数据块选择器、资产浏览器和3D视图物体菜单中可用。
捆绑附送的资产#
Blender includes many assets out of the box, these are contained in the "Essentials" library.
这个库包括:
设计局限#
Blender不允许将当前打开的blend文件内容写入其他blend文件。这意味着要编辑资产,您必须打开其对应的blend文件。幸运的是,无论是在资产浏览器的源列表区域中还是在资产上下文菜单中,只需点击一下即可。
这也意味着 Blender不会为您将资产复制到资产库 中。您有责任将与该资产的blend文件放置在资产库目录中,并将该其标记为资产。有关此主题的更多信息,请参阅 平直推送。
开发#
本节介绍进一步发展的有趣途径。即使它不是详尽无遗的列表,但它也可能有助于更好地了解Blender的资产浏览器的当前功能。
资产、文件 & 数据系统#
未来版本可能会支持非Blender资源,例如图像或音频文件。对于此类文件,资产元数据随后存储在XMP sidecar文件中,类似于其他软件也在做的事情。导入器( USD、glTF、FBX……)也可以通过这种方式支持将其文件类型作为资产。此外,应该可以用Python脚本丰富资产,然后在使用资产时提供要运行的代码。
交叉blend文件编辑#
如上所述, Blender本身不允许写入当前打开的blend文件以外的其他blend文件。此规则有助于限制复杂性;例如,在操纵其他文件时,很难可靠地实现撤消系统。当资产存储在各种blend文件中时,该规则确实会妨碍对其进行批量更新。
由于已经有一些工具可以在Blender本身之外操控blend文件(参见 Blender Asset Tracer),因此也可以创建一个外部工具来跨blend文件进行此类编辑。这种工具甚至可以通过Blender的应用程序模板系统实现,也可以用作插件;上述规则适用于Blender本身而不是插件。
平直推送#
资产 推送 是一种将资产放入资产库的方式,即你正在处理一个文件,并希望将该文件中的资产复制到资产库中。这是一个看起来很简单的概念。在某些情况下,它实际上是简单的,但往往会变得相当复杂。例如,当你想把一个物体推入外部资产库时,是否也应该复制材质?这些材质所引用的纹理图像怎么办?由自定义属性、约束或修改器引用的对象呢?它们应该放在哪个文件里?它们是都放在一个大的 "assets.blend "里,还是单独的blend文件里,还是放在每个资产类型的目录里?Blender不应该为你做这样的决定。
对于特殊情况,这些问题都是可以解决的。因此,姿态库已被创建为默认启用的插件。具有特定需求的工作室可以禁用插件并实现其自身的功能;构建基块都在Blender的核心中,因此不需要为此进行复制。此外,插件还可以写入其他blend文件,因此它们可以为用户做出决定。
资产推动是可取的。由于上述问题,尚不清楚如何很好地实现此功能,从而仍然允许艺术家控制其资产。