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

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

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

变换约束

  • Copy Location Constraint 复制位置约束
    • 复制位置 约束强制约束对象和目标位置相同。
  • Copy Rotation Constraint 复制旋转约束
    • 复制旋转 约束强制约束对象匹配目标旋转。
    • 混合
      • 如何混合约束的旋转和自己现有的旋转。
      • 替换
        • 新的旋转值直接替换现有的值。
      • 相加
        • 新的旋转值与现有的值相加。
      • Before Original 初始前(在现有形变之前)
        • 新旋转添加在现有旋转之前,就好像它应用于约束所有者的父级一样。
      • After Original 初始后(在现有形变之后)
        • 新的旋转添加在现有旋转之后,就好像它应用于约束所有者的子级一样。
      • 偏移(旧版)
        • 将和旧版“希望”在初衷与原来的行为一样
  • Copy Scale Constraint 复制缩放约束
    • 复制缩放(Copy Rotation)约束强制约束对象获得目标的缩放。
  • 复制变换约束
    • 复制形变(Copy Transforms) 约束强制约束对象获得目标的变换属性。
  • Limit Distance Constraint 限定距离约束
    • 限定距离 约束强制被约束对象与目标保持远离、靠近或者一个给定距离。换句话说,自身的位置被限制在以目标为中心的球体以外,以内或表面。
    • 当指定一个(新的)目标时,该 距离值 会自动设置为约束对象和该目标之间的当前距离。
    • 距离
      • 该数字按钮用于设置限定距离,即约束目标为中心的球体(看不见的)半径。
      • Reset Distance X
        • 单击后,将重置 距离 值,使之与约束对象与目标之间的实际距离(即应用约束前的距离)一致。
    • 钳制范围
      • 钳制范围 选择菜单,用于选择 距离(Distance) 设置和目标中心确定的球体的限定方式:
      • 向内
        • 将对象约束在球体 内部
      • 外向
        • 将对象约束在球体 外部
      • 曲面
        • 将对象约束在球体 表面
  • Limit Location Constraint 限定位置约束
    • 此约束可以通过设置上限和下限各自限制约束对象或者 非相连的 骨骼的X,Y,Z轴平移量。
    • 对物体的限制从其中心开始计算,而骨骼则是从其根部。
    • 值得注意的是,尽管约束限制了其视觉和渲染位置,约束对象的数据块仍然允许(默认)对象或骨骼的坐标超出最小和最大值确定的范围,其坐标可以在 变换 面板中看到。
    • 当拖动物体,并试图超出限定边界,视觉上以及渲染时,物体仍然被限定在边界内,但在内部,其坐标仍会变化为超出限制。如果约束被移除,约束对象将跳转到其内部指定的位置。
  • Limit Rotation Constraint 限定旋转约束
    • 此约束可以通过设置上下限来限制物体或者骨骼的X,Y,Z轴旋转量。
    • 值得注意的是,尽管约束限制了其视觉和渲染旋转量,约束对象的数据块仍然允许(默认)对象或骨骼的旋转量超出最小和最大值确定的范围,其旋转量可以在 变换 面板中看到。当旋转物体,并试图超出限定边界,视觉上以及渲染时,物体仍然被限定在边界内,但在内部,其旋转量仍会变化为超出限制。如果约束被移除,约束对象将跳转到其内部指定的旋转量。
  • Limit Scale Constraint 限定缩放约束
    • 可以沿 X、Y 和 Z 轴缩放对象或骨骼。此约束通过下限和上限限制沿每个轴的允许缩放量。
    • 值得注意的是,尽管约束限制了其视觉和渲染位置,约束对象的数据块仍然允许(默认)对象或骨骼的缩放超出最小和最大值确定的范围(只要是正值),其缩放值可以在 变换 面板中看到。当缩放物体,并试图超出限定边界,视觉上以及渲染时,物体仍然被限定在边界内,但在内部,其缩放仍会变化为超出限制。如果约束被移除,约束对象将跳转到其内部指定的缩放大小。
  • Maintain Volume Constraint 维持体积约束
    • 维持体积 约束限制网格或者骨骼体积为其原始体积的给定比率。
    • 模式
      • 指定约束如何处理非自由轴的缩放。
      • 结构
        • 此模式只通过非自由轴之间的比率来缩放。它会覆盖非自由轴缩放以保持一定的体积。
      • 均衡
        • 仅当预约束缩放比例均匀时,此模式才会保持指定的体积。 通过非自由轴上的均匀缩放的偏差。
      • 单一轴向
        • 仅当对象在其自由轴上缩放时,此模式才会保持体积。 并传递任何其他非自由轴缩放。
  • Transformation Constraint 自设变换约束
    • 此约束比其他”变换”约束更加复杂、强大。它允许在给定取值范围内(视目标和约束对象属性类型有所不同),将目标的某个变换属性(即位置、旋转或缩放),映射到约束对象同一或其他类型的变换属性。你也可以切换轴向,并使用没有限制的范围值,而是作为”标记”来定义输入(目标)和输出(约束对象)值之间的映射。
    • 所以,例如你可以使用目标在X 轴的位置来控制绕约束目标的Z轴旋转,规定目标X 轴的一个单位对应于约束对象Z 轴旋转10个单位。这通常用在齿轮(见下面的说明),和基于位置的旋转。
  • Transform Cache Constraint 变换缓存约束
    • 基本用不到
    • The Transform Cache Constraint is used to stream animations from Alembic or USD made at the transformation matrix level (for example rigid bodies, or camera movements).
    • When importing an Alembic or USD file, Transform Cache constraints are automatically added to objects with animated transforms. For time-varying meshes (so deforming animations), the Mesh Sequence Cache modifier is used.