今天为大家带来Maya7.0 骨骼动力学之骨骼动画制作教程,教程真的很不错,很值得学习,好了,大家一起来学习吧!

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

正向动力学

Forward Kinematics 对于处理诸如行走时手臂的摆动或人转身时脊柱的旋转之类的自由运动是非常有效的。对于 Forward Kinematics ,主要关心的是给动画正确建立关节,下面就用 Joint 工具来建立一个人体骨骼。

首先要做的是创建有骨骼的腿部,这需要放置腿、膝和足关节。具体操作步骤如下:

(1) 执行 Skeleton → Joint Tool 命令,单击 Reset Tool 将所有的选项都设置为默认状态,然后执行 Auto Joint Limits 。

(2) 进入侧视图,按住 X 键并单击关节,将它捕捉到栅格上,如图 13-8 所示。创建完所有的关节后,按 Enter 键完成制作。

提示:

在关节创建过程中的任何时候,用户可以用鼠标中键拖动以调整创建的最后一个关节的位置,或者用向上箭头键回到其他关节。注意:如果返回少许几个关节,并用鼠标左键单击的话,就会在关节外得到另一个关节分支。

图 13-8 创建骨骼

(3) 分别给关节命名为 Lleg , Lknee 和 Lfoot(L 代表左的意思 ) 。现在没必要考虑关节链中的最后一个关节,因为现在还用不上。

(4) 进入透视图,执行膝或足关节并试着转动它,这时可以发现它仅能绕 Z 轴旋转,且对 Z 旋转还有一个限制。用 Auto Joint Limit 设置可以创建一个 Hinge 关节,这种关节旋转时不会通过父关节或者说该关节弯曲不会超过 180 度。因此,和膝关节一起使用是最好不过了,如图 13-9 所示。

如果还要使足绕关节 X 或 Y 轴旋转,可以在 Attribute Editor 中进行设置。在 Joint 栏,设置 Degrees of Freedom 为 X 和 Y ,继续对 Z 轴应用关节限制,除非在 Limit Information 栏关闭 Rot Limit Z 设置。

在创建腿时一定要注意,创建的骨头间是倾斜的,而不是一条直线。因为,在骨头之间的角度决定了骨头弯曲的方式。另外,在 Maya 中默认的关节方向是由该关节与其子关节的关系决定的。是指创建一个关节时,局部坐标的 X 轴沿着骨头方向, Y 轴指向弯曲方向, Z 轴垂直于弯曲方向。执行 Display → Components Object → Local Rotation Axes 命令,可以显示出一个关节的局部旋转轴,如图 13-10 所示。

图 13-9 旋转骨骼 图 13-10 局部旋转轴

当用默认设置创建一个关节时, Z 轴旋转方向始终是指向弯曲骨头的方向, Y 轴旋转方向就是骨头从一边到另一边的旋转方向。这样,执行要创建关节的窗口就非常重要了,因此应指出要使骨头如何弯曲,然后相应地在正确的窗口中创建这些骨头。例如,模型面向前视图,则可以在侧视图中创建脊椎和腿。这样,当创建其他的骨骼时,就可以在不同的窗口观察创建关节的示例。

移动和镜像关节

用户可以使用 Move 工具移动创建的关节。如果执行一个关节并用 Move 工具移动它,该关节层级下的关节也会一起移动。如果执行 Move 工具,然后按 Insert 键显示轴心点控制器并移动该轴心点,则只要移动该执行的关节即可以。当然也可以使用 Maya 的 Skeleton 菜单中的其他工具来编辑创建的关节,通过插入、删除、连接和断开关节 —— 甚至重新创建关节。

下面用镜像来创建另一条腿,因为关节的运动与一般物体节点有区别,所以需要使用 Mirror Joint 功能对称地复制右腿,其具体操作步骤如下。

(1) 将腿层级移动到 (2 , 0 , 0) ,然后执行 Skeleton → Mirror Joint 命令。执行 YZ 作为设置,并单击 Mirror 。

(2) 试试同时旋转左、右膝盖,这两个膝盖会像彼此的镜像图像一样旋转,如图 13-11 所示。

(3) 将被镜像的关节命名为 Rleg 、 Rknee 和 Rfoot 。

在镜像关节时,旋转的限制信息应该也拷贝到被镜像的关节上,但用户也许会发现它们并未被激活。如果出现这种情况,可以选择 Attribute Editor 并激活它们 ( 在那里有这些数字信息 ) 。如果有一些 Rotate 域是灰色的但关节仍可以旋转,那么可以在 Degree of Freedom 框中双击鼠标左键以解锁。

图 13-11 同时旋转两个骨骼

如果发现关节镜像得不对,可以在另一个关节下把它们编成组,先镜像它们然后再解散它们。

建立人体其余的骨骼

下面是增加脊椎和肩部关节层级的方法,具体操作步骤如下:

(1) 进入侧视图,用默认的 Joint Tool 选项设置创建脊椎链,如图 13-12 所示。脊椎关节需要的是 Ball 关节形式。在顶视图中创建左肩骨骼链,如图 13-13 所示 ( 记住现在创建的是一个非常简单的骨骼 ) 。

图 13-12 脊椎骨形状 图 13-13 左肩骨骨链

(2) 将脊椎层级命名为 waist 、 chest 、 neck 和 head ,并将肩部层级命名为 Lshoulder 、 Larm 、 Lforearm 和 Lhand 。

(3) 在前视图中,将肩部骨骼链向上移至稍稍低于颈骨的位置。

(4) 在 Hypergraph 或者 Outliner 中,将腰以下的腿骨链编为一组,并把胸部下方的 Lshoulder 链编为一组,这时应看到像层级和图片的一些东西,如图 13-14 所示。

图 13-14 改变层级

(5) 要在肩部关节加上旋转限制,打开 Attribute Editor 并执行 Lshoulder 关节。因肩部不需要绕 X 轴旋转,因此可以在 Degrees of Freedom 设置中关闭 X 。因为要使 Larm 像 Ball 关节一样旋转,因此它的设置不改变。 Lforearm 是一个普通关节,不能绕 Y 轴旋转,因此关闭 Y ; Lhand 也是一个普通关节,不能绕 X 轴旋转,因此关闭 X 。

(6) 对这些关节和其他关节也可以设置具体的最小和最大旋转范围。下面以 Lforearm 关节为例加以说明。执行 Lforearm ,在 Attribute Editor 中打开 Limit Information 和 Rotate 属性,这时可以看到 3 个 Rot Limit 域,且 Y 旋转为灰色。选中 4 个 Rot Limit X 和 Z 框,并使 Min 和 Max 域解锁。

(7) 在顶视图中将 Lforearm 绕 Z 轴旋转。当前臂变直时,其度数大约为– 28 ,因此输入– 30 作为 Min 值,当前臂弯曲与 Larm( 胳膊 ) 重叠时,度数大约为 137 ,因此输入 130 作为 Max 值。

(8) 对于 X 旋转,假设掌心是朝下的。在这种情况下, Lforearm 应能够旋转– 90 度使掌心朝前,在起始位置旋转 45 °可以使掌心朝后。输入– 90 和 45 作为 Min 和 Max 值,如图 13-15 所示。

提示:

同样,对 Translate 和 Scale 也有限制,这个限制也许有时会用到。 Maya 还有 Rotation Limit Damping 设置,该设置允许关节在旋转限制之内或之外移动。

图 13-15 旋转限制

(9) 执行 Lshoulder 关节并镜像该关节,此时可以得到一个虽然非常简单,但是完整的人体骨骼,最后效果如图 13-16 所示。

图 13-16 人体骨骼最后效果

重定位关节的局部坐标轴。为了得到对关节如何旋转的精确控制,有必要知道如何重定位关节。譬如说在已创建的骨骼中,用轴心点操纵器将肩关节向下平移了一个单位。如果显示局部旋转坐标轴,则 X 轴不再是指向骨头中心,而是大约偏离了– 24 °。

要重定位 X 轴,可以执行 Rotate 工具并切换到组件模式。用 RM 执行问号标记按钮 ( 多重表列 ) 并选中 Local Rotation Axes 复选框,然后执行肩关节。可以在前视图旋转 Y 轴手柄直到 X 轴指向肩关节,也可以在命令行中通过输入一条 MEL 命令来输入一个精确的旋转值。例如:可以输入 rotater os 0 24 0 命令以使局部坐标围绕 Y 轴相对旋转– 24 °。

在 MEL 命令中与上述命令相关的还有 jointe oj xyz zso 命令,该命令可以自动地重定位一个关节的局部坐标。但在用这个命令时要特别小心,因为有可能会破坏对称层级的镜像特性。

骨骼制作标志着用户已进入到高级特征动画制作的领域,在 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 。

使用 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 解算器便可以弯曲该关节链了。

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

使用 IK Spline 手柄

尽管与 IKRP 、 IKSC 手柄在属性上相似,但 IK Spline 手柄在作用方式上却与它们不一样。 IK Spline 解算器以一条 NURBS 曲线作为其手柄的一部分,并且随着曲线的形状旋转 IK 链。 NURBS 曲线的 CV 被作成了动画,而不是手柄的末端受动器转成动画。对于制作诸如尾巴、脊柱、蛇或触须等类似的曲线型或扭曲型动画时, IK 曲线手柄非常理想。 C IK Spline 手柄来作动画的具体操作步骤如下:

(1) 在侧视图中建立一个关节链,如图 13-22 所示。对于 IK Spline 手柄,关节不必作成一定的角度,但骨头应该短一些,以确保链会平滑地移动。

(2) 执行 Skeleton → IK Spline Handle Tool 命令,并执行 Number of Spans 4 ,其他的选项保持为默认设置并关闭对话框。

(3) 单击顶部关节,然后单击最后一个关节,可以看到 IK Spline 手柄,如图 13-23 所示。

(4) 在 Outliner 中窗口,执行关节链或者 IK 手柄,并试着移动关节。这时关节已连接到曲线上,而且 IK 手柄并不显示操纵器。

(5) 显示 CV 并将它们在附近移动一下,如图 13-24 所示。

图 13-22 建立曲线骨骼 图 13-23 建立 IK 手柄

图 13-24 移动 IK 手柄

也可以创建自己的 NURBS 曲线并使 IK Spline 手柄使用该曲线。在 IK Spline Handle 选项组中取消选中 Auto Create Curve 复选框,然后单击根部关节和端部关节,再单击曲线以创建 IK Spline 手柄。

(6) 对 IK 手柄打开 Attribute Editor 对话框。在 Offset 、 Roll 和 Twist 文本框输入数值。

Offset( 偏置 ) 将关节链沿着曲线平移,以 0.0 作为曲线的开始,以 1.0 作为曲线的结束; Roll( 滚转 ) 则旋转整个关节链; Twist( 扭转 ) 通常从第 2 个关节处开始扭转。如果选中 Root Twist Mode 复选框,则扭转将从根关节开始扭转。在 Curve 设置上的 Root 将约束根部关节到曲线的开始。把它关掉就可以将根部关节移离曲线,但要注意根部关节还是被约束到曲线。

骨骼可以随着正向或反向运动学在一个对象的不同部分的动画进行移动和旋转。除了 IK 工具外, Maya 在 Animation 模式中还提供了 Constrain 菜单。菜单中的约束与 IK 工具一道用于动画制作。

以上就是Maya7.0 骨骼动力学之骨骼动画制作教程,希望大家这篇教程能对大家有所帮助!

点赞(544)

评论列表共有 0 条评论

立即
投稿
返回
顶部