IK 解算器

IK 解算器可以创建反向运动学解决方案,用于旋转和定位链中的链接。它可以应用 IK 控制器,用来管理链接中子对象的变换。您可以将 IK 解算器应用于对象的任何层次。使用“动画”菜单中的命令,可以将 IK 解算器应用于层次或层次的一部分。在层次中选中对象,并选择 IK 解算器,然后单击该层次中的其他对象,以便定义 IK 链的末端。

应用 HI IK 解算器的骨骼系统

每种 IK 解算器都具有自身的行为和工作流,以及显示在“层次”和“运动”面板中的专用控件和工具。IK 解算器是插件,所以编程人员可以通过定制或编写自己的 IK 解算器扩展 3ds Max 的 IK 功能。

3ds Max 附带四个不同的 IK 解算器。两个最常用的 IK 解算器为历史独立型 (HI) 和历史依赖型 (HD)。要同时查看工作原理,请播放以下视频:

在前面的视频中,机器人臂 1 使用 HI IK,而机器人臂 2 使用 HD IK。两个机器人臂的末端效应器的动画相同。请注意,这两种算法达到空间中相同点所使用的 IK 解决方案是不同的。

IK 解算器的工作方式

通常,IK 解算器的工作方式如下:反向运动学链可以在部分层次中加以定义,即从角色的臀部到脚跟或者从肩部到手腕。IK 链的末端是 gizmo,即目标。随时重新定位目标或设置目标动画时可以采用各种方法。这些方法通常包括使用链接、参数关联或约束。无论目标如何移动,IK 解算器都尝试移动链中最后一个关节的枢轴(也称终端效应器),以便满足目标的要求。IK 解算器可以对链的部分进行旋转,以便扩展和重新定位末端效应器,使其与目标相符。

使用 IK 解算器设置手臂的动画

通常,末端效应器限于地平面。例如,在角色步行周期中,可以在脚跟抬起时“锁定”脚趾。然后,链中根的移动会使腿部从脚趾处抬起。

3ds Max 附带了四个插件 IK 解算器:

注: 3ds Max 还可以提供其他两种反向运动学层次操纵方法,这些方法与解算器无关:交互式 IK应用式 IK

IK 与骨骼

虽然可以对对象的任何层次应用 IK 解算器,但是结合使用 IK 解算器的骨骼系统是一个设置角色动画的理想途径。

骨骼系统是一种通过关节连接的骨骼对象层次链接。骨骼可以用作链接对象的支架。如果使用“蒙皮”修改器,可以为骨骼对象制作“蒙皮”,使骨骼动画可以变形用于建立角色模型的网格。如果使用通过关节连接的角色,可以使用链接或约束,使骨骼可以设置网格的动画。

使用蒙皮设置骨骼动画时,会使蒙皮伸缩。

使用蒙皮设置骨骼动画时,会使蒙皮伸缩。

将其他对象转变为骨骼

任何对象都能转变为骨骼对象。选择对象,然后选择“动画”“骨骼工具”。在“对象属性”卷展栏上,启用“启用骨骼”。然后,可以选择“仅显示链接”,以便使用骨骼替换对象的显示。如果要设置动画的层次与几何体有关,这样可能是很有用的。如果几何体只在链接时隐藏和显示,将会大幅提高交互式视口的响应速度。

可以将任何对象都显示为骨骼对象。对象,然后选择“动画”“骨骼工具”。这将打开“骨骼工具”浮动框。在“对象属性”卷展栏上,启用“启用骨骼”。然后,转到“显示”面板,并在“链接显示”卷展栏中启用“显示链接”和“链接替换对象”,以便显示骨骼,而不显示对象。如果要设置动画的层次与几何体有关,这样可能是很有用的。如果几何体只在链接时隐藏和显示,将会大幅提高交互式视口的响应速度。

任何对象层次都能显示为骨骼。

任何对象层次都能显示为骨骼。

任何对象层次都能显示为骨骼。

骨骼可以随时缩放、挤压和拉伸。请参见将对象用作骨骼

链接显示

使用“显示链接”和“链接替换对象”,可以显示链接,而不显示对象。这些设置可以在“显示”面板的“链接显示”卷展栏中找到。如果要设置动画的层次与几何体有关,这样可能是很有用的。如果几何体只在链接时隐藏和显示,将会大幅提高交互式视口的响应速度。

使用 IK 设置骨骼动画的优点

使用正向运动学技术,可以设置角色运动的动画,使每个肢体可以旋转到相应的位置处,无论是从肩膀到手指,还是从臀部到脚趾,都是如此。但是,使用反向运动学技术模拟与地面进行交互的足部时,可以大幅加快速度,使效果更加逼真。另外,如果需要对动画做以更改,还更加便于进行控制。要更改整个链的动画,无需设置链中每个骨骼的关键帧,只需对一个节点进行更改即可。

另一个方面,对于动画设计人员来讲,将 IK 用于腿部,而将 FK 用于躯干和手臂是司空见惯的事。FK 提供了更多的控件,用于设置上身的姿势。对每种角色动画任务而言,无需使用 IK。使用 HI IK 解算器,可以在 FK 和 IK 之间来回轻松切换。

如何应用 IK 解算器

创建骨骼系统时,可以应用 IK 解算器,或使用“动画”菜单:

IK 解算器的调整位置

IK 解算器的设置可以在“运动”和“层次”面板中进行调整:

过程

要向层次或骨骼系统中添加 IK 解算器,请执行下列操作:

  1. 创建骨骼系统或对象的其他任何链接层次。
  2. 选择需要启动 IK 链的位置处的骨骼或对象。
  3. 选择“动画”菜单 “IK 解算器”,然后选择“IK 解算器”:
    • 支持角色动画的 HI 解算器
    • 支持具有滑动关节的机械装配的 HD 解算器
    • 支持两骨骼链的 IK 肢体解算器
    • 用于提高复杂的多骨骼结构控制的样条线 IK 解算器
  4. 单击需要结束 IK 链的位置。

    如果使用的是 IK 肢体解算器,必须应用 IK 解算器,以便只对两个骨骼进行控制。

    IK 解算器显示在视口中。

要创建使用 IK 解算器的骨骼层次,请执行下列操作:

  1. 转到 “创建”面板,单击 (系统),然后单击“骨骼”。
  2. 从“IK 链分配”卷展栏的列表中选择 IK 解算器。
  3. 启用“指定给子级”。
  4. 在视口中单击并拖动鼠标,以便创建骨骼。右键单击即可停止创建骨骼。

    骨骼是通过已经应用的 IK 解算器进行创建的。

    注: 如果使用样条线 IK 解算器,将会打开“样条线 IK 解算器”对话框,您可以在其中对样条线解算器使用的样条线和辅助对象进行特殊设置。

要将对象层次显示为骨骼,请执行下列操作:

  1. 在视口中选择对象的层次。
  2. 从“动画”菜单中选择“骨骼工具”。

    将打开“骨骼工具”对话框。

  3. 展开“对象属性”卷展栏。
  4. 在“骨骼属性”组中,启用“启用骨骼”。
  5. 在“显示”面板中,向下滚动到“链接显示”,然后将其展开。
  6. 在“链接显示”卷展栏中,启用“显示链接”和“链接替换对象”。

    此时,对象将会消失,而链接将会显示为骨骼。