本部分介绍如何使用三种类型的 IK 链解算器设置角色运动:单链解算器、多链解算器以及样条曲线链解算器。
使用单链 IK 解算器可以非常快速地设置角色运动,并可通过非常直观的方式调整运动。
可以在“Animation”>“IK”>“Add IK Handle” 选项窗口中设置“single-chain IK solver”选项。
使用单链解算器时,解是唯一的,这意味着无论是正向还是反向播放动画,是移开还是移回约束/控制柄等等,骨骼行为都相同。所以,您可以通过交互方式移动和回放骨骼运动和进行渲染,而无需使用“Run IK”。
如使用多链 IK 解算器,则骨骼的行为不唯一;即关节运动会按照无法预知的方式改变,具体取决于是回放动画、创建视图帧、移动约束还是撤消变换。解决该问题的方法是执行单独的非交互操作,以便使用“Run IK”工具“烘焙”骨骼运动。(要渲染多链解,必须在输出 SDL 文件之前使用“Run IK”。)
使用单链解算器,只能在骨骼的每个部分上放置一个控制柄。例如,可以为每条手臂(肩部到腕部)放置一个控制柄,为每根手指放置一个控制柄(第一个指节到指尖)等等。这一点与多链 IK 区别很大,在多链 IK 中,控制柄可以共享关节,而且通常重叠程度相当高。
下图显示具有单链 IK 控制柄的 IK 链。
在 IK 控制柄的默认“Translation Only”设置中,只有“Goal”和“Limb Axis”可见。
使用 IK 控制柄的旋转功能可以绕“Limb Axis”旋转该平面以及链。请参见上图。
仅当 IK 控制柄使用“Plane Rotation”或“Plane/Pole Rotation”设置时,“Plane Indicator”才可见。
在建模窗口中,“Pole Axis”以一条末端有“向上”箭头的线段显示。该“Pole Axis”的投影显示为绘制到平面指示器的旋转圆盘的一条虚线段。
“Pole Axis”仅在使用 IK 控制柄的高级“Plane/Pole Rotation”设置时可见。
并非只有生物才能拥有骨骼链。台灯也是一个简单的骨骼链。通过使用骨骼链,可单击并形成从台灯底座到灯罩的各个部分,从而轻松创建台灯。
本部分介绍如何绘制人体骨骼形式。
如果此时不断单击,会继续向右脚趾末端添加关节。
要绘制左腿,需要将创建的下一个关节 DAG 节点作为骨盆节点的子节点。
还可以使用“Edit”>“Duplicate”>“Mirror” 创建左腿。
有关骨骼的详细信息,请参见“Animation”>“Editors”>“Skeletons”。
两个对齐骨骼之间的关节在 IK 动画中一般会“锁定”。
如果层次中的两个连续骨骼(例如,大腿和小腿)在一条直线上,那么即使最低关节(踝部)上的约束已移动,它们也不会弯曲。出现该问题是因为到达踝部约束需要弯曲臀部和膝盖,而对于每个关节而言,只有确定另一关节将同时移动之后才会移动。否则,踝部将在短时间内距离其约束过远。
对于多链控制柄,解决这一问题的方法是设置关节限制(在上例中,位于膝关节上),使两个肢体永远不会在一条直线上(与直线成 2 或 3 度角应该足够)。对于单链,解决方法是设置静止位置,使关节不会在世界空间中对齐。
本部分介绍如何使用多控制柄解算器工具操纵骨骼。
选择“Animation”>“IK”>“Add IK Handle” 以便将“Solver”设置为“Multi-handle”。
虽然单链 IK 解算器可满足大多数反向运动学需要,但也可以使用多链 IK 控制柄来操纵骨骼。
例如,如果您需要设置尾巴来回摇摆,而且每次摇摆时朝相反方向弯曲的效果,则需要使用多链解算器。使用多链解算器时,骨骼具有非唯一的行为,您需要使用“Run IK”工具烘焙骨骼运动。
有关多链解算器与单链解算器区别的详细信息,请参见“使用单链解算器”。
在某些情况下,可以使用多链解算器在骨骼上创建单链解算器无法实现的特殊动画。例如,如果您需要使尾巴来回摇摆,而且每次摇摆时朝相反方向弯曲,则需要使用多链 IK 控制柄。
拾取多链 IK 控制柄时,“Information Window”中的“IK Handle info”部分包含以下三个在使用单链控制柄时不显示的项:
决定该控制柄相对于骨骼链中其他控制柄的影响的数值。
选中该选项时,控制柄用于确定骨骼末端效应器的位置。
选中该选项时,控制柄用于确定末端效应器的父关节的方向。
如果在“Position”处于启用状态时指定了一个 IK 控制柄,则移动该 IK 控制柄也会移动骨骼的末端效应器,就像单链 IK 的行为一样。
如果在“Orientation”处于启用状态时指定了 IK 控制柄,则旋转该控制柄会影响末端效应器的父关节的旋转。因此,指向末端效应器的骨骼具有该 IK 控制柄的方向。
请参见页边处的图中对启用“Position”与“Orientation”的图解。
如果同时为一个多链 IK 控制柄指定了“Position”和“Orientation”,将合并它们的行为。末端效应器会随该 IK 控制柄移动,而且指向末端效应器的骨骼会旋转为与控制柄的方向一致。
有关 IK 控制柄的详细信息,请参阅“创建简单脊椎链”部分。
使用多链 IK 解算器可以叠加 IK 控制柄。例如,可以在手臂上放置从肩部到腕部的 IK 控制柄,并从肩部到肘部放置另一个控制柄。
默认情况下,叠加的 IK 控制柄对 IK 链产生等量影响。
在下例中,如果向下拉动肩部到肘部的控制柄,同时向上拉动肩部到腕部的控制柄,则手臂的姿势会尝试以相等程度满足两个控制柄:
如果希望一个控制柄的影响比另一个控制柄强,可以在“Information window”中调整控制柄的权重。在本示例中,如果希望肩部到肘部的 IK 控制柄产生较小的影响,可将该 IK 控制柄的权重设置为较小值(例如 0.1)。结果,手臂骨骼受肩部到腕部控制柄的影响更大,如下所示:
本部分介绍如何“烘焙”IK 控制柄。
使用多链解算器时,需要执行一个额外操作,将 IK 控制柄行为“烘焙”到骨骼关节的旋转上(使用“Animation”>“IK”>“Run IK”)。该操作会直接在骨骼关节上创建关键帧动画,以便可对场景进行渲染,或者通过编辑关节上的关键帧进一步细化骨骼动画。
“RunIK”对于单链骨骼可选,但在使用多链 IK 控制柄时是必需的。
本部分介绍如何控制骨骼链的各个部分。
可以使用样条曲线控制柄控制骨骼链中的一部分。通过使用样条曲线控制柄,骨骼链会与目标样条曲线匹配。使用样条曲线控制柄能够简化尾部、颈部或蛇的动画。样条曲线解算器有四种主要用途:
本部分介绍如何对动画应用运动模糊。
有时,您会希望生成动画曲线取代约束或表达式动画。在这些情况下,“Bake”插件提供相当于“Run IK”的功能。“Bake”按照指定的间隔定期使用关键帧为它们创建动画曲线,可手动查看和编辑这些关键帧。
烘焙动画后,可以选择“Bake”选项窗口中的“Delete Constraints”选项,来删除所有约束。
如果要使用“Motion Blur”渲染动画(详细信息请参见“Render”>“Globals”),您可能希望使用“Motion Blur compensation”。渲染器计算运动模糊采样点的动画,在这些值之间插值。
补偿仅应用于通过单链或样条曲线 IK 控制柄平移的动画。
约束动画仅限于 -180/+180 度的范围。如果约束从 -180 突然增加到 +180,对象实际上并不会移动。但运动模糊采样会读取这些度数范围之间的值,使得对象显示为翻转(即使对象不应翻转)。使用“Motion Blur compensation”时,会在检测到翻转问题的位置,在运动模糊采样时间点创建附加关键帧。
样条曲线控制柄是通过根关节、末端关节和目标样条曲线在骨骼链上定义的。
与单链 IK 控制柄一样,样条曲线控制柄是影响骨骼的约束。它们不会叠加。
在变换曲线或为其设置动画时,骨骼链会尝试匹配它。您还可以变换根控制柄的位置或旋转或者设置相应动画以更改链位置,使其沿曲线滚动。旋转主控制柄会使链上的各个关节扭曲。如果使用点约束将根关节约束到一个对象,会约束链的起始位置。
有两种样条曲线控制柄。
如果主样条曲线控制柄控制没有根控制柄的骨骼链(根控制柄可能无法创建或已被删除),根关节会保持固定,且只有可达到的链部分跟随样条曲线。尾部就是一个恰当的示例;它始终附着到身体,同时可沿曲线自由拖动其端部。如果不存在主控制柄,则根控制柄不能存在。
样条曲线控制柄可以使用参数或弧长定义曲线上的位置。这两种类型的测量都使用相对百分比值。
下图显示样条曲线上由参数距离和弧长定义的点。该图中的每个点由四个值表示:绝对参数值、相对百分比参数值、绝对弧长值和相对百分比弧长值。
对于每个样条曲线控制柄,我们只能使用相对参数值和相对弧长值来定义点或位置。
滚动链意味着使用下方骨骼作为旋转轴来旋转根关节。由于所有下方关节会继承上方关节的旋转,因此根关节的旋转会使整个链滚动。
扭曲链意味着使用链中每个关节的下部骨骼作为旋转轴,旋转各个关节(末端关节除外)。如果主控制柄的“Twist Root”属性设置为“ON”,则扭曲会从根关节开始;否则会从第二个关节开始。
您可以使用四种不同的扭曲类型控制样条曲线控制柄。(详细信息请参见“Information Window”中的“Twist Type”。)
本部分介绍如何查看有关样条曲线控制柄的信息。
拾取了一个 IK 控制柄时,可通过选择“Windows”>“Information”>“Information Window” 来查看有关该控制柄的信息。
有关其他控制的信息,请参见“创建简单脊椎链”。
对于根控制柄,“Information Window”的“IK handle section”中显示下列附加控制:
样条曲线控制柄的目标曲线。
样条曲线控制柄可以使用参数或弧长定义曲线上的位置。
您可以按住 键 (Windows) 或
键 (Mac),并使用鼠标左键
在“Position”字段中滚动来更改位置。也可以在“Position”字段中键入值。
您可以按住 键 (Windows) 或
键 (Mac),并使用
在“Roll deg”字段中滚动来更改旋转角度。也可以在“Roll deg”字段中键入一个数字。
当样条曲线链沿螺旋曲线路径移动时,它可能会意外翻转 180 度,或者轴发生更改。要控制该行为,请选择“Anti Flip”>“CURVE_NORMAL”或者“Anti Flip”>“WORLD_UP”。默认情况下,它设置为“NONE”。
如果“Anti_Flip”设置为“CURVE_NORMAL”或“WORLD_UP”,则需要设置“UP Axis”和“Front Axis”。必须为两个轴设置不同的旋转。
“Anti_Flip”约束根关节的方向。定义的“Front Axis”沿曲线的切线方向。“Up Axis”垂直于“Front Axis”。
根据曲线路径的方向,可能需要尝试抗翻转设置。
对于主控制柄,可以在“Information window”中更改扭曲类型和扭曲角度。
样条曲线控制柄的目标曲线。
主样条曲线控制柄解具有四种类型的控制,您可以使用以下弹出菜单来指定这些控制:
设置为“ON”可以从根关节开始扭曲。否则,扭曲从第二个关节开始。
可通过在“Twist”字段中键入度数来设置扭曲度。可以按住 键 (Windows) 或
键 (Mac),并使用鼠标左键
进行滚动,通过交互方式更改度数值。
当 Alias 另存一个 SDL 文件时,会仅为“Render Globals”窗口中指定的关键帧范围写入 IK 和约束动画。
这意味着如果您在该 SDL 文件中编辑起始/结束帧,则原始起始/结束范围以外没有约束/IK 动画。
必须重新保存 SDL 以获得缺失的所有约束/IK 动画。