数据块

任何 Blender 项目的基本单元都是数据块。数据块的例子包括:网格(meshes)、物体(objects)、材质(materials)、纹理(textures)、节点树(node-trees)、场景(scenes)、文本(texts)、笔刷(brushes),甚至是工作区(Workspaces)。

../_images/files_data-blocks_outliner-blender-file-view.png

Blender 文件的大纲视图。

一个数据块是不同类型数据的一种通用抽象,具有一组共同的基本特征、属性和行为。

通用特性:

  • 各种数据块是组成 blend 文件的主要内容。

  • 可以互相关联,以便于重复利用和实例化。(父/子、物体/物体数据,材质/图像,以及修改器和约束等方式)

  • 对于同一个 blend 文件中的给定的数据块类型,其名字是唯一的。

  • 允许添加、删除、修改和复制。

  • 数据块能在文件之间相互关联(仅限部分数据块)。

  • 可以有自己的动画数据。

  • 他们可以有自定义属性

通常情况下,您会与更高层次的数据类型(物体、网格等)进行交互。在处理更复杂的项目时,数据块的管理变得更加重要,尤其是在相互关联 blend 文件时。其主要的编辑器是大纲

并非 Blender 中的每个数据都是数据块,例如骨骼、序列片段或顶点组就不是数据块,它们分别从属于骨架、场景和网格类型。

数据块类型

这里有一张表格,列出了 blend 文件中存储的数据类型,仅供参考。

关联

库关联,支持关联到其他 blend 文件中。

打包

文件打包,支持将文件内容打包到 blend 文件中(适用于大多数没有文件引用的数据块)。

类型

关联

打包

描述

动作

存储动画函数曲线。用作数据块动画数据和非线性动画编辑器。

骨架

用于网格变形的骨架。作为骨架物体的数据,并由骨架修改器使用。

笔刷

在雕刻和绘制模式中用作笔刷资产。

缓存文件

用于网格缓存修改器。

摄像机

用于相机物体的数据。

集合

对场景中的物体进行分组和组织。用于物体实例化和库关联。

曲线

用作曲线、字体和曲面物体的数据。

曲线(新式)

新型曲线数据类型(替代旧版曲线)。

字体

引用的字体文件。用于文本物体的曲线数据块。

蜡笔

蜡笔物体使用的 2D/3D 草图数据。三维视口、图像、序列和影片剪辑编辑器用作叠加 辅助 信息。

蜡笔 v3

蜡笔物体使用的 2D/3D 草图数据。三维视口、图像、序列和影片剪辑编辑器用作叠加 辅助 信息。

图像

图像文件。用于着色器节点和纹理。

键 (形态键)

几何形状存储,可进行动画处理。由网格、曲线和网格物体使用。

晶格

基于栅格的晶格变形。用作晶格物体的数据,并由晶格修改器使用。

外部 blend 文件的引用。可从大纲视图的 Blender 文件 视图访问。

灯光

用作灯光物体的数据。

光照探头

帮助在 EEVEE 中实现复杂的实时照明。

线条样式

用于 Freestyle 渲染引擎。

遮罩

二维动画遮罩曲线。用于合成节点和序列片段。

材质

设置着色和纹理渲染属性。物体、网格和曲线均可使用。

网格

由顶点/边/面构成的几何体,用作网格物体的数据。

融球

三维空间中的等值面。用作融球物体的数据。

影片剪辑

对图像序列或视频文件的引用。在 影片剪辑 编辑器中使用。

节点树

可复用的节点组。在节点编辑器中使用。

物体

场景中具有位置、缩放和旋转功能的实体。由场景和集合使用。

绘制曲线

存储绘制或雕刻笔画。从绘制工具访问。

调色板

存储颜色预设。可从绘图工具中访问。

粒子

粒子设置。用于粒子系统。

点云

三维空间中的点集合。

场景

所有显示和动画数据的主要存储。作为物体和动画的顶层级存储空间。

屏幕

低层级用户界面存储。

声音

引用至声音文件。用作扬声器物体的数据。

扬声器

3D 场景的音源。作为扬声器的物体数据。

文本

文本数据,用于 Python 脚本和 OSL 着色器。

纹理

2D/3D 纹理。用于笔刷和修改器。

体积

用于容纳数据栅格的体积物体。

窗口管理器

Blender 所有用户界面的总管理器。包括工作区、通知系统、操作符和键位映射。

工作区

界面布局。用于每个有各自工作区的窗口。

世界环境

定义全局渲染环境的设置项。

生命周期

每个数据块都有其使用计数(引用计数),当有多个数据块时,您可以在界面中其名称右侧看到数据块的当前用户数。Blender 遵循一般规则,即未使用的数据最终被删除。

由于在工作时添加和删除大量数据是很常见的,因此这样做的好处是不必手动管理每个数据块。这通过在写入 blend 文件时跳过零用户数据块来实现。

保护

由于零用户的数据块不会被保存,但有时你可能想要强制保留这些数据,而无需关心其使用者。

如果要构建一个 blend 文件作为要关联到其他文件和从其他文件关联的资产库,则需要确保它们不会意外地从库文件中删除。

要保护数据块,请使用其名称旁边带有盾牌图标的按钮。然后,Blender 将永远不会静默删除数据块,但如果需要,您仍然可以手动删除它。

Note

关联的数据不能这样保护。

命名 & 重命名

数据块的名称在其命名空间内是唯一的。数据块命名空间由其类型及其存储所在的 blend 文件共同定义。

这意味着,例如,可以存在一个物体和一个同名网格,但在 blend 文件中不能存在两个同名的本地物体。然而,可以有一个本地物体和多个共享同名的关联物体。

数据块名称长度固定为 255 字节,采用 UTF-8 编码。该存储空间可容纳 255 个基本 ASCII 字符;若使用变音符号或非拉丁字母字符,每个字符会占用多个字节,容量将相应减少。数据块名称不得包含空字符(U+0000)。

当 Blender 需要为新数据块命名或重命名现有数据块时,系统会检查名称冲突。若已存在同名数据块,系统会在其 ‘根名称’ 后添加数字后缀,例如 .001。系统会优先使用第一个可用索引号(上限为 999),此后编号值将自动递增,直至不再发生冲突。

若添加数字后缀会导致数据块名称过长,将根据需要对根名称进行缩短。

Blender 在自动命名时不会重命名其他数据块。例如,当添加新的 立方体 物体时,如果已有 立方体立方体.001 本地物体,新物体将命名为 立方体.002

用户可在界面多个位置(如 ID 选择部件或大纲视图)重命名本地数据块。当通过界面重命名时,若发生名称冲突,系统将按以下方式处理:

  • 若原始根名与新请求名不同,重命名的数据块将获得首个可用的数字后缀。

    • 例如,假设存在三个名为 球体立方体立方体.001 的物体,将 球体 重命名为 立方体 时,数据块将被重命名为 立方体.002

  • 若原始根名称与新请求名称相同,则重命名的数据块将获得请求名称,而冲突的数据块将相应地被重命名。

    • 例如,假设存在三个名为 球体立方体立方体.001 的物体,将 立方体.001 重命名为 立方体 时,数据块将被重命名为 立方体,而另一个数据块则保持为 立方体.001

点前缀名称(隐藏的数据)

以点号(.)开头的数据块名称被视为 隐藏

隐藏的数据块:

  • 默认情况下不会在文件浏览器中显示。

  • 在大多数数据块选择菜单中隐藏。

  • 通常用于内部、临时或辅助数据。

此命名规则适用于标记通常不应由用户直接选择或编辑的实现细节。

隐藏的数据块可通过用户偏好设置显示:

即使隐藏在界面中,点前缀数据块在链接、使用计数和保存方面仍与其他数据块行为一致。

共享

数据块可以在其他数据块之间共享。

常见共享数据情形如下:

  • 材质之间共享贴图。

  • 物体(实例)间共享网格数据。

  • 物体间共享动画动作,比如让所有的灯光同时变暗。

数据块可以在文件之间共享,见关联库

生成单用户

在多个用户之间共享数据块时,可以通过单击其名称右侧的用户计数按钮为指定的用户生成数据块的副本。这会复制该数据块并将新创建的副本分配给这个用法。

Note

物体具有一组更高级的操作,可以成为单用户,请参阅其文档

删除数据块

生命周期中所述,当数据块不再使用时,通常会将其删除。它们也可以被手动 取消关联删除

取消关联数据块意味着其用户将不再使用它。这可以通过单击数据块名称旁边的 “X” 图标来实现。如果您取消与所有用户的关联数据块,则最终将被 Blender 删除,如上所述(除非它是受保护的)。

删除数据块将直接从 blend 文件中删除它,自动将其与所有用户断开连接。这可以通过在其名称旁边的 “X” 图标上点击 Shift-鼠标左键 来实现。

Warning

删除某些数据块可能会导致部分用户被删除,如果没有这些数据块这些用户将无效。常见的例子比如删除物体数据(如网格、曲线、摄像机……)也将删除使用它的所有物体。

这两种操作也可以在上下文菜单中使用 鼠标右键-单击 大纲视图 中的数据块。