Action Constraint 动作关系约束
这 动作关系 是很强大的的约束。它允许你通过另一个物体的变换控制约束对象的 动作 。
动作关系 约束的基本作用非常类似于 驱动 ,只是前者使用于整个动作(即一堆相同类型的 F 曲线),而后者则控制“自身”的单一F曲线…
请注意,即使该约束接受 网格 操作类型,但只有 物体 , 姿势 和 约束 类型才会真正的工作(起作用),因为约束只能影响物体或骨骼的变换属性,而不能影响网格的形状。还要注意,只有物体变换(位置、旋转、缩放)受动作影响,如果动作包含其他关键帧属性它们将会被忽略的,作为约束不会影响那些属性。
作为一个例子,让我们假设你已经定义了一个 物体 动作(它可以被指定给任何物体,甚至不指定物体),并通过 动作关系 约束已映射到你的自身,使目标在(0.0到2.0)范围内沿着它的X轴映射动作内容在其自身(0到100)帧范围内移动。这将意味着当目标的 X 属性为0.0时,自身将如同在链接动作的第0帧中一样;目标的 X 属性为1.0,自身将如同在链接动作的第50帧中一样。
选项
Target 目标
数据ID 用于选择约束目标, 当它为无(none)时不起作用(标题栏名称为红色状态)。
Bone 骨骼
当目标是骨架物体时,请在这里指定好目标骨骼。
Transform Channel 形变通道
该选择控件选择从目标使用“动作关系”的哪个变换属性(沿/围绕它那个轴位置,旋转或缩放)。
Target Space 目标空间
此约束允许您选择在哪个空间计算其目标的变换属性。
To Action 到动作
选择要使用的动作的名称。
Warning
尽管它可能不处于红色状态(UI刷新问题),但当这里没有选择有效的动作时,此约束显然不起作用。
Object Action 物体动作
当它启用时 仅仅 用于骨骼,此选项将使受约束的骨骼使用链接动作的“物体”部分,而不是“同样命名的姿势”部分。这允许你将物体的动作用应用于骨骼。
Target Range Min/Max 目标范围
驱动变换属性值的下限和上限。
Warning
坏消息是,我们发现这动作关系约束有它的局限性:
当使用旋转属性作为”动作”时,这些值将”重新映射”到(180.0 到-180.0) 的范围。
当使用缩放属性作为”动作”时,这些值被限制为无效值或者正值。
Action Range Start/End 动作范围
要映射的动作的开始和结束点。
Note
这些值必须严格正数。
这两个值默认为0,即禁用映射(即自身只获取在链接动作的第0帧定义的属性…)。
混合
指定如何将动作中的关键帧变换与现有变换相结合。
初始前
动作变换添加到现有变换之前,就像应用于约束所有者的假想父级一样。缩放的处理方式与骨骼的 对齐继承缩放 类似,以避免创建剪切。
初始后
动作变换在现有变换后添加,就像它在本地应用于约束所有者的假想子级一样。缩放的处理方式与骨骼的 对齐继承缩放 类似,以避免创建剪切。
初始后(全比例)
动作变换在现有变换后添加,就像它在本地应用于具有普通父项约束所有者的假想子级一样。此模式可能创建剪切,因此不建议使用。
注意
当物体或骨骼已具有 动作约束时,应在所有其他约束之前添加使用新插帧操作的下一个约束,以便获得相同的最终组合变换。此事实不受混合模式的影响。
与正常情况不同的是,你可以有 起始 的值高于 结束点 的值,或者 最小值 大于 最大值 的值:这将会翻转动作的映射关系(即将“播放”反转…),除非你们两套都显然颠倒了!
当使用 约束 动作时,它是约束 通道 名称,用来决定自身的哪些约束应用于该动作。例如,如果你有一个约束通道命名为“trackto_empt1”,其键 影响 或 起始/结束 值(唯一可以键入的)将被映射到的自身的约束命名为“trackto_empt1”那一个。
同样,当使用 Pose(姿势) 动作时(这显然当它约束骨骼时才有意义和能够工作!),它是用来确定那一个来自动作的骨骼 channel’s names(通道名) 被使用。(例如,如果受约束的骨骼被命名为“手臂(arm)”,它将使用并且仅使用名为“手臂(arm)”的动作的骨骼通道…)。不幸的是,在整个骨架对象上使用 Pose 动作(一次影响动作中的所有关键骨骼)将不起作用…
请注意,你可以使用 姿态库功能 创建/编辑 Pose(姿势) 动作数据块…只要记住,在这种情况下,每帧有一个姿势!