Blender动画节点插件用户指南-数据

Blender动画节点插件用户指南-数据
推荐:将 NSDT场景编辑器 加入你的3D开发工具链

数据

动画节点中的数据是类型化的,即套接字有特定的数据 可以通过颜色识别的类型。例如,蓝色 套接字表示 3D 矢量数据类型,黑色套接字表示 对象数据类型。如果尝试连接两个节点套接字, 除非它们具有相同的数据类型或源类型可以是隐式的 转换为目标类型,动画节点将不允许 连接。

所有数据类型都有对应的列表类型,列表数据类型有 插座颜色相同,但有些透明。例如,3D 矢量数据类型具有相应的 3D 矢量列表,可以独占 存储 3D 矢量。

image

组合矢量对象输入节点的输出为 3D 矢量和对象分别是创建矢量列表创建对象列表的输出是 3D 矢量列表和对象列表 分别请注意,列表套接字具有相同的颜色,但 透明。

隐式转换

某些数据类型可以隐式转换为其他数据类型,即 转换发生在套接字级别。因此,值得注意的是,一些 套接字接受多种数据类型。例如,可以 将整数、浮点数和布尔值连接在一起,因为所有这些都是 数字,可以隐式相互转换。

转换为数字时的布尔值是 if 和 if 。此外,转换为布尔值时的数字是 非零,如果为零。浮子在转换为 整数,所以成为和成为 .1True0FalseTrueFalse1.512.72

截至 ,唯一的隐式转换是在整数、浮点数之间 以及布尔值及其列表。v2.0

image

动态套接字

动态套接字是可以动态更改其类型的套接字,并且 在需要时自动。例如,“获取列表元素”节点 获取一个列表并返回其元素之一,即输入列表套接字 将其类型更改为您输入的列表和输出套接字的类型 将其类型更改为您输入的列表的元素类型。

大多数具有动态套接字的节点都允许手动更改类型。 高级节点设置中的运算符。

矢量化套接字

动画节点中的某些节点被称为“矢量化”。矢 量化 是节点对列表进行操作的能力,就像它可以操作一样 单个元素。

矢量化节点具有矢量化套接字,此类套接字从列表中更改 类型到他们的元素类型,反之亦然,根据您的输入。为 实例中,“解析数字”节点解析输入文本,如果我 输入文本列表 输入套接字将自动变成文本 列表。矢量化套接字与其数据类型具有相同的颜色,但 半透明。

矢量化套接字无法手动转换,与动态相反 插座。

数据复制

动画节点中的数据类型是可变的或不可变的, 可变意味着数据类型可以编辑/改变,不可变意味着它 不能。例如,列表是可变的,但整数和浮点数是可变的 不。为了理解区别,我们将查看两个节点,添加节点和删除列表元素节点,它们处理不可变和 分别是可变数据类型。

  • Add 节点采用输入数字,读取其值,添加该值 到另一个值,并返回加法结果。的价值 无论如何,输入都没有被更改/改变,节点只读取其 值,并且输出是包含结果的新的不同值 的补充。
  • “删除列表元素”节点采用输入列表,删除 元素,然后返回列表。输出列表相同 输入的列表,只是通过删除 元素。

可变对象引入了某些复杂性,例如,如果一个 添加了两个“删除列表元素”节点,其中一个节点删除了第一个节点 元素,另一个在查看结果时删除最后一个元素 在这两个节点中,我们发现两个输出列表都有其第一个和最后一个 元素被删除,这里发生了什么?由于输入列表是可变的, 一个节点通过删除第一个元素和另一个元素来编辑列表 通过删除最后一个元素来编辑同一列表,当一个查看两个元素时 输出列表,一个实际上是在查看编辑的同一列表, 因此结果。但是,如果想要两个版本的列表,一个带有 仅删除第一个元素,仅删除最后一个元素 删除?为了允许这一点,动画节点执行所谓的数据 复制。基本上,动画节点制作列表的多个副本,并且 为每个节点提供不同的副本,这样,每个节点的结果 彼此独立。在上述例子的情况下, 动画节点制作列表的两个副本,每个副本一个副本 节点,每个节点编辑自己的副本并返回它,而不会影响 其他。

动画节点在认为需要复制时会自动复制数据。 如果动画节点决定复制数据,则无法指示它 另一方面,对于某些节点,不是强制执行数据的选项 即使动画节点决定不复制也提供给用户, 这种控制只适用于子程序和数据的高级用途 编辑节点。强制数据复制的选项在支持它的节点的高级节点设置中提供。一般 如果多个数据使用,则动画节点决定复制数据 节点,但假设某个数据的复制状态,除非你 明确执行它是一种不好的做法。

允许强制数据复制的节点之一是循环 节点,在以下相当高级的用例中介绍了一个可能的用例 例。构造一个循环,以便它将浮点数附加到 初始空浮点列表参数,前提是满足条件 在每次迭代中。条件追加通过以下方式实现 有条件地将浮点列表参数重新分配给列表之后 附加。请注意,使用条件生成器可能不是 选项,因为在每次迭代时访问生成的列表可能是 需要。现在,考虑我们仅在以下情况下重新分配的情况 索引大于 2,如果迭代次数为 5,我们应该 期望浮点列表包含两个浮点数,但在查看它时,我们看到 它实际上包含五个元素,实现条件 重新分配将变得无效。为什么?

image

您会看到,“追加到列表”节点将浮点数追加/添加到 原始列表,因为循环输入节点在没有复制的情况下将其交给了它 (选择默认的无复制行为是为了获得性能优势), 随后,我们是否重新分配列表并不重要 因为原始数据已经被更改,并且在循环结束时, 所有浮点数都将被附加。对此的解决方案是指示 在处理数据之前复制数据的循环,这可以通过以下方式完成 为高级节点中的浮点列表参数启用复制 设置。启用它后,我们会看到预期的双元素输出浮点数 列表。

image

请注意,动画节点可能会在其上强制复制参数 如果需要,拥有。例如,通过将浮点列表参数连接到 任何其他节点,动画节点都认为需要复制数据和 即使禁用了复制选项,也强制执行它。

image

动画节点提供了通过着色可视化数据复制的功能 以红色复制数据的节点。此功能可以通过切换来启用 着色模式为“需要复制”。下面,我们展示了两个循环,一个 其中数据被复制为红色,另一个数据不是 复制。

image

泛型数据类型

动画节点具有一种称为泛型的特殊数据类型。这种类型可以 保存任何其他数据类型,包括列表以及其他通用数据。 此类型在存储列表列表时特别有用。为 例如,可以构造一个由多个组成的泛型列表 浮点列表,在本例中,泛型类型包含列表。使用数据 存储在任何节点的泛型类型中,它必须转换为 动画节点熟悉的适当类型,转换 可以使用“转换”节点完成。例如,如果我们想得到 列表的第一个浮点数列表中的第一个浮点数,我们首先得到 列表的第一个元素,将其转换为浮点列表并获取 首先从那里浮起。AA

image

转换节点将转换为任何其他数据类型,如果 可能。节点自动检测输入类型和更改 输出的类型相应地,如果您希望输出是另一个 键入,通过选中锁定按钮禁用自动检测,然后选择 通过按锁旁边的按钮手动键入。

转换器节点可以将结构相似的类型转换为每个 别人。例如,3D 矢量在结构上类似于欧拉 因为两者都由三个浮点数组成,所以它们的列表也是如此, 即 3D 矢量列表和欧拉列表。此外,三个浮动列表 元素可以转换为向量或欧拉和浮点数列表 四个元素可以转换为四元数或颜色,因为 四元数和颜色由四个浮点数组成。然而,这样的 转换比手动转换慢,在以下情况下应避免转换 性能是需要的。

image

一些节点能够自行执行转换,例如 将是表达式节点,它可以在其中将其输出转换为 如果启用了“正确类型”选项,则连接到的套接字类型。这 可以通过启用手动更改类型,类似于转换节点 固定数据类型选项并通过按 齿轮按钮。

通用列表在使用时不会被动画节点自动复制 对列表进行修改的节点。如果您计划使用泛型列表 输出 在多个位置,请确保根据需要手动复制列表。

场景

Blender中的某些数据和属性是按场景存储的,并且 因此,动画节点相对于其场景访问 属于。动画节点定义由 默认为访问场景数据的节点的场景。这个全球 可以在“动画节点树”面板中更改场景。例如 “帧信息”节点将场景作为输入,因为帧信息是 每场景属性,默认情况下使用全局场景,因为为场景输入启用了使用全局场景选项。使用另一个 场景,禁用使用全局场景选项并选择所需的 现场。

image

3D建模学习工作室翻译整理,转载请标明出处!

上一篇:Blender动画节点插件用户指南-接口 (mvrlink.com)

下一篇:Blender动画节点插件用户指南-执行 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号