当前位置:软件学习 > Maya >>

Maya 4.0 骨骼动画-骨骼动力学(2)

Maya 4.0 骨骼动画-骨骼动力学
     骨骼制作标志着用户已进入到高级特征动画制作的领域,在 Maya 中使用骨骼比较容易,但也有可能变得复杂。在我们为骨骼制作动画之前,首先要了解动力学的一些属性,这对于制作好的骨骼动画至关重要。

反向运动学

使用 Forward Kinematics 工具主要涉及到的是正确地建立关节。在创建关节并将关节编为一组,且给关节加了合适的限制之后,就要转换关节并给它们作关键帧。首先从顶部层级开始,然后向下处理底层关节直到获得所要的姿态。

对于定向运动来说 ( 如一个人将脚放到地面或伸手开门 ) ,使用正向运动学来实现非常困难和麻烦,一般需用反向运动学 (IK) 来制作动画。

反向运动学包括 IK 手柄和 IK 解算器。一个 IK 手柄贯穿受影响的关节,这些受影响的关节就叫 IK 链,并且手柄线贯穿关节。手柄矢量指的是从起始关节开始指向末端关节的矢量,末端关节是 IK 手柄的末端受动器所在位置,如图 13-17 所示。

图 13-17 IK 手柄

IK 解算器可以查看 IK 链末端受动器的位置并作一些必要的计算,以使关节能正确旋转。旋转方式是从起始关节开始到 IK 链的末端关节为止,这种方式意味着末端关节在末端受动器所在位置。当末端受动器移动时, IK 解算器就将末端受动器的平移值改为关节的旋转值,关节也会相应地改变。通常, IK 链只使用 3 个关节,但也可以处理更多的关节。

Maya 的界面有 3 种 IK 解算器: IKRP(Rotate Plane) 解算器, IKSC(Single Chains) 解算器和 IK Spline 解算器,每种 IK 解算器都有各自的 IK 手柄类型。

使用 IKRP 手柄

IKRP 解算器是 IK 手柄工具的默认设置,其具体操作步骤如下:

(1) 在侧视图中,画一条简单的关节链,如图 13-18 所示。

(2) 执行 Skeleton → IK Handle Tool □命令,并将工具重置为默认设置。

(3) 单击第 1 个关节,然后单击最后一个关节,一个 IK 手柄已创建起来。顶部的圆复杂,如图 13-19 所示。当得到其组件的内容时,设置起来就非常简单。

IKRP 解算器仅计算末端受动器的位置值,而忽略了末端受动器的旋转值。通过 IKRP 解算器旋转的关节,其旋转方式是关节的 Y 轴是平的、 X 轴指向骨头中心、 Z 轴垂直于弯曲方向。这是建立关节的默认局部方向坐标,如果没有看到旋转圆面,则可以执行末端受动器并按 F 键显示 Show Manipulator 工具。

沿着关节弯曲方向的平面由平面指示器显示,平面作为关节链平面。用旋转 IK 链的扭曲圆平面可以绕手柄矢量旋转该平面。相对于由手柄矢量和极矢量创建的参考面可以测出 Twist 度,该参考面可以被移动且可以作关键帧。

图 13-18 建立骨骼    图 13-19 IK 手柄

注意:

有时,手臂弯曲的方式会引起 IK 链与默认参考平面设置相互转换,为了避免这种转换,可以调整极矢量或作极矢量动画。

使用 IKRP 手柄的好处在于能比较精确地控制 IK 链的旋转,缺点在于必须处理较多的组件。

使用 IKSC 手柄

IK SC 手柄比 IK RP 手柄要简单些,下面 介绍如何使用 IK SC 手柄。具体操作步骤如下:

(1) 首先进入侧视图并另画一条简单的关节链。

(2) 执行 Skeleton → IK Handle Tool 命令,如图 13-20 所示进行没置,然后关闭该对话框。

图 13-20 设置 IK SC 手柄

(3) 单击第 1 个关节,然后单击最后一个关节,可以看到 IKSC 手柄了。

(4) 执行 Rotate 并旋转 IK 手柄发现这似乎只对局部 X 和 Y 旋转手柄有效,且释放手柄后它们又回到一定的角度。

而要按 F 键显示 Show Manipulator 工具,那么将什么也看不到,因为 IKSC 手柄没有额外的控制器 —— 所有的东西都是由 IK 手柄所控制。 IKSC 解算器计算末端受动器的旋转值并以一定的方式旋转 IK 链,其中一定的方式是指在链中的所有关节都有默认的局部方向。尽管在手柄中看不到任何有关关节链平面的表示,但关节链平面确实存在于 IKSC 解算器中。作为 IKSC 手柄,该平面通过关节链,这样 X 和 Y 轴正位于平面上,如图 13-21 所示。

图 13-20 一个 IKSC 手柄

对于 IKSC 手柄,在 Attribute Editor 中,如果有两个或两个以上链相重叠时, IKSC 就会有一个 Priority 赋值。 Priority 1 设置的手柄将首先旋转链中的关节,然后 Priority 2 设置的手柄将旋转手柄的关节,依次类推。 Po Weight 设置决定了手柄的位置和方位权重,如果权重为 1 ,那么末端受动器将仅获得手柄的位置;如果权重为 0 ,那么末端受动器将仅获得手柄的方位。一般应将这个设置设为默认值 1 。

[page_break]

使用 IKSC 手柄的优势是只需要使用末端受动器来控制 IK 链即可。在位置上不需要大量的 IK 链旋转,这对动画来说是很有效的方法。

使用 IKSC 手柄旋转 IK 链时,可以用 Graph Editor 交互调整旋转值。用这种方法可以产生预定结果。

在正向运动和反向运动学间的切换

Maya 允许用户在用 IKRP 、 IKSC 手柄和旋转关节 ( 正向动力 ) 之间来回切换。下面以 13.3.6 小节中创建的 IKSC 手柄为例介绍这项技术。具体操作如下:

(1) 进入第 1 帧并打开 Auto Key 按钮。若没有这个设置,制作过程将变得非常麻烦。

(2) 给 IK 手柄作关键帧,移动到第 10 帧并平移 IK 手柄,此时会自动设置另一个关键帧。

(3) 在 Attribute Editor 窗口中取消选中 Solver Enable 复选柜,以局部地关闭这个 IK 手柄的 IKSC 解算器。

(4) 选择 IK 链中的两个关节并给它们作关键帧,然后进入第 20 帧并旋转关节,再进入第 30 帧并重复操作。

(5) 再次 IKSC 手柄在 Attribute Editor 对话框中选中 Solver Enable 复选框以打开 IKSC 解算器。这时 IK 手柄在定义关键帧的关节处为第 20 帧和第 30 帧获取了关键帧。

为了使切换能够得以实现,需要在 Attribute Editor 对话框中打开 IK 手柄的 Snap 设置并关闭 Stickiness 。如果 Snap 被关闭或 Stickiness 被打开,那么在关节旋转时 IK 手柄将不会捕捉到末关节。

在反向和正向连接运动间来回切换还应注意由关节旋转产生的运动和末端受动器的相应关键帧不会始终都匹配。它们大致会一致,但也许需要扭转末端受动器的动画制作。

提示:

如果创建的关节链在一条直线上, IKSC 或 IKPR 解算器不能计算和弯曲该关节链。在解决该问题时,首先要旋转子关节使该关节链成一定的角度 —— 即使是一个很小的角度。然后对关节应用 Skeleton → Set Prefered Angle 。删除这个已存在的 IK 链并创建一个新链。 IKSC 或 IKPR 解算器便可以弯曲该关节链了。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,