数据块

The base unit for any Blender project is the data-block. Examples of data-blocks include: meshes, objects, materials, textures, node trees, scenes, texts, brushes, and even screens.

区分说明:骨骼(bones),序列片段(sequence strips) 和顶点组(vertex groups) 不是 数据块, 而是分别从属于骨架(armature),场景(scene) 和网格(mesh)类型。

通用特性:

  • 都是 .blend 文件的基础内容。
  • 可以互相关联。便于重复利用和实例化(父/子、对象/对象数据,以及修改器和约束等方式)。
  • 名称唯一。
  • 允许添加、删除、修改和复制。
  • 能在文件之间关联(仅限部分数据块)。
  • 可以有自己的动画数据。
  • 可以有 自定义属性

当处理很复杂的工程管理任务时,数据块管理就会变得更加重要,特别是 .blend 文件之间进行关联的时候。

../_images/data-system_data-blocks_view.png

数据块视图。

用户(垃圾回收)

最好先了解一下Blender如何处理数据块生命周期,何时与为何释放数据块。

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

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

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

一些时候,如果想要保存一个零用户数据块(通常是一些可供再用的资源库)。请看 伪用户

伪用户

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

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

只需要点击数据块名称旁边的 F 按钮,就可以给数据块添加一个 伪用户。这样就可以使该数据块的用户数永不为0:在关闭文件后也不会删除该数据块。(因为Blender无法追踪有多少其他文件关联了该数据块)。

多用户(共享)

多个数据块之间可以共享数据块。

常见共享数据情形如下:

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

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

数据独立

参考

Editor:3D View
Mode:Object Mode
Menu:Object ‣ Make Single User
Hotkey:U

使选择的或者所有物体数据块归属于一个新用户,也就是说,除了当前物体之外没有其他物体共享该数据块。

类型

该操作可作用于选中物体,或者场景中所有物体。

所有,被选择物体

数据块

允许用户除菜单预设选择外,可以操作单个类型的数据。

物体,物体数据,材质,贴图,物体动画

删除数据块

如同在 用户(垃圾回收) 中讲过的那样。 数据块通常会在其不被使用后被删除。

但是,也有例外的时候:

这些数据块可以直接删除:场景, 文本,群组和屏幕。

其他数据块,比如组和动作,可以在 大纲编辑器 的上下文按钮中 取消关联

Tip

一些数据(特别是图像)是难于追踪的,尤其是图像视图也算作用户。

For data-blocks that can be unlinked hold Shift, while pressing on the X button. This force clears the user count, so the data-block will be removed on reloading.

数据块类型

../_images/data-system_data-blocks_id-types.png

数据块类型及其图标。

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

关联(Link):库关联,支持关联到其他blend 文件中。
打包(Pack):文件打包,文件内容能被打包进 blend 文件 (不适用于没有引用文件的多数数据块)
类型 关联(Link) 打包(Pack) 描述
动作(Action)
存储动画函数曲线(F-Curve)。
用作动画数据,
以及非线性编辑。
骨架(Armature)
带动网格形变的骨架。
用作物体数据 & 骨架修改器(Armature Modifier)使用的数据。
笔刷(Brush)
用于绘制工具。
相机(Camera)
用作物体数据。
曲线(Curve)
用于相机,文字以及曲面物体。
字体(Font)
字体文件引用。
用于字体物体数据。
蜡笔(GreasePencil)
2D/3D 素描数据。
在3D视窗,图像、序列&影片剪辑编辑器中
叠加 帮助 信息。
组(Group)
物体的引用。
Used by dupli-groups & often library linking.
图像(Image)
图像文件。
用于贴图 & 着色器节点。
灯(Lamp)
用作对象数据。
晶格(Lattice)
基于网格的晶格变形。
用作物体数据,用于晶格修改器。
库(Library)
对外部``.blend``文件引用。
从大纲视图的 Blender文件 视图访问。
线条样式(LineStyle)
Used by the FreeStyle renderer.
遮罩(Mask)
平面动画遮罩曲线。
用于合成节点与序列编辑器。
材质(Material)
设置阴影和纹理的渲染属性。
用于物件,网格与曲线。
网格(Mesh)
几何形状(顶点/边/面)。
用作对象数据。
融球(MetaBall)
三维的等值曲面。
用作对象数据。
影片剪辑(MovieClip)
引用图片序列或视频文件。
Used in the Movie Clip editor.
节点组(NodeGroup)
复用节点组合。
用于节点编辑器。
物体(Object)
包含场景中位置,
缩放和旋转的实体。
被用于场景和组。
粒子(Particle)
粒子设置。
用于粒子系统。
调色板(Palette)
存储预设的颜色。
从绘图工具中访问。
场景(Scene)
主要存储所有的显示和动画数据。
是物体和动画的最高存储单位。
屏幕(Screen)
屏幕布局。
用于每个有自己屏幕的窗口。
形变关键帧(ShapeKeys)
存储几何形状的形变信息,用于动画。
用于网格,曲线和晶格物体。
声音(Sounds)
引用声音文件。
用于扬声器物件和游戏引擎。
扬声器(Speaker)
三维场景的发声源。
用作对象数据。
文本(Text)
文本数据.
用于 Python 脚本和 OSL shader。
纹理(Texture)
2D/3D 纹理。
用于材质,世界和笔刷。
世界(World)
用于场景的环境渲染设置。
窗口管理器
所有Blender UI的总体管理器,包含屏幕、通知系统、operator和键盘映射。