数据块

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

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

Blender 文件的大纲视图。

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

通用特性:

  • 各种数据块是组成 .blend 文件的主要内容。
  • 可以互相关联,以便于重复利用和实例化(父/子、物体/物体数据,材质/图像,以及修改器和约束等方式)。
  • 对于同一个 .blend 文件中的给定的数据块类型,其名字是唯一的。
  • 允许添加、删除、修改和复制。
  • 数据块能在文件之间相互关联(仅限部分数据块)。
  • 可以有自己的动画数据。
  • 可以有 自定义属性

用户通常会与更高级别的数据类型(物体,网格等)进行交互。 在编辑复杂的项目时,管理数据块变得更加重要,尤其是在处理相互关联的 .blend 文件时。 主要编辑器是 大纲视图

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

生存期

每个数据块都有它的使用计数(引用计数),当引用计数大于一时,你可以在UI数据块名称右侧看到当前的用户计数。

Blender遵循常规的数据块处理规则,未被使用的数据最终会被移除。

在创作过程中添加和删除大量数据是很常见的事情,垃圾回收的好处在于无需手动管理每一个数据块。

当写入 .blend 文件的时候,这些零用户数据块将将不会被保存。

保护

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

你如果创建了一个 .blend 文件,作为供给其他文件关联的库文件,那么需要非常小心的确保这些数据不会在库文件中被删掉。

要保护数据块,请使用名称旁边带有盾牌图标的按钮。 Blender 永远不会偷偷删除数据块,但是如果需要的话你仍然可以手动删除。

共享

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

常见共享数据情形如下:

  • 材质之间共享贴图。
  • 物体(实例)间共享网格数据。
  • 物体间共享动画动作,比如让所有的灯光同时变暗。

还可以在文件间共享数据库,详见:

生成单用户

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

Note

物体可以通过一组更高级的操作成为单用户,请参阅 相关文档

删除数据块

正如 生存期 中所述,数据块通常在不再使用时被删除。

它们也可以手动 取消链接删除

取消链接数据块意味着其用户将不再使用它。 可以通过单击数据块名称旁边的“X”图标来实现。

如果取消数据块与其所有用户的链接,这个数据块最终将由 Blender 删除(除非它是受保护的)。

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

Warning

删除某些数据块可能会导致某些用户被删除,如果没有这些数据块这些用户将无效。 主要的例子是删除物体数据(如网格,曲线,相机……)也将删除使用它的所有物体。

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

数据块类型

../_images/files_data-blocks_id-types.png

数据块类型及其图标。

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

关联(Link):库关联,支持关联到其他 .blend 文件中。
打包(Pack):文件打包,文件内容能被打包进 .blend 文件 (不适用于没有引用文件的多数数据块)
类型关联(Link)打包(Pack)描述
动作(Action)
存储动画 F-曲线(F-Curve)。
用作动画数据,
and the Nonlinear Animation editor.
骨架(Armature)
带动网格形变的骨架。
用作骨架物体的数据,以及骨架修改器(Armature Modifier)。
笔刷(Brush)
用于绘制工具。
相机(Camera)
用于相机物体的数据。
缓存文件(Cache File)
用于网格缓存修改器。
曲线(Curve)
用作曲线,字体和曲面物体的数据。
字体(Font)
字体文件引用。
文本物体的曲线数据。
蜡笔(Grease Pencil)
Grease Pencil 物体使用的2D / 3D草图数据。
在3D视窗,图像、序列&影片剪辑编辑器中
叠加 帮助 信息。
集合(Collection)
把场景中的物体分组整理。
用于实例物体和库链接。
图像(Image)
图像文件。
用于着色节点和贴图。
形态键(Keys)(Shape Keys)
存储几何形状的形变信息,用于动画。
用于网格,曲线和晶格物体。
灯光(Light)
用作灯光物体的数据。
Library
对外部 .blend 文件的引用。
从大纲视图的 Blender文件 视图访问。
线条样式(Line Style)
用于 FreeStyle 渲染引擎。
晶格(Lattice)
基于网格的晶格变形。
用作晶格物体的数据,用于晶格修改器。
遮罩(Mask)
平面动画遮罩曲线。
用于合成节点与序列编辑器。
材质(Material)
设置阴影和纹理的渲染属性。
用于物体,网格与曲线。
融球(Metaball)
三维的等值曲面。
用于融球物体的数据。
网格(Mesh)
由顶点/边/面生成的几何体。
用于网格物体的数据。
影片剪辑(Movie Clip)
引用图片序列或视频文件。
用于 影片剪辑编辑器
节点树(Node Tree)
可复用的节点组。
用于节点编辑器。
物体(Object)
包含场景中位置,
缩放和旋转的实体。
被用于场景和集合。
绘制曲线(Paint Curve)
保存一个绘制或雕刻的笔划数据。
从绘图工具中访问。
调色板(Palette)
存储预设的颜色。
从绘图工具中访问。
粒子(Particle)
粒子设置。
用于粒子系统。
光照探头)Light Probe
帮助在Eevee中实现复杂的实时照明。
场景(Scene)
主要存储所有的显示和动画数据。
是物体和动画的最高存储单位。
声音(Sounds)
参考的声音文件。
用于扬声器物体数据。
扬声器(Speaker)
三维场景的发声源。
用于扬声器物体数据。
文本(Text)
文本数据.
用于 Python 脚本和 OSL shader。
贴图(Texture)
2D/3D 纹理。
用于笔刷和修改器。
窗口管理器(Window Manager)
Blender 所有 UI 的统一管理器。
包含工作区、通知系统、操作和键位映射。
世界(World)
定义全局渲染环境的设置项。
工作区(Workspace)
界面布局。
用于每个有自己的工作区的窗口。

自定义属性

../_images/files_data-blocks_add.png

自定义属性面板。

自定义属性是一种在 Blender 的数据块中存储你自己的数据的方法。 它可以用于绑定(其中骨骼和物体可以具有驱动其他属性的自定义属性)和包含 Blender 中不可用的新设置的 Python 脚本。

只有这些数据支持自定义属性:

你可以在 属性编辑器 最下面找到 自定义属性 面板,通过点击 添加 按钮来增加一个自定义属性。

编辑属性

用户界面

可以使用数据类型面板来编辑自定义属性。

../_images/files_data-blocks_edit.png

编辑自定义属性的弹框。

属性名

自定义属性的名字。

属性值

这里其实做了两件事:首先设置了自定义属性的当前值,第二,定义了属性的数据类型。

自定义属性可以是以下类型:整数,浮点数,字符串或布尔值。

各个数据类型的例子如下表所示:

整形:1, 2, 3, 4,
浮点型:3.141, 5.0, 6.125,
字符串:any text,
布尔型:True, False
矢量:[1, 2, 3], [1.0, 2.0, 3.0]

Note

布尔值的处理方式与整数非常相似,只有在最小值/最大值为整数并且相差不超过1时才有效。

在这一点上,布尔值仍然看起来像整数,但表现得像布尔值,其中有一个较低的值,关闭状态,一个较高的值,打开状态。

默认值

在使用重置为默认值操作时用到的属性的默认值。

Warning

默认值是 NLA blend 的基础,在关键帧的属性中无意义默认值(例如,用于缩放的属性为0)可能会出错。

最小值

自定义属性可以设置的最小值。

最大值

自定义属性可以设置的最大值。

../_images/files_data-blocks_edit_color.png

带alpha的色彩的自定义属性设置。

使用软限制

开启通过滑块调整 属性值 的限制,而无需以数字方式输入值。

  • Soft Min

    软限制的最小值。

    Soft Max

    软限制的最大值。

提示

允许你为你的自定义属性编写 提示

子类型

为矢量属性指定该属性包含的数据类型,这会影响其在 UI 上的显示方式。多数用于颜色属性。

Python 脚本访问

可以通过与 字典 类似的方式访问自定义属性,其中键值只能是字符串,而值只能是字符串,数字,数组或嵌套属性。

有关详细信息,请参阅 API文档