约束是通过使用数值 (如 限制位置约束), 或者目标对象(如 复制位置约束)来控制物体属性(例如其位置、旋转、缩放)的方法。 它的主要用途在动画项目中,当然,在静态项目中也有用。

  • 通过其约束引用的目标可以间接控制物体的动画(这是间接动画的一种形式)。实际上,目标对象可以控制约束的物体属性,因此,目标对象将间接地带动物体的动作。
  • 可以调整约束里的数值,如滑动 Influence影响 ,或者在使用骨架的骨骼作为目标时,滑动沿着该骨骼(根部和尖端之间)分布的位置。

约束可以使网球运动员眼睛跟踪网球弹跳地穿过球场、可以让一辆巴士所有车轮一起旋转,也可以帮助一只恐龙的腿抬高时膝盖处自动弯曲,或者轻松地让手握住剑柄并挥动剑。 在Blender里,约束作用于 对象骨骼 。在 骨架章节 阅读约束在绑定中的使用。 2022-04-15_145555.png 约束可以相互组合,形成一个约束堆栈。

跟踪约束

  • Clamp To Constraint 钳制到约束
    • 轴向限定(Clamp To) 约束将一个对象限定到曲线上。轴向限定(Clamp To) 约束和跟随路径( Follow Path )约束非常类似。但不是使用目标曲线计算时间,轴向限定(Clamp To) 获得其自身的实际位置属性(在 变换 属性面板中显示,N),并判断沿着目标曲线在哪里“映射”这个位置。
    • One benefit is that when you are working with Clamp To, it is easier to see what your owner will be doing; since you are working in the 3D Viewport, it will just be a lot more precise than sliding keys around on an F-curve and playing the animation over and over.
    • 缺点是,不像跟随路径( Follow Path ) 轴向限定(Clamp To) 没有任何选项来约束对象沿得曲线旋转自己,但不是每次场合都会需要旋转,所以在这样的情况下通常是 轴向限定(Clamp To) 更通常很多更加得心应手,来得到你需要一些其他的方式得到的旋转。
    • 从物体的原始位置到曲线上它的位置的映射不是完美的,而是使用下面的简化算法:
      • 选择”主轴”,用户或曲线的边界框的长轴(默认值)。
      • 物体的位置相比曲线的边界框在主轴方向。例如,如果X是主轴,物体与曲线边界框的左边对齐,结果是0;如果它与右边对齐,结果是1。
      • 如果未选中循环(cyclic)选项,则该值将被限定在0-1范围内。
      • 这个数字被用来作为曲线的时间,为物体被限定到沿曲线找到最终的位置的时间。
    • 该算法不完全产生所需的准确结果,因为曲线时间不准确地映射到主轴位置。例如一个物体直接在曲线的中心将固定到 0.5 曲线时间而不管曲线的形状,因为它是沿着曲线的边界框。然而,0.5曲线的时间位置实际上可以在任何边界框内!
  • Damped Track Constraint 阻尼跟踪约束
    • Damped Track Constraint 阻尼跟随约束 自身的一个本地(局部)轴总是指向 目标。该约束使用一个纯粹的 摇摆 旋转,亦即最短可能单轴旋转。在其他 3D 软件中你可以找到它名称为”Look at(关注)”约束。
    • Although usually associated with bones, Damped Track can align objects to point to (and follow) other objects or bones. It is important to note that the constraint aligns the origin’s axes to point to the target’s origin point. This is illustrated in the following figure. In each case the objects are set as Damped Track to +X.
  • Locked Track Constraint 锁定跟踪约束
    • 锁定跟踪 约束很难用图形和文字解释清楚。基本上,它是标准跟踪约束(Track To constraint)的基础上多了一个锁定轴,即一个轴不能旋转(改变其方向)。因此,其自身只可以通过绕此轴旋转跟踪它的目标,除非目标是在垂直于锁定的轴平面,并和自身相交,否则这个自身不能真正指向它的目标。
    • 让我们采用最好的现实世界:指南针。 它可以旋转到指向其目标的大致方向(磁北,或相邻的磁铁),但它不能 直接指向它,因为它像车轴一样旋转。 如果指南针坐在桌子上并且正上方有磁铁,指南针就不能指向它。 如果我们将磁铁更多地移动到罗盘的一侧,它仍然不能指向目标,但是它可以指向目标的大致方向,并且仍然遵守其对轴的限制。
    • 当使用 锁定跟踪 约束时,可以将目标当作磁铁,自身作为指南针。 锁定 轴将起作用,就像自身围绕轴旋转, To(至) 轴起作用就像指南针的针。哪个轴做什么取决于你自己!
    • If you have trouble understanding the buttons of this constraint, read the tooltips, they are pretty good. If you do not know where your object’s axes are, enable Axis in Properties ‣ Armature ‣ Viewport Display. Or, if you are working with bones, turn on the Axes in the armature’s Viewport Display panel.
    • 这个约束被设计为和 Track To(标准跟踪) 约束一起工作的。如果你为这2个约束设置正确的轴按钮, Track To(标准跟踪) 可用于指向轴的主要目标, Locked Track(锁定跟踪) 自身围绕次要目标旋转。
    • 这种约束也非常适用于2D广告。
  • Track To Constraint 标准跟踪约束

    • 标准跟踪 约束应用旋转给它自身,因此,它总是一个给定的“至(To)”轴指向着其目标,与另一个“向上(Up)”轴永久尽可能多地保持与全球Z轴对齐(默认情况下)。这种跟踪类似于在3D的“公告牌跟踪”(见下文)。
    • 这是首选的跟踪约束,因为它有一个更容易控制的约束机制。
    • 与这种约束在某些方面关系密切的是 反向运动学 constraint

      Billboard tracking 公告牌跟踪 术语 “公告牌” 在实时CG 编程(即视频游戏)有着特定的含义,是指用于平面物体总是面向摄像机 (它们事实上是”追踪者(trackers)”,摄像机是它们的”目标”) 。其主要用途是用作树或雾纹理支持︰ 如果它们不永久面向摄像机 ,你会经常看到树挤压到什么都看不到,或雾纹理像变成粘贴的砌糊状,这显得有趣但却不那么真实了。

  • Stretch To Constraint 拉伸至约束

    • 拉伸至 约束使其自身朝向其目标旋转和缩放其Y轴。因此它具有和标准跟随约束( Track To constraint)相同的跟随行为。然而,它假定Y轴将是跟踪和拉伸轴,并没有给你选择使用一个不同的轴的选项。
    • 它也可以选择一些原始的体积特征,因此所以当目标越靠近时,自身就越受到挤压,当目标远离时,越厚。但请注意,它不是自身因此被保存的实际体积,而是虚拟的定义其缩放值。因此,这个功能甚至工作于非体积的对象,如空物体,二维网格或表面,和曲线。
    • 对于骨骼,“体积变化(volumetric variation)”就沿着它们自己的局部轴(记住骨头的局部Y轴与它对齐,从根部到顶端)。
  • 反向运动学约束
    • 反向运动学(IK) 约束实现 反向运动学(IK) 骨骼姿态技术。因此,它仅仅适用于骨骼。在姿势模式下,选择一根骨骼,按 **Shift-I**,用一个目标(target)快速创建一个IK约束。(也可以直接按**ctrl+shift+c** 添加ik约束,会自动歘链接一个空物体的控制器)
    • 此约束的完整文档在rigging章节 反向运动学 页部分。
    • NOTE
      • IK约束是很特殊的约束,因为它们修改了多个骨骼。 出于这个原因,他们忽略了他们在堆栈中的位置,并且总是在受影响的骨骼上的所有其他约束之后运行。 要在IK之后应用约束,必须首先将最终转换复制到新的骨骼链,例如, 使用 复制形变约束.
    • 目标
      • 骨骼链末端指向的目标
    • 极向目标
      • 骨骼链弯曲部分倾斜指向的目标方位

2022-04-15_184249.png

  • Spline IK Constraint 样条线IK约束
    • Spline IK(样条线IK) 是约束一条骨骼链沿曲线对齐。通过利用曲线的易用性和灵活性实现了美观形状和为骨骼提供可预测性以及良好的综合控制,Spline IK(样条线IK)是绑定工具箱中非常宝贵的工具。它特别适用于绑定柔软的身体部位,如尾巴,触手和脊椎,以及无机物品如绳索。
    • 建立样条线IK,它必须有一个连接的骨骼链和曲线来约束这些骨骼:
      • With the last bone in the chain selected, add a Spline IK constraint from the Bone Constraints tab in the Properties.
      • 设置 ‘Chain Length(链长)’ 设置链的骨骼应受到曲线的影响数量(从包括选择的骨骼和开始骨骼)。
      • 最后,将 目标 设定为控制的曲线。
    • NOTE
      • IK约束是很特殊的约束,因为它们修改了多个骨骼。 出于这个原因,他们忽略了他们在堆栈中的位置,并且总是在受影响的骨骼上的所有其他约束之后运行。 要在IK之后应用约束,必须首先将最终转换复制到新的骨骼链,例如, 使用 复制形变约束.
    • 一个不错的例子
      • 在使用样条线IK约束控制骨骼和物体的时候,为了更方便的再姿态模式控制物体,可以将曲线的控制点通过挂钩修改器,挂在新建出来的一些控制骨骼上面,这样会非常方便。
      • 操作
        • 首先在物体上创建一条骨骼链,软体的话最好使用软骨骼,然后在骨链上和头尾根据需求创建一些活动骨骼(这些将通过控制曲线的控制点充当骨链的控制器)。
        • 在骨骼链位置创建曲线,曲线的控制点分别位于第一步创建的活动骨骼位置
        • 然后将控制点按照对应位置分别使用挂钩修改器,挂在对应的活动骨骼上面。
      • 例子

2022-04-15_190758.png2022-04-15_190357.png2022-04-15_190853.png