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

Maya中的"装备"Rigging介绍 - 第5部分 - 双手
栏目分类:Maya教程   发布日期:2019年05月09日 09:37:46   浏览次数:


  Maya中的"装备"Rigging介绍 - 第5部分 - 装备

Jahirul介绍如何使用书面指南和教程资产在Maya中为动画制作手。

提供了一个Maya目录(3dt_rigging),其中包含此项目中使用的所有场景文件和脚本。


在本教程中,我们通过添加关节和手的控件继续为网格创建装备。众所周知,手是身体中第二个最具表现力的部分(在脸部之后),因此我们希望确保该装备具有足够的灵活性,以便动画师能够创建各种各样的姿势。我们需要克服的一个麻烦就是让手跟随FK和IK臂链以及两个模式之间的过渡干净利落。我们还希望手动控制能够驱动前臂扭转,因此对我们当前的钻机进行一些修补。对于手指,我们将确保添加掌骨,因为这允许手创造更可信的拳头。

在我们开始使用手之前,第1步的第一部分将重新创建几个控件的形状,这些控件在视觉上让我烦恼。我要重新操作的控件是IK控制臂。他们在装备层面上没有任何问题; 他们完全按照自己的意愿行事。我只是希望他们看起来不像FK控件。如果您对装备的当前控制形状感到满意,请随意跳到第2步。

因此,手指准备就绪,让我们来看看...

恼人的控制

要重新处理IK控制臂控件,请先转到“创建”>“多边形”>“多维数据集”。激活对齐点,然后转到创建> CV曲线工具(选项)。将“曲线度”设置为1“线性”,然后单击立方体的角以创建框的轮廓。完成后按Enter键以创建类似立方体的曲线,然后删除原始多边形立方体。稍微放大曲线,使其适合手的大小,然后转到“修改”>“冻结变换”以清理转换通道。

使用CV曲线工具和点捕捉创建自定义立方体曲线

使用CV曲线工具和点捕捉创建自定义立方体曲线

要定位控件,请将新曲线置于l_arm_IK_ctrl下,然后将通道框中的转换值清零。控件捕捉到位后,选择它并按住Shift + P从IK控件中取消它。要为右臂创建控件,请复制曲线,将其置于r_arm_IK_ctrl下,将转换值清零,然后取消曲线的父项。选择原始的l_arm_IK_ctrl并在其名称末尾添加几个随机字母。这是为了阻止名字与我们的新控件发生冲突。现在选择我们的两个新控件中的第一个(左臂侧)并重命名该控件l_arm_IK_ctrl。为右臂做同样的事情。

现在l_arm_IK_ctrl_auto下的父l_arm_IK_ctrl和r_arm_IK_auto下的父r_arm_IK_ctrl。现在选择前两个IK控件并删除它们。我们现在想要用控件来控制IK控制柄。按此顺序,选择l_arm_IK_ctrl,按住Shift键选择l_arm_IK,然后选择Constrain> Point。对右侧做同样的事情。选择l_arm_IK_ctrl和r_arm_IK_ctrl后,转到“修改”>“添加属性”。将Data Type设置为Float,并将Minimum,Maximum和Default框保留为空。使用这些设置,创建以下两个属性:elbowTwist和armTwist。在仍然选中2个控件的情况下,突出显示“通道盒”中的旋转和缩放属性,按住RMB并转到“锁定并隐藏所选项”。

新创建的IK臂控制到位

新创建的IK臂控制到位

要使elbowTwist工作,请选择l_arm_IK_ctrl并转到Window> General Editors> Connection Editor。这应该将控件加载到左侧。现在选择l_lowerArm_IK_jnt并在Connection Editor窗口中点击Reload Right。现在突出显示左侧的elbowTwist(应该在底部),并在右侧突出显示旋转(打开旋转)。现在为armTwist。选择l_arm_IK并在Connection Editor中单击Reload Right。突出显示左侧的armTwist并选择右侧的扭曲。左臂完成后,重复右臂的步骤。

我想在用手开始之前快速完成的一些事情是首先为控件着色,然后重新设置肩控制的层次结构(这将在步骤2中介绍)。为此,请选择要着色的控件并打开“属性编辑器”(Ctrl + A)。向下滚动到“显示”并打开“绘图覆盖”选项卡。启用“启用覆盖”并从“颜色”滑块中选择适当的颜色。

将IK控制器控件的属性重新连接到IK控制柄

将IK控制器控件的属性重新连接到IK控制柄

创建手掌关节

目前,旋转躯干控制并不能完全让我从肩膀上获得结果。要解决此问题,请首先选择l_shoulder_ctrl_offset和r_shoulder_ctrl_offset,然后按Shift + P从chest_IK_ctrl中取消它们。现在选择spineF_IK_jnt,Shift-select l_shoulder_ctrl_offset并转到Constrain> Parent。重复右臂的步骤,然后我们可以移动到手上。

选择l_armEnd_jnt并按Ctrl + D复制它,然后按Shift + P使其退出当前层次结构。重命名关节l_palm_jnt,然后选择该关节,按Ctrl + D复制它。重命名新关节l_palmEnd_jnt并沿Y轴平移(确保在执行此操作时将转换模式设置为Local)。现在l_palm_jnt下的父l_palmEnd_jnt。

现在让我们为手创建低分辨率几何体。选择主网格并复制它。在脸部模式中,选择除手部以外的所有脸部,然后将其删除。将此几何体重命名为l_hand_proxy_geo,然后将该几何体置于l_palm_jnt下。

手掌控制到位,低分辨率网格是它的主要部分

手掌控制到位,低分辨率网格是它的主要部分

创建掌控

要创建手掌控件,请打开脚本编辑器,加载createControls.py并将以下行添加到脚本的末尾:

cmds.pointconstraint(ctrl,s,mo = 0)

选择l_palm_jnt,然后执行脚本以创建控制。关节的点和方向都受到控制的约束。现在在CV模式(F8)中编辑控件,使其更容易选择。

将额外的行添加到脚本中以指向和控制掌纹关节的约束

将额外的行添加到脚本中以指向和控制掌纹关节的约束

要掌握创建前臂扭曲,打开表达式编辑器(Windows>动画编辑器)并修改l_armTwist_expr的底部部分,如下所示:

l_lowerArmTwistA_jnt.rotateY = l_palm_jnt.rotateY * .25; 
l_lowerArmTwistB_jnt.rotateY = l_palm_jnt.rotateY * .5; 
l_lowerArmTwistC_jnt.rotateY = l_palm_jnt.rotateY * .75; 

现在选择l_palm_jnt,打开“属性编辑器”并将“旋转顺序”设置为YZX。将l_palm_ctrl的旋转顺序也设置为YZX。

编辑l_armTwist_expr以使手掌关节驱动前臂扭曲

编辑l_armTwist_expr以使手掌关节驱动前臂扭曲

将手连接到手臂

创建2个定位器(Create> Locator)并将它们重命名为l_arm_FK_con和l_arm_IK_con。选择l_arm_FK_con并按Ctrl + G将其分组到自身。将此组重命名为l_arm_FK_con_offset,然后对l_arm_IK_con执行相同操作。现在选择l_arm_FK_con_offset和l_arm_IK_con_offset并将它们放在l_palm_ctrl下。将通道框中的平移和旋转属性清零,使它们对齐,然后按Shift + P取消它们的父项。要使定位器更容易选择,请选择它们并增加通道盒中的局部比例X,Y和Z(您将在SHAPES下找到此设置)。

现在按以下顺序选择:l_arm_FK_con,l_arm_IK_con,l_palm_ctrl_offset并转到Constrain> Parent。现在按以下顺序选择:l_armEnd_jnt,l_arm_FK_con并转到Constrain> Point,然后选择Constrain> Orient。然后按以下顺序选择:l_armEnd_jnt,l_arm_IK_con并转到Constrain> Point。现在手应该跟随FK和IK臂。我们现在想要使用Set Driven Key来控制它应遵循的臂链。

定位器允许手跟随手臂,并编辑局部比例以增加定位器的大小

定位器允许手跟随手臂,并编辑局部比例以增加定位器的大小

通过Animate> Set Driven Key> Set打开SDK窗口,选择fkIkSwitch_ctrl,点击Load Driver。然后选择位于l_palm_ctrl_offset下的parentConstraint节点并点击Load Driven。然后在fkIkSwitch_ctrl和parentConstraint节点上将L Arm属性设置为0(FK模式),将L Arm FK Con W0设置为1并将L Arm IK Con W1设置为0.在SDK窗口上按下Hit键。现在将fkIkSwitch_ctrl设置为1(IK模式)并在parentConstraint节点上,将L Arm FK Con W0设置为0并将L Arm IK Con W1设置为1.再次在SDK窗口上按下Hit键。现在手掌应该在FK和IK模式下正确地跟随手臂。

现在让我们快速整理一下大纲。首先,让我们将l_arm_FK_con和l_arm_FK_con_offset重命名为l_palm_FK_con和l_palm_FK_con_offset,因为这更有意义(对IK集做同样的事情)。然后,选择l_palm_FK_con_offset和l_palm_IK_con_offset并按Ctrl + G. 将此组重命名为l_palm_con_grp。

使用SDK窗口让手跟随FK或IK臂

使用SDK窗口让手跟随FK或IK臂

创建指关节

要创建手指关节,请弹出“顶视图”并激活“骨架”>“关节工具”。从食指开始,绘制一条从关节掌骨所在的根部开始的5关节链,然后在每个关节处,最后在手指的尖端。不要过分担心他们的立场,因为我们接下来会纠正这个问题。如果绘制的关节非常大,请使用“通道”框中的“半径”使其变小。

现在选择链的根关节并将其转换为手形几何体。在仍然选择了根关节的情况下,转到Skeleton> Orient Joint Tool(选项)。将Primary Axis设置为Y,将Secondary Axis设置为X,将Secondary Axis World Orientation设置为X(+)。应使用正X旋转创建屈曲。现在使用“属性编辑器”中的“关节”方向和“平移Y”属性(关节长度)的组合将关节定位到位。请记住检查所有旋转通道的值是否为零,所有子关节的平移X和Z通道也是如此。根关节可以在所有翻译通道中具有值。对于手指和拇指的其余部分重复此步骤。请注意,拇指是一个4关节链,因为它的骨骼比手指少一个。尝试并定向关节,以便当使用旋转X属性旋转它们时,它们会创造一个漂亮的拳头,手指整齐地组合在一起。分析你自己的手从默认姿势到拳头,这样做是为了告知你如何定位关节。

使用关节东方和平移Y来定向和定位手指关节到位

使用关节东方和平移Y来定向和定位手指关节到位


 


创建低分辨率网格

要切割几何体,请选择相关面,然后在“多边形”菜单中选择“网格”>“提取”。选择多边形的一种有用方法是使用<和>键增大和缩小当前选择。切割几何体后,选择所有几何体并转到“编辑”>“按类型删除”>“历​​史记录”,并从其当前层次结构中取消它。

使用“网格”>“提取”工具创建低分辨率几何体

使用“网格”>“提取”工具创建低分辨率几何体

重命名网格和关节

现在来了无聊的部分。我们需要仔细检查关节和几何体。一个脚本会在这样的时候派上用场,有很多你可以从creativecrash中获取这样做。现在,我只是手动完成。以下是食指关节和网格的命名细分。

对于从根到尖端的食指关节链:
l_indexA_jnt,l_indexB_jnt,l_indexC_jnt,l_indexD_jnt和l_indexEnd_jnt 

对于从根到尖端的食指几何:
l_indexA_proxy_geo,l_indexB_ proxy_geo,l_indexC_ proxy_geo,l_indexD_ proxy_geo和l_indexEnd_ proxy_geo

只需用手指名称替换索引的其余手指重复此操作:中间,环形,小指和拇指。标记完所有内容后,在相关关节下绘制相关的几何体。

重命名手指关节和低分辨率几何体

重命名手指关节和低分辨率几何体

创建手指控件

我们将使用createControls.py脚本为手指创建控件,但首先我们需要删除在步骤3中添加到脚本中的额外行,因为我们只对约束方向感兴趣。删除线后,选择所有手指关节(减去末端关节)并执行脚本。如果控件在创建时相当大,请撤消刚刚执行的操作并减小脚本第16行的半径(r = 1.25)。重新执行脚本,希望你会有更易于管理的东西。点击F8进入组件模式并重新设置控件形状,使其更容易选择。

稍微修改createControls.py脚本以更改控制曲线的大小

稍微修改createControls.py脚本以更改控制曲线的大小

现在我们需要使用我们的控件创建父子层次结构,以模仿关节的FK行为。我将描述食指的过程,但你可以简单地重复其余手指的过程。所以,l_indexC_ctrl下的第一个父l_indexD_ctrl_offset。然后在l_indexB_ctrl下面显示父l_indexC_ctrl_offset。父l_indexA_ctrl_offset下的父l_indexB_ctrl_offset。一旦设置了所有手指控制层次结构,选择所有l_“finger”A_ctrl_offset节点并将它们全部置于l_palm_ctrl下。接下来做的最后一件事是在l_palm_jnt下的所有指关节链,所有的东西应该是非常好的去。

食指控制的层次结构

食指控制的层次结构

清理手控件

首先使用“绘图覆盖”属性对所有手指控件进行颜色编码。然后在左手几何体上添加一个着色器(绿色Lambert),以便清楚它是左侧。在此之后,选择所有手指控件和手掌控件,并在“通道盒”中突出显示所有平移和缩放属性。按住RMB并选择Lock and Hide。

现在在Outliner中,选择l_arm_IK_ctrk_grp,l_arm_rig_grp,l_shoulder_ctrl_offset,l_palm_jnt,l_palm_ctrl_offset和l_palm_con_grp并按Ctrl + G. 重命名组l_arm_rig_grp并对右臂执行相同操作。

重复右臂的步骤,你应该有2个工作的手。我们稍后会回到手中,让动画师为手指创造大动作。下一次,我们会打腿。

快乐的装备。

控件着色并且Outliner清理完毕

控件着色并且Outliner清理完毕

 

提示:获得实践经验

我总是建议在点击计算机之前分析真实的东西。然而,特别需要一些人密切关注,因为它是情感和情感的重要沟通者。通过观察皮肤下方,您对关节表达方式的了解将获得更好的信息,从而获得更可信的CG工作。


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