在教程的这个部分中,您将学习通过调整装备骨骼顶点的相关“权重”设置来改进蒙皮,确定装备动画如何影响角色网格。您将从脚部开始,先处理角色的下半部分。
设置课程:
本场景中包含已蒙皮并且设置好动画的 Emma 角色,而且正确的链接已就位,装备也处于隐藏状态。
开始为角色蒙皮:
角色网格将变成灰色,除了在当前骨骼对象附近有一个颜色渐变。该渐变表示分配给该骨骼的蒙皮顶点的权重。
“权重”这个术语稍后会予以解释。
将命令面板的左边缘向左拖动可以将它扩展为两个列。
骨骼显示为末端有顶点的直线。
以下为一些有关蒙皮修改器工作方式的背景信息。向蒙皮添加骨骼时,修改器会检查所要应用的网格,然后根据邻近程度将各个顶点自动分配到一或多个骨骼。它也会为分配到顶点的各个骨骼计算一个权重值,来指定骨骼的运动对顶点的影响程度,这同样也是基于邻近程度的。如果一个顶点靠近某个骨骼,但与其他骨骼的距离则相对较远,则它分配到该骨骼时所带的权重值为 1.0(表示 100%)。换而言之,这个顶点仅对该骨骼的运动做出响应,并且其运动的方向和距离与该骨骼一致。
如果一个顶点与两个骨骼的距离相同,但与其他骨骼的距离较远,蒙皮会将这两个骨骼分配给该顶点,并且每个骨骼的权重值为 0.5,也就是该顶点的 50%。在这种情形中,两个骨骼的运动对该顶点的影响是相当的。如果只有其中一个骨骼运动,则顶点会在该方向上移动一半的距离。这就是蒙皮修改器如何来协调弯曲节点(如膝部和肩部)附近角色网格的运动。
突出显示的骨骼的权重值默认会以渐变的形式显示在网格上,红色代表高的值,逐渐降低为橙色、黄色、绿色,而蓝色则为最低的值。顶点使用相同的色彩方案;由于要在顶点级别上调整权重,通常最好将视口设置为“真实 + 边面”显示模式(用 F4 键切换)或线框模式(用 F3 键切换)。(如果您使用的是 Direct3D 或 OpenGL 显示驱动程序,则“平滑 + 高光”的效果与“真实”的效果相当。)
蒙皮修改器会附带通过在各个骨骼附近创建一个“封套”来确定一个或多个骨骼会影响哪些顶点;封套是胶囊形状的 3D 体积,您可以进行交互式编辑,在较高的级别上调整顶点权重。然而,调整个别顶点或顶点组的权重值会让您更好地进行控制。这是游戏开发工作室等专业环境中更为常见的做法,因而也是本教程重点阐述的。这个方法可能会更费力,但可以比较快地得到最佳的结果。
但不要出错:为角色蒙皮是一项注重细节的任务,需要许多的实验和反复试验,并有充分的耐心才能做好。本教程的宗旨是演示大致的过程,因此详细描述每个步骤是不切实际的。换句话说,我们无法向您精确地演示每一个步骤,而只能提供指导和示例;其他的则要靠您自己。
我们不会一直提醒您,但在执行为角色蒙皮等复杂任务的期间,增量式地保存您的工作是非常重要的,这样您就可以在出现问题时返回到前一个版本。
检查一些蒙皮修改器选项:
您要编辑顶点的权重,具体是通过更改其与特定骨骼有关的权重值。为了执行该操作,顶点必须已分配到两个或更多的骨骼,这是因为权重是一个相对的值。举例来说,如果一个给定顶点对骨骼 A 的权重值为 0.6,并且对骨骼 B 的权重值为 0.4,则骨骼 A 的运动对顶点运动的影响要比骨骼 B 多一半。每个顶点的权重值的总计必须始终等于 1.0。因此,在使用此方法为角色蒙皮时,您需要知道一个顶点分配给了哪个或哪些骨骼,以及所有顶点-骨骼分配的权重值。
例如,在本教程中可以先从左腿开始,从脚部骨骼向上处理,然后再将顶点设置镜像(复制并翻转)到右腿上对应的顶点。您始终都可返回到前面修改任何位置的权重,但如果在任何给定的时间将重点放在特定的区域上,您的工作会最有效率。
在选中前臂骨骼并且关闭“不显示封套”时,视口中会显示胶囊形状的内部和外部封套。
我们简要说明一下,每个封套由两个同轴的胶囊形体积组成;内部体积中的顶点会完全受到该骨骼的影响,而在内部体积外面和外部体积里面的顶点的权重会加速减小。选择一些不同的骨骼,查看其封套,然后再重新打开“不显示封套”。
使用封套是在蒙皮中设置顶点权重一种相对不成熟的高级方法,主要用于节省为相对简单的骨骼和网格设置进行蒙皮时所耗费的时间。
“显示有色面”为启用状态;您已见识过它的作用了。
“明暗处理所有权重”启用时,整个网格的权重都可见,而不仅限于选定的骨骼。
这不是本教程中我们想要的,所以请将它关闭。
停用封套显示,会造成无法在视口中选择骨骼。
开始调整顶点权重:
此设置默认为关闭,但调整顶点权重时需要启用此设置;因此在启动采用本教程所述方法的蒙皮会话前,请务必先将它打开。
“伸展”动画是从脚部开始的,再向上运动身体;因此在调整蒙皮时也遵循同样的过程。
从左到右:小腿、脚踝和脚趾的骨骼都已选中。
以选中 EmmaRigLAnkle 结束。其明暗处理(橙色、黄色和蓝色)表示该骨骼的大部分顶点权重都小于 0.5,这不是我们想要的。
这是区域选择一组具有任意轮廓连续顶点组的最佳工具。
由于“背面消隐顶点”复选框已取消选中,这同时也会选中您对面的大多数顶点。根据视角和您所拖动的区域,可能有一些顶点没有选中。为确保选中所有的脚部和脚踝顶点, 请环绕模型进行复查。将遗漏的顶点添加到选择中,并删除任何不应选中的顶点。
要撤消环绕,请按 Shift+Z。
“绝对效果”是绝对的权重设置。
作为权重设置更改的视觉结果,整个脚部会变为红色。如此您可以知道,其他的骨骼都不能影响这些顶点。
您可以通过滑动动画的滑块,来确认脚趾的动画不再影响脚部网格。接下来将修复此问题。
脚部变为灰色,表示对这个骨骼没有任何权重,但可在胫部看到一些蓝颜色,这表示在这个区域存在脚趾不应该有的影响。
这将从脚趾骨骼的影响范围中去除剩余的腿部顶点。
接下来,您要将脚部正面的顶点恢复到脚趾骨骼的影响范围内。
选定的定点和周围的网格变为红色。现在您滑动动画滑块时,与右脚相比,脚趾骨骼的有权重顶点和无权重顶点之间的分隔已经很明显了。在弯曲度最大时(大约第 10 帧),第四根鞋带(无权重)处于第三根鞋带的正下方。如果选中脚踝骨骼,您可以看到脚正面和背面的权重之间没有任何过渡。
解决这个问题的方法是,通过为这两个骨骼之间的顶点分配权重来创建脚中部的过渡。
现在您滑动滑块,过渡效果变好了。但是,最上面的鞋带太低了。
在拖动时,您会看到鞋带会由于脚踝骨骼影响的增加而向上移动。在大约为 0.6 或 0.7 停止。
在脚底有一个相对突出的弯曲,但由于角色网格的分辨率较低,因此对它没有很多要处理的。即使角色的预算中可以容纳更多的多边形,也应把它们留给优先级更高的脸部;因此在游戏等商业应用中这样的失真通常是可以接受的。
为腿的其余部位设置权重:
看上去没什么问题,但脚踝的影响已太过向上、到小腿部位了,而这是不正确的。
在线框显示中,会更容易看到选中的顶点,它们会以白色勾勒出来。
这将从脚踝骨骼的影响范围中移除小腿顶点。
现在这个循环已设为对小腿骨骼和脚踝骨骼各有一半的权重。
右腿上有一些顶点受到左小腿骨骼的影响。校正这个问题比较容易。
类似的,该小腿对左腿大腿顶点的影响也过多,这也是膝盖弯曲时出现体积丢失问题的一部分原因。稍后您会处理这个问题,但请先看一下大腿。
同样,默认的影响量太大。
此处不需要非常的精确;重点是要将右侧的顶点从左侧骨骼的影响范围中移除。
开始使用“权重工具”。
在本节中,您将使用既方便又强大的“权重工具”对话框,继续分割腿部的权重设置。
在选中具有相同骨骼和权重分配的顶点时,权重工具可列出所有影响这些顶点的骨骼,以及对应的权重值。也可用它来编辑当前顶点选择和骨骼分配的权重值,您可以设置一个绝对权重值,或调整顶点相对于其当前值的权重。此外,权重工具还提供了用于复制和粘贴权重值的控件,以及“环形”和“循环”等用于修改顶点选择的控件。
将打开“权重工具”对话框。将它拖动到方便又不遮挡视图的位置。您可以在操作时将它保持打开状态。
该列表显示所选顶点的骨骼分配和各个分配的权重值。请注意权重值之和始终为 1.0。例如,如果您更改某特定骨骼对一个受三个骨骼影响的顶点的权重值,3ds Max 会按照其当前值的比例以相反的方向更改另外两个骨骼的值。
也请注意“设置权重”值不会更改,此为只读字段。
这会将所有选定顶点相对于小腿骨的权重值设为 1.0。请注意,列表中其他两个骨骼的权重值现在是 0 了。您可以通过单击“高级参数”卷展栏 “移除零权重”,来去除整个网格中的 0 权重,但此时没必要这么做。
这个方向也是提高工作效率的常规理念,即在执行操作时尽可能做好清理工作,而不要等到以后再返回来试图进行优化。它和建模时注意边流的做法类似,也就是制作尽可能多的多变形,并避免三角形、四边形或 n 角形。
修复膝部问题:
这是不错的前后对照视图。右膝部在“前”,显示已标记的体积失真;而左膝部在分割了大腿和小腿权重后,看上去更加的逼真。
然而,如果您在腿部弯曲时仔细观察左膝部的后侧,会发现显然还有不少的微调工作需要处理。这需要大量的调整、实验及检查结果。此处我们无法给出该过程的所有细节,因为这不太实际。但我们会给一个示例,作为您的起点。
如果您要查看已完成并且完全蒙皮的模型,可以打开所附的文件 configuring_skin_finished.max 。您可以检查该文件中的所有顶点权重值,这是我们经过了很多的尝试和错误之后得到的。
通常情况下,我们最终的做法是将膝部下半部顶点的权重主要分配给小腿,然后从膝部上半部开始,逐步将更多的权重分配给大腿。需要一些手动的调整来对付膝部背面的“褶皱”顶点。
设置骨盆的权重:
在完成左腿的蒙皮后,就到了向上处理骨盆的时间。
按照分割权重的做法进行操作,实际上没有可见的红色并不是好的征兆。
骨盆和大腿的权重之间有非常明显的分隔。所幸的是修复相对比较容易。
完成腿部,并镜像权重:
在本节中,您将校正角色臀部中顶点的权重,并通过从左侧镜像顶点权重来快速修复右侧的权重。
首先要修复的是,第一脊椎骨骼对部分骨盆顶点的一些不需要的影响。
该骨骼对右侧也有影响,但由于您会将顶点权重从左侧镜像到右侧,所以这不是需要关心的问题。
选择角色下背部的九个顶点。
当前这些顶点只设置了针对骨盆骨骼的权重,因此您需要添加对大腿骨骼的权重。
和之前一样,有疑问时您可以参考已完工的场景( configuring_skin_finished.max ),获得具体的指导。
骨骼和顶点现在使用颜色代码:左侧使用蓝色,右侧使用绿色。不能镜像的中心项目则使用红色。
有关“镜像模式”设置的一些注意事项:
默认值为 0'0.5",但在我们的场景中是可以将它降为 0'0.19" 的,这可为镜像权重带来更好的准确性。您的结果可能稍有不同。
在执行实际的镜像时,您要使用“镜像模式”按钮下方的五个按钮。从左到右,它们分别用于只镜像选定的顶点、从一侧到另一侧的所有骨骼,以及从一侧到另一侧的所有顶点。对于本教程,您将使用“将蓝色粘贴到绿色顶点”,即下图中以红色标记的按钮。
您对角色左侧各个顶点所做的所有权重设置现在都复制到了右侧对应的顶点上,即时校正了整个右侧的蒙皮问题。之前为蓝色的左侧顶点现在显示为黄色,表示它们已被镜像。
角色下半部分两侧的动画看上去还可以。但是,在大概第 80 帧的地方有一个小问题:腿部向后弯曲时,腿部与臀部之间的折缝有些太深。
在对结果满意时,将顶点镜像到另一侧。
另一个需要重视的是骨盆周围顶点的中心线,其当前的权重 100% 用于骨盆。在现实中,这些区域会由于腿部的运动而被拉来拉去,因此它们也需要设置相应的权重。
这样您可以将相等的权重分配给两个大腿骨骼,维持了您在均衡骨盆时所得到的平衡状态。
保存工作: