Transformation Constraint 自设变换约束

此约束比其他”变换”约束更加复杂、强大。它允许在给定取值范围内(视目标和约束对象属性类型有所不同),将目标的某个变换属性(即位置、旋转或缩放),映射到约束对象同一或其他类型的变换属性。你也可以切换轴向,并使用没有限制的范围值,而是作为”标记”来定义输入(目标)和输出(约束对象)值之间的映射。

所以,例如你可以使用目标在X 轴的位置来控制绕约束目标的Z轴旋转,规定目标X 轴的一个单位对应于约束对象Z 轴旋转10个单位。这通常用在齿轮(见下面的说明),和基于位置的旋转。

选项

Target 目标

数据ID 用于选择约束目标,当它为空时表示不起作用(标题栏名称背景为红色状态)。

延伸

默认情况下, 最小值最大值 定义输入和输出值的边界;范围之外的所有值都被剪掉。启用该选项后, 最小值最大值 不再受严格限制,而是通过”标记值”定义输入和相应的输出值之间的比例(线性)映射。以下面两张图片来距离说明 延伸原理。 图片中,输入的范围(横坐标)设置为 [1.0,4.0],对应的输出范围(纵坐标)为[1.0、 2.0]。黄色曲线表示输入和输出之间的映射。

延伸原理。
../../../_images/animation_constraints_transform_transformation_extrapolate-1.png

禁用延伸: 输出值都被限制在 (1.0 至 2.0) 范围内。

../../../_images/animation_constraints_transform_transformation_extrapolate-2.png

启用延伸:输出值是按输入值等比例得出的 “自由”值。

包含输入(目标)设置。

源至目标的映射模式

单选按钮,用于选择要使用的属性类型。

位置,旋转和缩放

模式(旋转)

指定旋转输入要使用的 欧拉 顺序, 四元数 和其他 旋转通道模式。 默认使用约束物体的 欧拉 顺序。

四元数 模式下,通道将被转换为加权角和 摆动角和X/Y/Z扭转 模式相同。

每个轴(X,Y和Z)独立地控制输入值范围的下限和上限。 请注意,如果最小值高于其对应的最大值,则约束的行为就像它具有与最大值相同的值。

源到目的的映射

三个 轴向映射 选择器用于分别选择映射到X,Y和Z输出(约束对象)轴的轴向(从上到下)。

目的

包含输出(至约束对象)的设置。

映射到

三个单选按钮用于选择要控制的属性类型。

位置,旋转和缩放

顺序

指定在旋转约束期间使用哪种 欧拉 顺序。默认为约束对象的顺序。

最小值最大值 的值分别控制每个映射轴的输出值范围的下限和上限。 请注意,如果最小值高于其对应的最大值,则约束的行为就像它具有与最大值相同的值。

混合

指定如何混合约束结果和现有值。可用选项的菜单因转换类型而异。

  • 替换

    约束的结果替换现有的值。

    相乘(缩放)

    约束的结果将与现有值相乘。

    相加(位置、旋转)

    约束的值与现有的值相加。

    Before Original (Rotation)现有值之前

    约束的值将在现有值之前添加,就像已将其应用于约束对象的父级一样。

    After Original (Rotation)现有值之后

    约束的值将在现有值之后添加,就像已将其应用于约束对象的子级一样。

Space 空间

空间之间的标准转换。

Note

  • 由于历史原因, 混合\模式在位置和旋转中默认为 *添加 ,缩放中默认为 替换* 。

  • 当使用目标的旋转变换属性作为输入,无论真正的值是什么,约束将始终”重置回” (-180, 180)范围。例如,如果目标绕 X 轴旋转420°,约束实际使用的 “X” 输入值将是:

    \(((420 + 180) modulo 360) - 180 = 60 - …\)

    这就是为什么此约束不是真的适合齿轮 !

  • 类似地,当使用目标缩放变换属性作为输入,无论真正的值是什么,约束将始终使用其绝对值(即对负值取负)。

  • 最小值 高于其相应的 最大值 时,两个值都会取为 最大值 。这意味着不能创建”反向”映射…