当前位置: > 3dmax模型制作 > Maya教程 >

Maya中的"装备"Rigging介绍 - 第9部分 - 清理动画
栏目分类:Maya教程   发布日期:2019年05月09日 09:54:23   浏览次数:


  Maya中的"装备"Rigging介绍 - 第9部分 - 清理动画

在Jahirul Amin最新的Maya装备指南的帮助下,在Maya制作清洁的动画

教程资产

单击此处下载本教程附带的资产


在这个阶段,大部分动画几乎完成,很快,我们将能够尽情享受皮肤的乐趣(用沉重的讽刺说)。但是,在这样做之前,我们需要通过细齿梳子检查动画。我们需要检查我们在旋转中是否获得了正确的行为,没有任何关节翻转到位,我们还想要锁定和隐藏我们不希望动画师使用的任何属性。除此之外,我们将设置FK和IK控件的可见性,以便在启用相关模式时显示自己,并创建一个主控件(globalSRT),允许动画师将角色放置在其初始起始位置射击。最后,我们希望隐藏动画师不需要的大纲视图中的对象。这个阶段可能看起来有点平凡,
 

创建全局SRT控件

在创建globalSRT控件之前,让我们稍微整理一下Outliner。首先选择l_leg_rig_grp和r_leg_rig_grp,然后按Ctrl + G. 重命名新组leg_rig_grp。现在选择l_arm_rig_grp和r_arm_rig_grp,将它们组合在一起并重命名该组arm_rig_grp。接下来,在torso_jnt_grp下显示parent eyes_ctrl_offset,COG_ctrl_offset和spine_doNotTouch_grp。然后将torso_jnt_grp重命名为torso_rig_grp,因为这样可以更好地理解该组所拥有的内容。现在取以下4组:torso_rig_grp,leg_rig_grp,arm_rig_grp和follow_loc_grp并按Ctrl + G. 重命名这个新组rig_grp。

通过清理大纲视图来解决问题

通过清理大纲视图来解决问题

现在让我们创建globalSRT控件。我们可以为此创建一个新的形状,但相反,我只是要复制并重新使用我们已有的控件。所以选择COG_ctrl并按Ctrl + D. 然后按Shift + P从其当前层次结构中取消它的父项,然后删除它下面的所有节点。将此控件重命名为globalSRT_ctrl,然后转到“修改”>“中心轴”。打开视口网格,按住键盘上的X键以激活“捕捉到网格”,然后将其捕捉到世界的中心。在仍然选中控件的情况下,在“通道盒”中,转到“编辑”>“通道控件”,并将所有“缩放”属性设置为“可键控” 当他们弹回频道框时,按住人民币并解锁选中。现在转到“修改”>“冻结转换”,确保“转换”,“旋转”和“缩放”在选项框中都处于活动状态。要重新缩放和重新定位控件形状,请按F8,然后在组件模式下执行此操作。说实话,毕竟,创建一个全新的控件会更快!没关系。

现在使用globalSRT_ctrl并按Ctrl + G两次。将组从最顶层组globalSRT_ctrl_offset重命名,将下一组重命名为globalSRT_ctrl_auto。接下来,在globalSRT_ctrl下的父rig_grp。最后要做的是同时使用male_geo_grp和globalSRT_ctrl_offset,将它们组合在一起并将此组重命名为char_male。

global_SRT控件就位,并且大纲视图中的rig_grp是其下的父级

global_SRT控件就位,并且大纲视图中的rig_grp是其下的父级

固定肩胛骨和前臂

目前,我们对躯干和手腕旋转引起的肩胛骨和前臂有一些问题。从肩胛骨开始,我们可以通过重新修改我们之前创建的当前表达式来解决这个问题。因此,请转到Windows>动画编辑器>表达式编辑器,然后查找l_scapula_expr。您可能需要将“选择文件管理器”更改为“按表达式名称”以显示当前表达式列表。编辑表达式就像这样读,我们应该好好去:

l_scapula_ctrl_auto.rotateX = -1 * l_shoulder_ctrl.rotateZ * l_scapula_ctrl.autoScapula; 

现在这样做,是通过l_shoulder_ctrl而不是l_should_jnt来驱动肩胛骨的运动。单击编辑以更新表达式并使用以下表达式更新r_scapula_expr:

r_scapula_ctrl_auto.rotateX = -1 * r_shoulder_ctrl.rotateZ * r_scapula_ctrl.autoScapula;

最初的肩胛骨设置导致控件脱离模型

最初的肩胛骨设置导致控件脱离模型

让我们现在修复前臂扭曲。再次,打开表达式编辑器并编辑l_armTwist_expr阅读像这样:

l_upperArmTwistA_jnt.rotateY = l_lowerArm_jnt.rotateY * 0.25 
l_upperArmTwistB_jnt.rotateY = l_lowerArm_jnt.rotateY * 0.5 
l_upperArmTwistC_jnt.rotateY = l_lowerArm_jnt.rotateY * 0.75 

l_lowerArmTwistA_jnt.rotateY = l_palm_ctrl.rotateY * 0.25 
l_lowerArmTwistB_jnt.rotateY = l_palm_ctrl.rotateY * 0.5 
l_lowerArmTwistC_jnt.rotateY = l_palm_ctrl.rotateY * 0.75 

而r_armTwist_expr像这样:

r_upperArmTwistA_jnt.rotateY = r_lowerArm_jnt.rotateY * 0.25 
r_upperArmTwistB_jnt.rotateY = r_lowerArm_jnt.rotateY * .5 
r_upperArmTwistC_jnt.rotateY = r_lowerArm_jnt.rotateY *

r_lowerArmTwistA_jnt.rotateY = r_palm_ctrl.rotateY * .25 
r_lowerArmTwistB_jnt.rotateY = r_palm_ctrl.rotateY * .5 
r_lowerArmTwistC_jnt.rotateY = r_palm_ctrl.rotateY * .75 

同样,我们刚刚更换了控制器以驱动前臂扭转而不是关节。任务完成。

我要做的最后一件事是添加一些额外的属性,这些属性将允许动画师改变我们已经设置的自动扭曲功能。我将解释我如何为左臂设置它,但右臂和两条腿都采用了相同的方法。好的,首先选择l_palm_ctrl和r_palm_ctrl,然后选择Modify> Add Attribute。使用Long名称upperArmTwist创建第一个属性,数据类型为Float,最小值为0,最大值为1,默认值为0.使用相同的值,创建一个名为foreArmTwist的第二个属性。我们现在要做的是采用我们当前的表达式来创建手臂扭曲并简单地将其乘以新属性。因此,回到表达式编辑器中,编辑l_armTwist_expr以进行如下读取:

l_upperArmTwistA_jnt.rotateY = l_lowerArm_jnt.rotateY * .25 * l_palm_ctrl.upperArmTwist; 
l_upperArmTwistB_jnt.rotateY = l_lowerArm_jnt.rotateY * .5 * l_palm_ctrl.upperArmTwist; 
l_upperArmTwistC_jnt.rotateY = l_lowerArm_jnt.rotateY * .75 * l_palm_ctrl.upperArmTwist; 

l_lowerArmTwistA_jnt.rotateY = l_palm_ctrl.rotateY * .25 * l_palm_ctrl.foreArmTwist; 
l_lowerArmTwistB_jnt.rotateY = l_palm_ctrl.rotateY * .5 * l_palm_ctrl.foreArmTwist; 
l_lowerArmTwistC_jnt.rotateY = l_palm_ctrl.rotateY * .75 * l_palm_ctrl.foreArmTwist; 

测试它以确保它工作并重复右臂和腿的设置。快速说明:由于IK和FK腿的控制并不总是可见,我最终收藏了属性以驱动hip_FK_ctrl上的腿扭曲。

更新表达式以获得更理想的行为,并添加关闭和打开自动功能的功能

更新表达式以获得更理想的行为,并添加关闭和打开自动功能的功能

FK IK控制可见性

我们现在想要使用FK和IK控件的可见性,这样它们只有在我们处于该模式时才可见。我们将在这里覆盖左臂但是可以对所有肢体重复该过程。首先选择l_upperArm_FK_ctrl,l_elbow_ctrl和l_arm_IK_ctrl,然后转到Animate> Set Driven Key> Set。这应该将三个控件加载到Driven框中。然后选择fkIkSwitch_ctrl并在SDK窗口中点击Load Driver。在右上方窗口中选择L_Arm,并将f ArmI属性设置为0(FK模式),用于fkIkSwitch_ctrl。现在选择l_elbow_ctrl,l_arm_IK_ctrl并将两个控件的Visibility属性设置为0.现在,在SDK窗口的左下角框中,突出显示所有3个驱动对象,突出显示右下方框中的Visibility,并确保L Arm仍然突出显示在右上角的窗口中。设置并突出显示所有相关对象和属性后,在SDK窗口中单击Key。现在将L Arm属性设置为1(IK模式),关闭l_upperArm_FK_ctrl的可见性并打开l_elbow_ctrl和l_arm_IK_ctrl的可见性。在SDK窗口中突出显示所有相关对象和属性,然后再次按下Key。fkIkSwitch现在应该驱动左臂控制的可见性。重复右臂和腿的步骤。

使用“设置驱动键”控制FK和IK控件的可见性

使用“设置驱动键”控制FK和IK控件的可见性


重新设计IK躯干控件

这不是一个绝对必要的步骤,但有一点让我感到困惑的是躯干的IK控件的形状。目前它们是圆角正方形,而所有其他IK控件都更像盒子。因此,如果您对控件的外观感到满意,请跳过此步骤。如果你不是,这里是我如何重建控件的快速细分。我将解释如何重建hip_IK_ctrl但你可以简单地重复midSPine_IK_ctrl和chest_IK_ctrl的步骤。

首先,我复制了l_arm_IK_ctrl_offset,并从层次结构中取消了它的父级。我将这个控件层次结构从上到下重命名为:hip_IK_ctrl_offset1,hip_IK_ctrl_auto1和hip_IK_ctrl1。1只是一个临时的事情,所以它不会与当前控件发生冲突。接下来,我在原始hip_IK_ctrl下设置了hip_IK_ctrl_offset1,将翻译和旋转属性归零,使其折叠到位,然后点击Shift + P取消它的父项。然后我进入组件模式(F8)并重新控制控件的形状。然后我通过Channel Box中的Channel Control恢复了旋转属性,然后删除了2个不必要的属性,Elbow Twist和Arm Twist。

现在,在hip_IK_ctrl1(我们的新控件)下的父hip_FK_ctrl_offset。COG_ctrl下的下一个父亲hip_IK_ctrl_offset1。您现在可以删除原始臀部IK控件hip_IK_ctrl。您现在还可以删除挂在新臀部IK控件末端的1。接下来,按此顺序选择hip_IK_ctrl,hip_IK_jnt并转到Constrain> Parent。一切都应该恢复到现在的状态,你可以为midSpine_IK_ctrl和chest_IK_ctrl重复这个。

重新创建所有3个控件后,选择spine_IK并向下滚动到Advanced Twist Controls选项卡。在这里你会发现World Up Object和World Up Object 2已经消失了。只需在第一个插槽中键入hip_IK_ctrl,然后在第二个插槽中输入chest_IK_ctrl,就可以了。

重新设计IK躯干控件

重新设计IK躯干控件

整理控件属性

我要做的下一件事是检查每个控件并锁定并隐藏任何我不希望动画师使用的属性。首先选择l_knee_ctrl,r_knee_ctrl,l_elbow_ctrl,r_elbow_ctrl,然后在“通道盒”中突出显示所有旋转属性和可见性。按住RMB并进入Lock and Hide Selected。选择l_arm_IK_ctrl,r_arm_IK_ctrl,l_leg_IK_ctrl,r_leg_IK_ctrl并锁定和隐藏可见性。

转到腿部的FK控件。选择l_upperLeg_FK_ctrl,l_lowerLeg_FK_ctrl,l_ankleTwist_FK_ctrl,l_ball_FK_ctrl,r_upperLeg_FK_ctrl,r_lowerLeg_FK_ctrl,r_ankleTwist_FK_ctrl,r_ball_FK_ctrl并锁定并隐藏可见性。选择双脚的所有脚趾控件并锁定并隐藏平移,比例和可见性属性。

现在正在处理躯干,选择hip_FK_ctrl,hip_IK_ctrl,COG_ctrl,midSpine_IK_ctrl,chest_IK_ctrl,spineA_FK_ctrl,spineB_FK_ctrl,spineC_FK_ctrl并锁定并隐藏可见性。同时锁定和隐藏锁骨控制器,肩部控制器,肩胛骨,眼控器以及颈部和头部控制器的可见性。最后,对于所有FK手臂控制和手指控制,应该是锁定和隐藏可见性的情况。

锁定并隐藏您不希望动画师键入的任何属性

锁定并隐藏您不希望动画师键入的任何属性

完成 - 清理大纲

最后一轮家务是清理大纲。目前,如果您进入显示>全部显示,视口中将显示动画的许多部分,我们不希望其他人弄脏他们的手套。因此,让我们揭示一切,然后锁定并隐藏我们不希望展示的对象。首先转到“视口”菜单,然后转到“显示”>“全部”。接下来,对整个角色进行选取框选择,你会发现我们已经能够选择多个关节。如果仍然选择了这些关节,请将它们添加到我们已设置的jnt_layer中。

现在,转到显示>全部显示以显示所有内容,然后在视口菜单中隐藏NURBS曲线和多边形。再次,对整个角色进行选取框选择,这次你会注意到你选择了所有的效应器。选中这些效应器后,将可见性设置为0,然后按住RMB并转到“锁定并隐藏所选项”。创建另一个选取框选择,现在应该选择FK和IK关节。再次,关闭“可见性”属性,然后选择“锁定并隐藏选定内容”。再次重复此过程,直到您无法在视口中选择任何内容。然后,浏览大纲视图并查找您不希望看到的任何对象。我最终选择了l_hip_IK_ctrl,r_hip_IK_ctrl,所有IK控制柄,效应器,spine_CRV,反向脚的定位器,

确保必需品隐藏在“大纲视图”中

确保必需品隐藏在“大纲视图”中

 

提示:为控件添加限制

我倾向于不做的一件事是为我的控件添加限制。这是因为我喜欢让动画师自由地将动画推向极限以达到极限姿势。此外,有时你会发现在这里为一个奇怪的帧推出一个超出极限的姿势,有时可以为一个动作增加更多的活力和umph,这是向动画师提供这种自由的另一个原因。但是,如果您希望对控件添加限制,则可以通过选择控件并在“属性编辑器”(Attribute Editor)中滚动到变换选项卡(最左侧选项卡)并向下导航到“限制信息”(Limit Information)来执行此操作。

在哪里可以找到为控件添加限制的属性

在哪里可以找到为控件添加限制的属性


     
游戏模型设计 3dmax模型制作 次世代模型 游戏模型百科 游戏模型贴图