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 链的末端是 gizmo,即目标。随时重新定位目标或设置目标动画时可以采用各种方法。这些方法通常包括使用链接、参数关联或约束。无论目标如何移动,IK 解算器都尝试移动链中最后一个关节的枢轴(也称终端效应器),以便满足目标的要求。IK 解算器可以对链的部分进行旋转,以便扩展和重新定位末端效应器,使其与目标相符。
使用 IK 解算器设置手臂的动画
通常,末端效应器限于地平面。例如,在角色步行周期中,可以在脚跟抬起时“锁定”脚趾。然后,链中根的移动会使腿部从脚趾处抬起。
3ds Max 附带了四个插件 IK 解算器:
对角色动画和序列较长的任何 IK 动画而言,HI 解算器是首选的方法。使用 HI 解算器,可以在层次中设置多个链。例如,角色的腿部可能存在一个从臀部到脚踝的链,还存在另外一个从脚跟到脚趾的链。
因为该解算器的算法属于历史独立型,所以,无论涉及的动画帧有多少,都可以加快使用速度。它在第 2000 帧的速度与在第 10 帧的速度相同。它在视口中稳定且无抖动。该解算器可以创建目标和末端效应器(虽然在默认情况下末端效应器的显示处于关闭状态)。它使用旋转角度调整该解算器平面,以便定位肘部或膝盖。您可以将旋转角度操纵器显示为视口中的控制柄,然后对其进行调整。另外,HI IK 还可以使用首选角度定义旋转方向,使肘部或膝盖正常弯曲。
HD 解算器是一种最适用于动画制作计算机的解算器,尤其适用于那些包含需要 IK 动画的滑动部分的计算机。使用该解算器,可以设置关节限制和优先级。它具有与长序列有关的性能问题,因此,最好在短动画序列中使用。该解算器适用于设置动画的计算机,尤其适用于那些包含滑动部分的计算机。
因为该解算器的算法属于历史依赖型,所以,最适合在短动画序列中使用。在序列中求解的时间越迟,计算解决方案所需的时间就越长。该解算器使您可以将末端效应器绑定到后续对象,并使用优先级和阻尼系统定义关节参数。该解算器还允许将滑动关节限制与 IK 动画组合起来。与 HI IK 解算器不同的是,该解算器允许在使用 FK 移动时限制滑动关节。
IK 肢体解算器只能对链中的两块骨骼进行操作。它是一种在视口中快速使用的分析型解算器,因此,可以设置角色手臂和腿部的动画。
使用 IK 肢体解算器,可以导出到游戏引擎。
因为该解算器的算法属于历史独立型,所以,无论涉及的动画帧有多少,都可以加快使用速度。它在第 2000 帧的速度与在第 10 帧的速度相同。它在视口中稳定且无抖动。该解算器可以创建目标和末端效应器(虽然在默认情况下末端效应器的显示处于关闭状态)。它使用旋转角度调整该解算器平面,以便定位肘部或膝盖。您可以将旋转角度锁定其他对象,以便对其进行旋转。另外,IK 肢体解算器还可以使用首选角度定义旋转方向,使肘部或膝盖正常弯曲。使用该解算器,还可以通过启用关键帧 IK 在 IK 和 FK 之间进行切换。该解算器具有特殊的 IK 设置 FK 姿势功能,使您可以使用 IK 设置 FK 关键点。
样条线 IK 解算器使用样条线确定一组骨骼或其他链接对象的曲率。
样条线 IK 样条线中的顶点称作节点。同顶点一样,可以移动节点,并对其设置动画,从而更改该样条线的曲率。
样条线节点数可能少于骨骼数。与分别设置每个骨骼的动画相比,这样便于使用几个节点设置长型多骨骼结构的姿势或动画。
样条线 IK 提供的动画系统比其他 IK 解算器的灵活性高。节点可以在 3D 空间中随意移动,因此,链接的结构可以进行复杂的变形。
分配样条线 IK 时,辅助对象将会自动位于每个节点中。每个节点都链接在相应的辅助对象上,因此,可以通过移动辅助对象移动节点。与 HI 解算器不同的是,样条线 IK 系统不会使用目标。节点在 3D 空间中的位置是决定链接结构形状的唯一因素。旋转或缩放节点时,不会对样条线或结构产生影响。
虽然可以对对象的任何层次应用 IK 解算器,但是结合使用 IK 解算器的骨骼系统是一个设置角色动画的理想途径。
骨骼系统是一种通过关节连接的骨骼对象层次链接。骨骼可以用作链接对象的支架。如果使用“蒙皮”修改器,可以为骨骼对象制作“蒙皮”,使骨骼动画可以变形用于建立角色模型的网格。如果使用通过关节连接的角色,可以使用链接或约束,使骨骼可以设置网格的动画。
使用蒙皮设置骨骼动画时,会使蒙皮伸缩。
使用蒙皮设置骨骼动画时,会使蒙皮伸缩。
任何对象都能转变为骨骼对象。选择对象,然后选择“动画”“骨骼工具”。在“对象属性”卷展栏上,启用“启用骨骼”。然后,可以选择“仅显示链接”,以便使用骨骼替换对象的显示。如果要设置动画的层次与几何体有关,这样可能是很有用的。如果几何体只在链接时隐藏和显示,将会大幅提高交互式视口的响应速度。
可以将任何对象都显示为骨骼对象。对象,然后选择“动画”“骨骼工具”。这将打开“骨骼工具”浮动框。在“对象属性”卷展栏上,启用“启用骨骼”。然后,转到“显示”面板,并在“链接显示”卷展栏中启用“显示链接”和“链接替换对象”,以便显示骨骼,而不显示对象。如果要设置动画的层次与几何体有关,这样可能是很有用的。如果几何体只在链接时隐藏和显示,将会大幅提高交互式视口的响应速度。
任何对象层次都能显示为骨骼。
任何对象层次都能显示为骨骼。
任何对象层次都能显示为骨骼。
骨骼可以随时缩放、挤压和拉伸。请参见将对象用作骨骼。
使用“显示链接”和“链接替换对象”,可以显示链接,而不显示对象。这些设置可以在“显示”面板的“链接显示”卷展栏中找到。如果要设置动画的层次与几何体有关,这样可能是很有用的。如果几何体只在链接时隐藏和显示,将会大幅提高交互式视口的响应速度。
使用正向运动学技术,可以设置角色运动的动画,使每个肢体可以旋转到相应的位置处,无论是从肩膀到手指,还是从臀部到脚趾,都是如此。但是,使用反向运动学技术模拟与地面进行交互的足部时,可以大幅加快速度,使效果更加逼真。另外,如果需要对动画做以更改,还更加便于进行控制。要更改整个链的动画,无需设置链中每个骨骼的关键帧,只需对一个节点进行更改即可。
另一个方面,对于动画设计人员来讲,将 IK 用于腿部,而将 FK 用于躯干和手臂是司空见惯的事。FK 提供了更多的控件,用于设置上身的姿势。对每种角色动画任务而言,无需使用 IK。使用 HI IK 解算器,可以在 FK 和 IK 之间来回轻松切换。
创建骨骼系统时,可以应用 IK 解算器,或使用“动画”菜单:
创建骨骼时,如果启用“指定给子级”选项,将会立即应用 IK 解算器。默认设置为禁用。
IK 解算器的设置可以在“运动”和“层次”面板中进行调整:
选中 IK 链中的目标后,“运动”面板将会为各个 IK 解算器显示相应的卷展栏。
“运动”面板参数调整解算器平面的旋转角度,以便指向肘部或膝盖。另外,使用“IK 解算器”卷展栏中的控件,可以通过“启用”和“IK”按钮混合 IK 和 FK(正向运动学)的时段。
“运动”面板参数可以对当前选定关节的末端效应器执行分配、删除和编辑操作。您可以使末端效应器成为其他对象的父对象,然后使骨骼恢复初始姿势。如果在“运动”面板中更改 IK 控制器参数,将会影响整个 HD IK 链,即便只选定一个骨骼,也是如此。
IK 肢体解算器和 HI 解算器的“运动”模板参数相同。
使用“运动”面板参数,不仅可以激活/取消激活该解算器,而且可以调整分配给起始关节和结束关节的骨骼,还可以调整起始和结束扭曲角度,使扭曲控制柄可以显示设置。
选定骨骼后,“IK”面板将会显示相关控件,用于激活和限制转动关节,并设置关节的首选角度。借助所有关节的首选角度姿势,可以控制肢体的旋转方向。选定目标后,“IK”面板为空。
选择 HD IK 链的末端效应器。在“层次”面板中,单击“IK”。显示的控件将会影响 HD 解算器。另外,您将会找到相关的工具,用于绑定到跟随对象,还可以设置回优先级、关节限制、阻尼和弹性。
选定骨骼后,“IK”面板将会显示相关控件,用于激活和限制转动关节,并设置关节的首选角度。借助所有关节的首选角度姿势,可以控制肢体的旋转方向。选定目标后,“IK”面板为空。如果在应用 IK 解算器之前选择骨骼,将会显示不同的滑动和转动关节参数集,但是,应用 IK 解算器之后,将会替换这些参数。
选择样条线 IK 链中的样条线。在“层次”面板中,单击“IK”。显示的控件将会影响样条线 IK 解算器。另外,您将会找到相关的工具,用于绑定到跟随对象,还可以设置回优先级、关节限制、阻尼和弹性。“IK”面板中的控件与 HD 解算器中的控件相似。
要向层次或骨骼系统中添加 IK 解算器,请执行下列操作:
如果使用的是 IK 肢体解算器,必须应用 IK 解算器,以便只对两个骨骼进行控制。
IK 解算器显示在视口中。
要创建使用 IK 解算器的骨骼层次,请执行下列操作:
骨骼是通过已经应用的 IK 解算器进行创建的。
要将对象层次显示为骨骼,请执行下列操作:
将打开“骨骼工具”对话框。
此时,对象将会消失,而链接将会显示为骨骼。