数据块

任何Blender项目的基本单元都是数据块。例如:网格(meshes)、物体(objects)、材质(materials)、纹理(textures)、节点树(node-trees)、场景(scenes)、文本(texts)、笔刷(brushes) ,甚至是屏幕(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无法追踪有多少其他文件关联了该数据块)。

多用户(共享)

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

常见共享数据情形如下:

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

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

数据独立

参考

编辑器:3D视图
模式:物体模式
菜单:物体‣ 使其独立化
快捷键:U

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

类型

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

所有,被选择物体

数据块

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

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

删除数据块

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

但是,也有例外的时候:

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

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

Tip

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

这些数据可以同时按下 ShiftX 按钮强制清除用户数,这样重载后数据块会被直接删除。

数据块类型

../_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)
物体的引用。
用于副本组 & 常用于库关联。
图像(Image)
图像文件。
用于贴图 & 着色器节点。
灯(Lamp)
用作对象数据。
晶格(Lattice)
基于网格的晶格变形。
用作物体数据,用于晶格修改器。
库(Library)
对外部``.blend``文件引用。
从大纲视图的 Blender文件 视图访问。
线条样式(LineStyle)
用于FreeStyle 渲染引擎。
遮罩(Mask)
平面动画遮罩曲线。
用于合成节点与序列编辑器。
材质(Material)
设置阴影和纹理的渲染属性。
用于物件,网格与曲线。
网格(Mesh)
几何形状(顶点/边/面)。
用作对象数据。
融球(MetaBall)
三维的等值曲面。
用作对象数据。
影片剪辑(MovieClip)
引用图片序列或视频文件。
用于影片剪辑编辑器。
节点组(NodeGroup)
复用节点组合。
用于节点编辑器。
物体(Object)
包含场景中位置,
缩放和旋转的实体。
被用于场景和组。
粒子(Particle)
粒子设置。
用于粒子系统。
调色板(Palette)
存储预设的颜色。
从绘图工具中访问。
场景(Scene)
主要存储所有的显示和动画数据。
是物体和动画的最高存储单位。
屏幕(Screen)
屏幕布局。
用于每个有自己屏幕的窗口。
形变关键帧(ShapeKeys)
存储几何形状的形变信息,用于动画。
用于网格,曲线和晶格物体。
声音(Sounds)
引用声音文件。
用于扬声器物件和游戏引擎。
扬声器(Speaker)
三维场景的发声源。
用作对象数据。
文本(Text)
文本数据.
用于 Python 脚本和 OSL shader。
纹理(Texture)
2D/3D 纹理。
用于材质,世界和笔刷。
世界(World)
用于场景的环境渲染设置。
窗口管理器
所有Blender UI的总体管理器,包含屏幕、通知系统、operator和键盘映射。