若要对货柜设置动画以使其由机械臂拾起,需要一种方法来将货柜约束到机械臂,以使其在动画中的特定时间随臂一起移动。使用父约束可以实现这一点。
将父约束应用于对象时,受约束对象的行为就像它是约束对象的子节点一样。
可以对一个对象应用多个约束。通过修改父约束的权重属性可以更改每个约束对对象产生的影响。权重属性是可设置动画的参数,并可以在特定帧设定为启用或禁用。
在本课程中,货柜被同时约束到地板上的 ArmControl 和 Platform。通过为这两个父约束的权重属性设置动画,货柜将从一个位置移至另一个位置,具体取决于在动画中的特定时间哪个约束会影响它。
若要设置父约束,需要在影响将开始或结束的位置定位受约束对象,然后设定父约束。
手臂将重新定位,以使货物磁体在货柜的正上方,如下所示。根据需要平移、翻滚或推拉视图,以便可以没有遮挡地看到机械臂。
CargoBox 将约束到 ControlArm。已在 Hypergraph 中的 CargoBox 节点下方创建一个新约束节点。如果重新定位机械臂,CargoBox 也会随之移动,因为现在应用了约束。
CargoBox 应用了两个父约束:“Arm Control”和“Platform”。在“通道盒”(Channel Box)中,“ArmControl W0”和“Platform W1”旁边的数字设置表示每个父约束对 CargoBox 的影响权重。在该点,每个影响权重设定为值 1。如果移动机械臂,货柜将移至其第一个位置和第二个位置之间的某个位置。之所以会发生这种情况,是因为每个约束在该点对货柜具有相等影响。
在对场景中的对象设置动画之前,还需要重置每个约束的默认权重值,以使一个父约束对 CargoBox 具有完全影响,而另一个则没有影响。。
为 CargoBox 设定静止位置会在没有对货柜施加约束时为其设定位置。如果未设定静止位置,CargoBox 将重新定位到第二个约束位置。
此时,两个父约束均设定为对货柜没有影响,因为其权重属性设定为零。在对场景中的组件设置动画时,将设定父约束的权重属性并对这些属性设定关键帧,具体取决于需要哪个约束对象(Arm 还是 Platform)具有完整影响。