物体父子关系

为复杂的物体(例如手表)建模时,可以选择将不同的零件建模为单独的物体。要使所有零件像一个整体(手表)移动,可以指定一个物体为其他零件的 父级。其他零件则为该物体的 子级,父级的任何平移、旋转、缩放,都将影响其子级。

与大多数生物生命形式相反,在Blender中的每个物体或骨骼,最多只能有一个父级。如果一个物体已经有一个父级物体,给它另外一个父级,则Blender将移除之前的父级关系。在本章中使用 父级层级 时,它指父级的层次结构,即物体的父级、祖父级、曾祖父级等等。

创建父级

参考

模式

物体模式

菜单

物体(Object) ‣ 父级(Parent)

快捷键

Ctrl-P

要为物体设置父级,请至少选择两个物体(先选择子物体,最后选择父物体),然后按 Ctrl-P 。将弹出 设置父级目标 菜单,允许从几种可选的不同的父子类型中选择一种。选择 设置父级目标 中的一个条目进行确认,将创建父/子关系。所选物体将它们的父级设置为 活动物体,其他物体将互为兄弟。

弹出的 设定父级目标 菜单是上下文相关的菜单,这意味着它显示的条目的数量,将根据使用 Ctrl-P 快捷方式时,选择的物体不同而不同。

移动、旋转或缩放父级,通常也将变换子级。而变换子级却不影响父级。换言之,影响的方向是从父级到子级,而非子级到父级。

Tip

可以使用 原点清除 ,将一子级物体移到父级处。

类型

Blender支持多种不同类型的父子关系。除了给所选物体设置父子关系之外,某些类型还为子级物体添加了一个修改器或约束,并将父级作为目标物体或激活父级属性,例如 跟随路径

保持变换

该物体的当前世界变换(即其在世界中的绝对位置、旋转和缩放)将被计算。新的父级设置时,父级反校正 矩阵将被计算,因此在设置完新父级后,该物体仍保持其之前的世界变换。

Hint

使用大纲视图

另一种查看组内父子关系的方式是,使用 大纲编辑器大纲 视图。

父级反校正

Blender可以在不移动子级物体的情况下,指定一个父级。这通过一个隐藏的称为 父级反校正 矩阵的矩阵实现,该矩阵存在于父级和和子级的 变换 之间。

当使用 Ctrl-P 设置物体父子级关系时,父级反校正矩阵将被更新。取决于设置父级关系菜单的选择,物体的局部位置、旋转、和缩放也将更新。有关更多,见 物体父级

也可以用 清除父级反校正 来清除父级反校正矩阵。

Note

当通过物体属性编辑器面板设置父级关系时,父级反校正矩阵总被重置。这将导致物体的位置会有意料之外的跳动。为避免这样,请使用 Ctrl-P 来设置新的父级关系。

物体父级

物体父级 是Blender支持的最一般的父级关系形式。得到选中物体,会将 活动物体 设置为所有所选物体的父级物体。每个子级物体将继承自父级物体的变换。父级物体可以是任何类型。

If the object has a pre-existing parent, that is cleared first. This moves the object to its own location, rotation and scale, without its parent's influence.

有3种操作可以设置一个物体父子关系。因计算 父级反校正矩阵 和物体的局部 Transform 的方式不同而不同。

示例:物体(保持变换)父级

保持变换物体父级 ,将保持任何之前的父级物体应用给物体的变换。

假设有一个由三个物体组成的场景,它们是名为 "EmptyA"和 "EmptyB"的两个空物体,以及一个猴头物体。图 没有父子关系的场景。 显示了三个没有父子关系的物体。

../../../_images/scene-layout_object_editing_parent_keep-transform-a.png

没有父子关系的场景。

如果 LMB 点击选择猴头物体,然后 Shift-LMB 点击 "EmptyA"物体,接着按 Ctrl-P,最后从 设置父级目标 弹出菜单中选择 物体。这将导致 "EmptyA"物体将成为猴头物体的父级物体。仅选择 "EmptyA"时,旋转/缩放/移动,将导致猴头物体将相应变动。

缩放 "EmptyA"物体,使猴头变小并向左移动一点。

../../../_images/scene-layout_object_editing_parent_keep-transform-b.png

猴头是 "EmptyA"的子级物体。

如果通过 LMB 点击仅选择猴头物体,然后 Shift-LMB 点击 "EmptyB"物体并按下 Ctrl-P,从弹出的 设定父级目标 菜单选择 物体。这将导致 "EmptyB"物体成为猴头物体的父级物体。请注意,当你改变猴头的父级时,猴头的比例发生了变化(变回原来大小)。

../../../_images/scene-layout_object_editing_parent_keep-transform-c.png

猴头是 "EmptyB"的子级物体。

发生这种情况是因为猴头物体从来没有直接改变其缩放,之所以变化是因为它是 "EmptyA"的子级物体,跟随其缩放发生了变化。由于 "EmptyB"没有改变其缩放,因此将猴头的父级更改为 "EmptyB"导致这些间接的缩放变化被移除。

这通常是必需的行为,但是如果更改父级物体,而 子级物体 会保留从原父级物体获得的任何先前变换也很有用。相反,如果将猴头的父级物体从 "EmptyA"更改为 "EmptyB",若选择了父子类型 物体 并启用的 保持变换,那么当猴头被分配给新的父级 "EmptyB"时,猴头将保留其从原父级 "EmptyA"获取的缩放信息。

../../../_images/scene-layout_object_editing_parent_keep-transform-d.png

物体父级使用 保持变换

如果想继续了解上面的描述,这是相关blend文件:

File:Parent_-_Object_(Keep_Transform)_(Demo_File).blend.

骨骼父级

骨骼父子关系允许将骨架上的某些骨骼设为另一个物体的父级物体。这意味着,当变换一个骨架时,子物体只会跟随着特定的骨骼移动。

../../../_images/scene-layout_object_editing_parent_bone1.png

有四个骨骼的骨架的三个图片。

In Fig. 有四个骨骼的骨架的三个图片。 with the 2nd bone being the bone parent of the child object cube. The cube is only transformed if the 1st or 2nd bones are. Notice altering the 3rd and 4th bones has no effect on the cone.

要使用骨骼父子关系,必须先选择希望指向特定父级骨骼的所有子物体,然后 Shift-LMB 选择骨架物体,并将其切换到姿势模式,然后 LMB 选择希望成为父级骨骼的特定骨骼。完成后按 Ctrl-P ,并在 设定父级目标 弹出菜单中选择骨骼。

现在在姿态模式下变换骨骼会导致子物体也会发生变换。

相对父子关系

骨骼相对父子关系是你可以为每个骨骼切换的选项。这和骨骼父子一样,但有一点不同。

使用骨骼父级时,如果将骨骼作为某些子物体的父级并选择该骨骼,然后将其切换为编辑模式并移动该骨骼,当在该骨骼上切换回姿态模式时,作为该骨骼的子物体将在姿态模式中吸附回骨骼的位置。

../../../_images/scene-layout_object_editing_parent_bone2.png

具有子级立方体物体的单个骨架骨骼,立方体使用骨骼父级设置父级为该骨骼。

在图 具有子级立方体物体的单个骨架骨骼,立方体使用骨骼父级设置父级为该骨骼。 中,第一张图片显示骨骼在编辑模式下移动之前立方体和骨架的位置。第二张照片显示了在编辑模式中选择骨骼,移动并切换回姿势模式后立方体和骨架的位置。注意,子级物体移动到姿态骨骼的新位置。

骨骼相对父子关系的工作方式则不同:如果在编辑模式下移动父级骨骼,当切换回姿势模式时,子物体将不会移动到姿势骨骼的新位置。

../../../_images/scene-layout_object_editing_parent_bone3.png

立方体使用相对父子链接到单一骨骼。

在图 立方体使用相对父子链接到单一骨骼。 中,第一张图片显示骨骼在编辑模式下移动之前立方体和骨架的位置。第二张照片显示了在编辑模式中选择骨骼后,移动并切换回姿势模式后立方体和骨架的位置。请注意,子物体不会移动到姿势骨骼的新位置。

Note

当使用 Ctrl-P 来设置父级时,选择 骨骼相对骨骼 将分别清除和设置骨骼的 相对父子关系 选项。由于 相对父子关系 是每个骨骼设置的选项,这会同时影响该骨骼的所有子物体。

顶点父级

对于曲线、曲面、网格和晶格类型的物体,可以将其顶点或点用作其他物体的父级。你可以将一个物体设置父级到一个顶点或一组的三个顶点,这样,当父网格变形时,子级将会随之移动。

来自编辑模式的顶点父级

物体模式 中,选择子级,然后选择父级物体。 Tab 切换到 编辑模式 并在父物体上选择一个定义单个点的顶点,或者选择三个顶点定义一个区域(三个顶点不必形成一个完整的面;它们可以是父物体的任意三个顶点),然后按下 Ctrl-P 并确认。

此时,如果选择了单个顶点,则将从顶点向子级绘制关系/父子线。如果选择了三个顶点,则从(父级物体的)三个点的平均中心向子级绘制关系/父子线。现在,当父级网格形变并且所选父顶点移动时,子级也将移动。

来自物体模式的顶点父级

可以在物体模式下执行顶点父级,方法类似普通物体父级。在物体模式中按 Ctrl-P 并选择 顶点顶点(基于三点)

将从每个物体使用最近的顶点,这通常也是您想要的。

顶点父级示例。
../../../_images/scene-layout_object_editing_parent_object-mode-example-1.png

使用设置父级上下文菜单中的 "顶点(基于三点)",每个小立方体都可以自动设置父级为棱角球上附近顶点三元组。

../../../_images/scene-layout_object_editing_parent_object-mode-example-2.png

在编辑模式下重新塑造物体,意味着每个立方体都分别跟随其顶点父级变换。

../../../_images/scene-layout_object_editing_parent_object-mode-example-3.png

在物体模式下缩放父级棱角球,意味着子级立方体也按预期缩放。

设定父级上下文菜单项意味着用户可以快速设置大量顶点父级关系,并避免单独建立每个父——子顶点关系的繁琐工作。

Note

它实际上是一种 "反转" 的 钩挂

不使用反转方式建立父子关系

参考

模式

物体模式

菜单

物体(Object) ‣ 父级(Parent) ‣ 无反校正建立父级关系(Make Parent without Inverse)

这将设置父子关系,然后重置 父级反校正 矩阵和物体的局部位置。结果,该物体将移到父级的位置,但保持其旋转和缩放。

清空父级

参考

模式

物体模式

菜单

物体(Object) ‣ 父级(Parent)

快捷键

Alt-P

你可以通过 Alt-P 方式 删除 父级 - 子级关系。

清空父级

如果只选择组中的父级,则不做任何事情。如果选择了一个子级或多个子级,他们就会与父级分离,或者被释放,并且他们会返回他们原来的位置,旋转和大小。

清除并保持变换结果

从父级那里解散子级,但 保留 父级给他们的位置、旋转和大小。

参见 非均匀缩放 可能适用于这里。

清除父级反校正

与剔除父子层级关系不同,此选项是从选择的物体中清理掉 父级反校正 矩阵。有了这个清空的矩阵,子物体的位置、旋转、缩放属性可以在父物体的世界坐标里表现。

已知局限

非均匀缩放

与其子级相比,父级的缩放和旋转不均匀可能会导致 剪切 效应。

虽然父子关系支持这种做法,但是当父级被清除后,剪切将会丢失,因为它不能用位置,缩放和旋转。

如果 清除并保持变换结果 移动了物体,则非均匀缩放是最可能的原因。