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