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

Maya中的"装备"Rigging介绍 - 第11部分 - 纠正混合形状
栏目分类:Maya教程   发布日期:2019年05月10日 09:05:04   浏览次数:


 Maya中的"装备"Rigging介绍 - 第11部分 - 纠正混合形状

 

Jahirul Amin提供逐步指导,以便在Maya中添加校正混合形状


教程资产

单击此处下载资产以配合本教程的最后3部分

在本教程中,我们将在之前的皮肤上添加校正混合形状。混合形状将使我们能够比单独剥皮所能进一步推动变形。然而,在添加混合形状之前,必须尽可能精细地剥皮,以便为您的额外工作提供合理的基础; 矫正混合形状不是过度仓促皮肤的解决方案。

为了加快创建校正混合形状的过程,我们将使用2个脚本:Brendan Ross的abSymMesh.mel脚本和Christian Breitling的BSpiritCorrectiveShape.mel脚本。我要感谢Brendan和Christian允许我使用并提供本教程的脚本,在大多数情况下,我们将使用一般的Maya工具来重新构建姿势,但我还将演示如何使用Mudbox来帮助完成这个过程。Maya加上脚本或插件的使用工作正常,但有时我发现使用Mudbox或ZBrush提供的雕刻工具更容易纠正姿势。


使用脚本

在开始之前,我只想简要介绍一下自上次以来我所做的一些改变。首先,我从裤子中删除了历史记录(编辑>按类型删除>历史记录),这将依次杀掉Wrap Deformer。在这个时候使用Wrap Deformer没有任何问题,我只是想让场景尽可能轻松。我可以随后添加它,或者我甚至可以考虑使用布料设置来增加裤子的可信度。我还花了一个多小时左右,通过使用“Weight Hammer”工具将一些讨厌的顶点推回形状来精炼主网格的重量。

现在快速解释我们将使用的2个脚本。第一个脚本是Brendan Ross的abSymMesh.mel脚本。只需单击一个按钮,此脚本将允许您构建对称的混合形状,检查您的模型是否对称等等。以下是有关如何运行和使用脚本的快速细分。在脚本编辑器(窗口>常规编辑器)中,创建一个新的MEL选项卡(Ctrl + T> MEL),转到文件>加载脚本,然后选择abSymMesh.mel。(您可以在本教程提供的项目目录中的Scripts文件夹中找到它)。加载脚本后,按Ctrl + A突出显示所有文本,然后按Numpad上的Enter键以获取脚本。现在在脚本的第二行突出显示单词'abSymMesh',然后在Numpad上按Enter键以创建GUI。如果你喜欢,你也可以MMB-将突出显示的文本(abSymMesh)拖到一个Shelf上,这样你就不再需要弹出脚本编辑器来运行它了。我们将在后面创建校正混合形状时介绍如何使用该脚本。

下一个脚本是Christian Breitling的BSpiritCorrectiveShape.mel脚本。这个工具将允许我们将网格构造成一个有问题的位置,在该有问题的姿势中雕刻修正修复,然后通过一些顶点魔法,它将提取绑定姿势的顶点和已受影响的顶点之间的差异,以创建纠正姿势。希望我已经清楚地解释过,如果没有,请查看视频,它将为您提供脚本功能的更好示例。将BSpiritCorrectiveShape.mel脚本加载到脚本编辑器中的MEL选项卡中,突出显示所有文本,然后按Numpad上的Enter键以获取它。要运行此脚本,我们需要选择2个网格(校正姿势和原始姿势),然后我们需要运行'BSpiritCorrectiveShape'命令。如果你喜欢,你也可以MMB-将这个命令拖到Shelf上,以加快运行脚本的过程。在学习本教程时,将更全面地解释该过程。
 

我们将在本教程中使用的两个脚本可以加快创建校正混合形状的过程

我们将在本教程中使用的两个脚本可以加快创建校正混合形状的过程


纠正手腕 - 屈曲

为了将网格构成陷入困境的姿势,我将只使用FK控件。这将允许我隔离给定关节的哪个旋转轴创建姿势,因此可以用于驱动矫正修复。在手腕的情况下,主要是当我创建屈曲和伸展(旋转Z)时,我们似乎在该区域中失去了体积。因此,首先在Z轴上旋转l_palm_ctrl -70度,然后按Ctrl + D与该姿势中的角色复制网格。选中复制的网格后,突出显示所有平移,旋转和缩放属性,按住RMB并解锁选中。您现在应该能够将复制的网格转换回来,使其不会位于原始网格的顶部。

现在推拉顶点以校正姿势。我倾向于使用简单移动顶点的组合,主要是激活软选择(在键盘上按B键激活/停用)或使用您将在Mesh下找到的Sculpt Geometry Tool。在“雕刻几何体工具”上设置“放松”或“平滑”操作是平滑或平滑特定区域中面部的好方法。

一旦您对纠正修复感到满意,请按以下顺序选择:修正形状修复,然后是原始网格并运行“BSpiritCorrectiveShape”命令。一旦它完成了它的魔力,就应该创建一个新的几何体,这将是我们将作为混合形状应用的模型。删除我们最初复制的网格以创建更正修复,然后重命名新创建的网格l_wrist_rZm70。我之所以称之为我的原因是因为这会告诉我这是左手腕(l_wrist)的矫正问题,我在Z轴上旋转了它(rZ)并且旋转值是-70(m70) )。如果您愿意,可以提出自己的命名约定,但我发现这对我有用。现在选择了l_wrist _rZm70,按Shift + P将其从层次结构中的当前位置取消父级。

原始手腕姿势并使用软选择来矫正手腕

原始手腕姿势并使用软选择来矫正手腕


镜像矫正形状

要为右手掌创建校正等效物,请复制l_wrist _rZm70并将其重命名为r_wrist _rZm70。运行abSymMesh.mel脚本以加载我们将用于镜像校正姿势的GUI。如果还没有,请选择male_geo(确保它返回默认姿势)并单击abSymMesh GUI上的Select Base Geometry按钮。完成魔法后,选择r_wrist _rZm70并点击Flip Selected按钮。您现在应该有2个矫正修复,每个手腕一个。

使用abSymMesh工具创建右侧修正形状

使用abSymMesh工具创建右侧修正形状


应用混合形状

按此顺序选择2个校正形状修复,然后选择male_geo(默认网格)。选择要将混合形状应用到最后的对象非常重要。选中所有3个网格后,转到创建变形器>混合形状(选项)。调用BlendShape节点的“correctives”,然后切换到“高级”选项卡。重要的是我们将Deformation顺序设置为Front of chain或Parallel(我选择了Front of chain),因为我们希望在skinCluster工作之前执行混合形状。设置完这些选项后,点击“创建”。如果现在选择male_geo,现在将在Channel Box或Attribute Editor中的INPUTS下找到“correctives”节点。打开该节点,您将拥有0到1的属性来驱动每个校正形状。如果校正网格仍在场景中,您还可以根据需要更新修正,然后将其传播到“校正”混合形状节点。要求动画师打开“校正”混合形状节点并为校正形状设置动画将会有点多,所以稍后我们将它们连接起来,由Set Driven Keys驱动。

将修正混合形状应用于我们的蒙皮网格

将修正混合形状应用于我们的蒙皮网格


纠正手腕 - 延长

继续,让我们为手腕的延伸创建一个矫正形状。选择l_palm_ctrl并将“旋转Z”设置为100,复制网格并解锁复制网格的变换属性。将复制的网格翻译回来,使用您想要的任何工具,为手腕增加更多的体积。在这里,我再次使用Move工具和Soft Selection打开的组合以及Sculpt Geometry Tool。

如果您对修复感到满意,请按此顺序选择; 复制的网格,默认网格并运行'BSpiritCorrectiveShape'命令。删除先前复制的网格并重命名新形状l_wrist_rZ_p100。现在复制l_wrist_rZ_p100并将其重命名为r_wrist_rZ_p100。再次使用abSymMesh工具,选择r_wrist_rZ_p100并点击Flip Selected。

使用Sculpt几何工具在手腕上工作

使用Sculpt几何工具在手腕上工作


使用SDK来驱动混合形状

我们现在想要将我们额外的校正混合形状添加到现有的混合形状节点。选择两个校正形状,然后选择male_geo网格,这次选择编辑变形器>混合形状>添加(选项)。启用“指定”节点并确保“现有节点”设置为“更正”。点击Apply和Close,您会发现2个新的混合形状已添加到'correctives'节点。

我们现在将使用Set Driven Keys来驱动混合形状。在大多数情况下,我将使用关节的旋转来驱动混合形状,但不时地,我将使用控件驱动它们。我尝试让关节驱动混合形状,有时你可能有多个控制驱动关节。例如,FK臂控制和IK臂控制都驱动臂关节。因此,您需要两组控件来在需要时驱动混合形状。通过由关节驱动混合形状,我们知道我们不需要担心哪个控制触发了纠正修复。

选择male_geo并从Channel Box中的INPUTS堆栈中选择'correctives'节点,然后转到Animate> Set Driven Key> Set。这应该将“correctives”节点加载到SDK窗口的Driven部分。现在选择l_palm_jnt并点击SDK窗口中的Load Driver按钮。确保每个控件的所有旋转属性都返回0,混合形状也为0.现在,在SDK窗口的右上方框中,突出显示Rotate Z; 在左下角的窗口中,突出显示修正,在右下方窗口中,突出显示l_wrist_rZ_m70和l_wrist_rZ_p100。突出显示所有内容后,点击SDK窗口上的Key以设置默认姿势。现在旋转l_palm_ctrl(这将驱动关节)并将Rotate Z属性设置为-70。在“correctives”节点上,将l_wrist_rZ_m70设置为1。从SDK工具右下角的窗口中取消突出显示l_wrist_rZ_p100(保留其他所有内容),然后按Key键。现在在l_palm_ctrl和'correctives'节点上将Rotate Z属性设置为100,将l_wrist_rZ_p100设置为1.返回SDK窗口,这次突出显示l_wrist_rZ_p100并取消突出显示l_wrist_rZ_m70。再次点击SDK窗口上的Key。

使用l_palm_ctrl,在Z轴上旋转手掌以测试是否触发了形状。您可能会注意到,在进入矫正姿势时会有一些缓解和缓解。这是因为我们的默认动画首选项设置为自动或样条曲线。要解决此问题,请选择“更正”节点,然后转到Windows>动画编辑器>图形编辑器。在这里,您将找到我们刚刚为手腕创建的Set Driven Keys的动画曲线。你可以在这里编辑动画曲线; 我将它设置为线性以获得更令人满意的过渡,因为它击中了目标姿势。您还可以使用SDK窗口添加额外的中间姿势,或者通过在“曲线图编辑器”中添加额外的按键来更好地控制手腕进出矫正姿势的方式。对右手掌重复相同的操作。

在移动到上臂然后转向肩膀之前,我们需要做一些育儿,这样我们的关节就不会继承任何额外的旋转值,而这些值似乎正在进行。例如,如果旋转上臂控件,您会注意到l_palm_jnt继承了一些值。幸运的是,这是一个简单的修复。首先,l_armEnd_jnt下的父l_palm_jnt和r_armEnd_jnt下的r_palm_jnt。然后在spineF_IK_jnt下将l_shoulder_jnt和r_shoulder_jnt作为父项。当我们在这里时,让我们在hip_FK_jnt下同时使用l_upperLeg_jnt和r_upperLeg_jnt。

使用设置驱动键来驱动手腕的矫正形状

使用设置驱动键来驱动手腕的矫正形状


创建二头肌凸起

对于二头肌,我在X轴上旋转了l_lowerArm_FK_ctrl 100度。然后我复制了网格,解锁了变换属性,并再次使用基本的Maya工具为二头肌添加一个轻微的凸起并保持肘部创建的形状。在大多数情况下(取决于网格的分辨率),您应该能够在Maya中修复姿势。不时地,我发现更容易将网格划分为雕刻包,例如Mudbox或ZBrush,并利用雕刻工具推送和拉动表单。

在从Maya导出网格之前,请确保将复制的网格上的Translate值清零。当我们将矫正网格从Mudbox带回Maya时,这将阻止它吓坏。返回默认位置后,转到File> Export Selected并将其另存为OBJ文件。打电话是你现在喜欢的。我叫它l_elbow_rx100。

使用Sculpt Geometry Tool处理二头肌凸起

使用Sculpt Geometry Tool处理二头肌凸起


使用Mudbox和Maya来校正形状

现在在Mudbox中,转到文件>打开并加载导出的OBJ文件。我倾向于用于矫正姿势的主要雕刻工具是Grab,Wax,Fill,Pinch和Bulge画笔。在这个阶段,我通常会看到大量的参考资料,更重要的是,将我自己的身体置于姿势(如果可能的话),让我知道如何推动表格。如果您想要非破坏性地工作,可以在修复矫正姿势时使用“雕刻图层”。要创建新的雕刻图层,请在“图层”窗口中单击带有绿色十字图标的白纸。

对结果感到满意后,切换到“选择/移动工具”选项卡,然后选择“对象”工具。选择网格并选择File> Export Selected并将其另存为OBJ文件。我调用了网格l_elbow_rx100fix。现在返回Maya并导入更新的网格。导入网格时,您可能会弹出一些关于多个组的消息等等。只需单击“确定”到此窗口,然后弹出“大纲视图”并删除已创建的额外集。但请确保不要删除male_bind_set。如果需要,请继续使用Maya中的工具优化姿势。

准备好后,选择更正的姿势,shift-select male_geo并运行'BSpiritCorrectiveShape'命令。重命名新形状l_elbow_rX_p100并删除我们从Mudbox导入的网格。复制l_elbow_rX_p100,将其重命名为r_elbow_rX_p100,然后再次使用abSymMesh工具创建右手修正修复。选择2个新的校正混合形状,然后选择male_geo并选择Edit Deformers> Blend Shade> Add。使用我们之前使用的相同设置将它们添加到“correctives”节点。最后,抓住我们到目前为止创建的所有混合形状,按Ctrl + G将它们组合在一起,然后将该组重命名为correctives_geo_grp。

使用Mudbox雕刻二头肌凸起的形状

使用Mudbox雕刻二头肌凸起的形状


驱动二头肌隆起

就像我们为手腕做的那样,我们将使用SDK来驱动混合形状。为了驱动二头肌凸起,我使用l_lowerArm_jnt作为Driver对象,使用Rotate X属性作为驱动程序。我不会在这里详细介绍设置密钥等,因为它与步骤6中介绍的工作流程相同。

再次使用Set Driven Keys来驱动校正形状

再次使用Set Driven Keys来驱动校正形状

我添加的一件事是额外的混合形状,给我一个更大的二头肌凸起。我增加额外凸起形状的原因是我们可以在手腕旋后期间产生二头肌的完全肿胀。我决定不使用SDK来驱动这种形状,因为我想让动画师手动驱动这个校正形状。稍后,我可能会将其连接到动画师打开和关闭的自定义属性。

 

提升导致二头肌完全收缩

提升导致二头肌完全收缩


伸展手臂

继续前进,我想在手臂伸展时为肱三头肌增加一些收缩。使用l_lowerArm_FK_ctrl,我通过将X轴旋转-20来摆放手臂。然后我复制了网状物,在肱三头肌上添加了一些体积,并重复了与二头肌和手腕相同的工作流程。为了驱动三头肌矫正形状的混合形状,我使用了l_lowerArm_jnt的旋转X轴,然后再次使用了右侧的旋转X轴。

使用Set Driven Keys驱动三头肌隆起

使用Set Driven Keys驱动三头肌隆起


肩部的矫正形状

现在我们来到肩部区域。我倾向于在这个区域创造很多混合形状,因为总会有很多。在肩膀上工作时,上臂和肩膀之间存在很强的关系也很重要,而且很多时候,你必须在两个部位协同工作时保持平衡。首先,我降低上臂并将它们提升到水平位置,为两个位置创建校正形状。然后我将上臂向前,然后向后。在这个阶段,我主要关心的是保持该区域的体积并减少手臂穿透胸部的量。然后我专注于抬高肩膀,从而使胸部向内和向上。在此之后,我将肩部向后旋转并在背部增加一些体积。驱动形状,

使用多种校正混合形状校正肩部和背部的区域

使用多种校正混合形状校正肩部和背部的区域


躯干和腿部的矫正形状

在这个阶段,手臂应该接近完成。接下来,我们应该为躯干,骨盆区域和小腿添加一些矫正混合形状。对于躯干,我主要集中在侧向倾斜时增加一些压缩。

在侧向倾斜期间向躯干施加压力

在侧向倾斜期间向躯干施加压力

当大腿抬起时,我去镇上整理骨盆区域,软化我们可怕的折痕。最后,我通过增加矫正形状来清理小腿,以减少小腿穿透大腿的量。

 

整理腿部的结果

整理腿部的结果

同样,我在这里没有详细说明,因为前面的步骤已经介绍了该过程。在这个阶段,我并不太担心添加每个校正姿势,因为我们总是可以在动画过程中添加更多。当我们为角色设置动画时,我们还会发现我们可能需要为特定姿势构建自定义修正形状,但下次我们简要介绍参考时,我们将更详细地介绍这一点。直到那时,快乐的矫正形状建设。

用矫正姿势清理膝盖后部

用矫正姿势清理膝盖后部


创建对称网格

在这篇技巧文章中,我将快速介绍如果网格存在一些不对称性,如何使网格对称。由于我们的网格没有干净的UV或纹理,因此这应该非常简单。如果已经创建了UV,我们可以做类似的事情,只有我们需要执行一些额外的步骤来将UV从旧网格复制到新网格。

首先,复制您想要对称的网格。在我们的例子中,这将是male_geo。现在,删除网格的一半,从中间选择所有顶点,然后在X框中弹出0以进行绝对变换。现在复制网格,将-1插入Scale X属性以镜像复制的网格。选择2个半部分,然后选择Mesh> Combine。现在选择网格中心的所有顶点,然后选择编辑网格>合并顶点。现在,在网格中心下方会出现硬边缘。要摆脱硬边缘,请选择网格并转到法线>柔化边缘。使用abSymMesh工具检查对称性,希望一切都应该是hunky dory。

确保沿X轴的顶点完全居中

确保沿X轴的顶点完全居中

我们接下来需要做的就是为新网格设置外观,然后复制皮肤权重。首先选择male_bind_set中的所有关节,然后按住Shift键选择新的对称网格。现在去Skin> Bind Skin> Smooth Bind并使用我们为初始绑定所做的相同设置。现在我们要将皮肤重量从不对称网格复制到新的对称网格。为此,首先选择旧网格,按住Shift键选择新网格,然后选择“蒙皮”>“编辑平滑蒙皮”>“复制蒙皮权重”。默认设置应该很好。删除不对称的网格,你应该好好去。


使用abSymMesh工具检查模型的对称性

使用abSymMesh工具检查模型的对称性

 


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