简介
本节介绍 Blender 的资产库系统。它在 Blender 3.0 中引入,并将在即将发布的多个版本中进行改进和扩展。
See also
The following blog posts were written during the design and development of the Asset Browser. They are linked here for historical reasons, and to give some more context to the current design.
何为资产?
资产是具有意义的数据块。
blend 文件是具有多个数据块的数据库:物体、纹理、材质等。当计划重新使用或共享这些数据时,数据需要有意义。这是什么?有何作用?资产是经过策划的数据块,旨在便于重复使用。
何为资产库?
资产库是驱动器上的目录,在首选项中注册为资产库。注册意味着您为库定义名称(如 "Sprite Fright" )和驱动器上的位置(如 /home/sybren/projects/sprite-fright/assets
)。
注册后,您可以在资产浏览器中选择资产库。资产库中的所有 blend 文件都将扫描资产,所有这些资产都将显示在资产浏览器中。
Note
首次加载资产库可能需要一段时间,但下次加载时应能大大加快。Blender 生成资产库中包含的所有资产的索引,并在其内修改文件时保持其最新状态。索引存储在本地缓存目录中。
blend 文件可以直接在资产库的顶层目录中,也可以直接在任何子目录中。资产库的驱动器组织完全由您决定。无论哪个 blend 文件包含资产,都可以为每个资产分配目录。有关如何以这种方式整理资源的详细信息,请参阅资产目录。
资产类型
资产可大致分为两类:原始 和 预设 资产。这取决于数据块类型。
原始资产是 关联或追加 到当前文件的数据块。示例包括物体、材质和世界环境。这些可以从资源浏览器拖到场景(物体和世界)中,也可以拖到现有物体(材质)上。
Preset assets are data-blocks that are loaded and then applied to something. An example is a pose asset. When applying the pose, the data-block is loaded from its blend-file, and then the pose is applied to the active armature.
今后,资产类型的定义将扩大;有关更多信息,请参阅开发。
当前文件资产库
为了帮助管理当前 blend 文件中的资产,您可以将资产浏览器设置为显示当前文件资产库。这始终显示当前文件中的资产,即使当前文件未保存在资产库中。这还可以创建资产并将其用于同一文件中的小型单个文件项目。
当当前 blend 文件是资产库的一部分时,您当然也可以在该库中看到其资产。当前文件中的资产以图标来标记,只有这些是可编辑的。
资产的生命周期
本节介绍如何创建、编辑、共享和使用资源。
创建资产
要创建资产,请先创建您想要变成资产的东西。也就是说,创建物体、材质、世界环境或角色的姿态。下一步取决于资产的类型(见:资产类型)。
对于原始资产,请使用 标记为资产 操作。它可以在数据块选择器、大纲以及3D视图物体菜单中找到。使用 标记为资产 时,会自动生成预览。如果需要,也可以更改或替换为您自己选择的图像,通过资产浏览器的资产详情区域中预览图像旁边的文件夹按钮。
For preset assets, there will be a dedicated button for the different asset types. Currently poses are the only preset assets; use the Create Pose Asset button in the Action editor. This will copy the pose of the selected bones into a new Action, mark it as asset, and put it into the currently active asset catalog if there is an Asset Browser open.
创建资产后,请确保将当前的 blend 文件保存在资产库中。Blender 不会为您将资产复制到资产库中。
编辑资产
由于资产是常规数据块,仅附带少量元数据,因此可以像任何其他 Blender 数据一样对其进行编辑。只需打开文件并编辑物体、材质、世界环境等即可。
对于姿态资产,这也是可以的。打开姿态库文件后,只需单击 指定动作 按钮,将姿态动作分配给当前选定的骨架。然后,您可以使用所有动画工具来编辑姿态、删除或添加关键帧等。
可以通过资产浏览器编辑资产元数据。
编辑资产
可以从资产浏览器中使用资产。
姿态库扩展了此功能,并将资产视图添加到3D视口。请参阅从3D视口使用。
删除资产
清理资产 运算符可以擦除资产元数据。此操作项在数据块选择器、资产浏览器和3D视图物体菜单中可用。
捆绑附送的资产
Blender includes many assets out of the box, these are contained in the "Essentials" library. This library contains a catalog of hair node groups for use with geometry nodes. Read more about these node groups in the Geometry Nodes section.
设计局限
Blender is not allowed to write to other blend-files than the one you have currently open. This means that to edit an asset, you have to open its blend-file. Fortunately this is only a single click away, both in the Source List region of the Asset Browser and in the asset context menu.
This also means that Blender does not copy assets into the asset library for you. You are responsible for placing the blend-file with the asset in an asset library directory, and marking the asset as such. See 资产推送 for more on this topic.
开发
本节介绍进一步发展的有趣途径。即使它不是详尽无遗的列表,但它也可能有助于更好地了解 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 文件,因此它们可以为用户做出决定。
资产推送是可取的。由于上述问题,尚不清楚如何很好地实现此功能,从而仍然允许艺术家控制其资产。