WEB开发网
开发学院图形图像Maya Maya4.0骨骼动画-骨骼动力学(2) 阅读

Maya4.0骨骼动画-骨骼动力学(2)

 2006-04-05 19:43:07 来源:WEB开发网   
核心提示:Maya4.0骨骼动画-骨骼动力学骨骼制作标志着用户已进入到高级特征动画制作的领域,在Maya中使用骨骼比较容易,Maya4.0骨骼动画-骨骼动力学(2),但也有可能变得复杂,在我们为骨骼制作动画之前,然后对关节应用Skeleton→SetPreferedAngle,删除这个已存在的IK链并创建一个新链,首先要了解动力
Maya4.0骨骼动画-骨骼动力学
骨骼制作标志着用户已进入到高级特征动画制作的领域,在Maya中使用骨骼比较容易,但也有可能变得复杂。在我们为骨骼制作动画之前,首先要了解动力学的一些属性,这对于制作好的骨骼动画至关重要。

反向运动学

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

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

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

图13-17IK手柄

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

Maya的界面有3种IK馑闫鳎?IKRP(RotatePlane)解算器,IKSC(SingleChains)解算器和IKSpline解算器,每种IK解算器都有各自的IK手柄类型。

使用IKRP手柄

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

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

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

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

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

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

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

注意:

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

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

使用IKSC手柄

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

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

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

图13-20设置IKSC手柄

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

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

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

图13-20一个IKSC手柄

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

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

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

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

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

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

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

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

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

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

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

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

提示:

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

Tags:Maya 骨骼 动画

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接