在 IK 系统上应用父约束
 
 
 

若要对货柜设置动画以使其由机械臂拾起,需要一种方法来将货柜约束到机械臂,以使其在动画中的特定时间随臂一起移动。使用父约束可以实现这一点。

将父约束应用于对象时,受约束对象的行为就像它是约束对象的子节点一样。

可以对一个对象应用多个约束。通过修改父约束的权重属性可以更改每个约束对对象产生的影响。权重属性是可设置动画的参数,并可以在特定帧设定为启用或禁用。

在本课程中,货柜被同时约束到地板上的 ArmControl 和 Platform。通过为这两个父约束的权重属性设置动画,货柜将从一个位置移至另一个位置,具体取决于在动画中的特定时间哪个约束会影响它。

若要设置父约束,需要在影响将开始或结束的位置定位受约束对象,然后设定父约束。

为货柜设定父约束

  1. 在侧视图菜单中,选择“明暗处理 > 对所有项目进行平滑明暗处理”(Shading > Smooth Shade All)
  2. 在侧视图菜单中,选择“面板 > 透视 > 透视”(Panels > Perspective > persp)
  3. “Hypergraph”中,选择 ArmControl。
  4. “通道盒”(Channel Box)中,按如下所示设定“平移 Y”(Translate Y)和“平移 Z”值:
    • 平移 Y(Translate Y):-9
    • 平移 Z(Translate Z):0

手臂将重新定位,以使货物磁体在货柜的正上方,如下所示。根据需要平移、翻滚或推拉视图,以便可以没有遮挡地看到机械臂。

  1. “Hypergraph”中,在 ArmControl 仍处于选中状态的情况下,按住 Shift 键选择 CargoBox 节点。

    在应用约束时选择的顺序很重要。必须首先选择约束对象,然后选择要约束的项目。

  2. 在主菜单中,选择“约束 > 父对象”(Constrain > Parent)>
  3. “父约束选项”(Parent Constraint Options)窗口中,执行下列操作:
    • 选择“编辑 > 重置设置”(Edit > Reset Settings)将该工具设定为其默认设置。
    • 单击“添加”(Add)按钮。

    CargoBox 将约束到 ControlArm。已在 Hypergraph 中的 CargoBox 节点下方创建一个新约束节点。如果重新定位机械臂,CargoBox 也会随之移动,因为现在应用了约束。

  4. “Hypergraph”中,仅选择 SwivelBase。
  5. “通道盒”(Channel Box)中,按如下所示设定 SwivelBase 的“旋转 Y”(Rotate Y)值:
    • 旋转 Y(Rotate Y):-100

    机械臂和货柜的位置如下所示。

  6. “Hypergraph”中,选择“Platform”,然后按住 Shift 键选择 CargoBox 节点。
  7. 在主菜单中,选择“约束 > 父对象”(Constrain > Parent)

    CargoBox 将约束到“Platform”。这是 CargoBox 的第二个约束。

  8. “Hypergraph”中,仅选择 CargoBox。
  9. “通道盒”(Channel Box)中,查看 CargoBox 的父约束。

    CargoBox 应用了两个父约束:“Arm Control”“Platform”。在“通道盒”(Channel Box)中,“ArmControl W0”“Platform W1”旁边的数字设置表示每个父约束对 CargoBox 的影响权重。在该点,每个影响权重设定为值 1。如果移动机械臂,货柜将移至其第一个位置和第二个位置之间的某个位置。之所以会发生这种情况,是因为每个约束在该点对货柜具有相等影响。

在对场景中的对象设置动画之前,还需要重置每个约束的默认权重值,以使一个父约束对 CargoBox 具有完全影响,而另一个则没有影响。。

设定父约束的权重

  1. “Hypergraph”中,仅选择 CargoBox。
  2. “通道盒”(Channel Box)中,设定下列内容:
    • “Platform W1”:0
  3. 仅选择 SwivelBase。
  4. “通道盒”(Channel Box)中,将“旋转 Y”(Rotate Y)值设定为 0。

    机械臂和货柜将往回旋转。

  5. “Hypergraph”中,仅选择 CargoBox。
  6. 在主菜单中,选择“约束 > 设置静止位置”(Constrain > Set Rest Position)

    为 CargoBox 设定静止位置会在没有对货柜施加约束时为其设定位置。如果未设定静止位置,CargoBox 将重新定位到第二个约束位置。

  7. “通道盒”(Channel Box)中,设定下列内容:
    • “ArmControl W0”:0

    此时,两个父约束均设定为对货柜没有影响,因为其权重属性设定为零。在对场景中的组件设置动画时,将设定父约束的权重属性并对这些属性设定关键帧,具体取决于需要哪个约束对象(Arm 还是 Platform)具有完整影响。

在接下来的步骤中,将计划 IK 系统的动画的操作。