衣领带动

带有关节和 cMuscleKeepOut 节点的项圈装置

大家好,大约一个月前,我发布了这个装备测试,它是针对我正在制作的角色所做的碰撞设置进行的。

颈部碰撞

该装备基于关节,因此适合游戏动画。我无法使用相同的资产,但为了本教程的目的,我创建了另一个资产。 

需要具备 Maya 和装配的基本知识。这不是装配和装配实践教程,而是专门介绍在 Maya 中使用 cMuscleKeepOut 节点的技术。因此,请随意使用它,并使其符合您在装配过程中通常使用的任何实践和命名约定。

我将把这篇文章分为三个主要部分。曲线设置、碰撞设置和关节设置。但在我们继续之前,装备最终应该是这个样子的。


您可以在Gumroad上以 5 美元的价格购买工作文件

 
购买gum5.png
 

颈部碰撞_570.gif

Kiel Figgins 指出,在某些情况下,MayaMuscle 插件不会默认加载,因此请确保在插件管理器中加载 MayaMuscle.mll 插件。

加载 MayaMuscle 插件。

加载 MayaMuscle 插件。


曲线设置

1 –创建一个具有 8 个跨度的 nurbs 圆并将其命名为“collar_crv”。 

创建 Nurbs 曲线。

创建 Nurbs 曲线。

Nurbs 圆选项

Nurbs 圆选项

2 –沿衣领内侧塑造曲线。曲线顶点是与碰撞网格的接触点,因此请确保它们位于您希望发生碰撞的位置。

曲线放置。为了清晰起见,头部被隐藏了。

曲线放置。为了清晰起见,头部被隐藏了。

3 –为“collar_crv”的每个顶点创建一个群集。在装配选项卡中,转到“变形”>“群集”。 

创建集群

创建集群

4 –我们需要为每个群集创建一个偏移组。按CTRL+G快捷键创建一个空组。然后选择组和群集,并转到修改 > 匹配变换 > 匹配所有变换。现在组已与群集对齐,您可以通过选择 clusterHandle 和组并按P或转到编辑 > 父级来将群集设置为组的父级。

集群组.jpg

碰撞设置

5 –现在我们创建碰撞网格。大多数时候我使用多边形图元作为碰撞形状,如圆柱体或球体,但在这种情况下,我将使用头部网格的静态副本并删除不需要与曲线碰撞的面。然后将碰撞网格设置为颈部驱动器的父级。为了演示,我直接将其设置为关节下的父级。

在这种情况下,我选择使用头部的复制品,因为他的下巴非常突出,让它与衣领相撞会很好。

碰撞网格标题.gif

6 – 创建碰撞网格的最后一步是选择 collision_head,然后转到 Rigging>Deform>Muscle>Muscles/Bones>Convert Surface to Muscle/Bone。

碰撞胶囊.jpg

7 –选择所有群集手柄组,然后转到“Rigging”>“Deform”>“Muscle”>“Self/Multi Collsion”>“Rig”选择“KeepOut”

keepOutNodes.jpg

8 –如果展开大纲视图中的群集组,您将看到在群集手柄顶部创建了两个变换。cMuscleKeepOut 和 cMuscleKeepOutDriven 组。cMuscleKeepOut 节点设置碰撞发生时 cMuscleKeepOutDriven 组移动的局部方向。 

keepOutNodes_outliner.jpg

9 – 在将碰撞网格连接到禁区节点之前,让我们设置“进入方向”值,以避免集群跳转到错误的方向。
选择右侧集群手柄的所有禁区节点,并将“进入方向 X”设置为 -1,将“进入方向 Y”设置为 -0.5。这样,当发生碰撞时,集群手柄向右移动的幅度将是向下移动的两倍。

右侧碰撞.jpg

10 – 选择左侧簇手柄的所有禁止节点,并将“X 方向”设置为 1,将“Y 方向”设置为 -0.5。

左侧碰撞.jpg

11 – 选择衣领背面中心集群手柄的所有禁止节点,并将“X 方向”设置为 0,将“Y 方向”设置为 -0.5,将“Z 方向”设置为 -1。

backcenterCollision.jpg

12 –为了使 cMuscleKeepOut 节点与我们的碰撞头发生碰撞,最后选择所有集群手柄组和碰撞头,然后转到 Rigging>Deform>Muscle>Self/Multi Collsion>Connect Muscles to Keep Out。

连接肌肉.jpg

13 –现在,如果你转动颈部,你应该会看到簇在与碰撞头碰撞时按照我们设定的方向移动。

簇碰撞

关节设置

现在我们进入装备的最后一部分,即添加关节、将它们连接到衣领曲线并将它们添加到夹克外皮簇。您可以根据拥有的网格和预算决定可以添加多少个关节。但是,重要的是要记住这不是布料模拟,并且某些动画中的某些区域需要手动调整。因此,我们需要将偏移组/关节控制器直接连接到曲线,而不是直接连接到关节本身。

14 –重复以下步骤,直到添加您想要的关节数量。对于此设置,将重复 7 次:

  • 在原点处创建一个定位器,然后将其分组。
  • 在原点处创建一个关节,然后将其作为定位器的父级。
  • 将关节​​重命名为collar_01_jnt。将定位器重命名为collar_01_loc,将组重命名为collar_01_offest

PS:您可以使用任何您想要的命名约定,但为了清楚起见,我将把定位器组称为偏移组。

这是大纲中的结构:

关节.jpg

15 – 在 NodeEditor 中创建一个 pointOnCurveInfo 节点,并在属性编辑器中选中 Turn On Perecntage 选项。将项圈曲线形状worldSpace连接到 PointOnCurveInfo 节点inputCurve。然后将 pointOnCurveInfo位置连接到定位器偏移组Translation

POCI 节点.jpg

16 –对每个定位器偏移组重复上述步骤。

POCInodes全部.jpg

17 –要放置定位器偏移组以及随后的关节,我们需要调整我们创建的每个 pointOnCurveInfo 节点的参数值。这些是我用来放置偏移组的值,例如以下 0.00、0.13、0.3、0.4、0.6、0.7、0.87

关节放置.jpg

18 –最后,让我们将衣领关节添加到皮肤簇中,方法是选择所有衣领关节,然后选择夹克网格,然后转到“装配”>“皮肤”>“编辑影响”>“添加影响”。调整皮肤,使其光滑,但也使用动画进行测试,以确保每个关节的影响都能产生所需的结果。

绑定关节.jpg

最后结果

如果您现在旋转颈部关节/控制器,您会看到关节正在跟随曲线,并且我们仍然将定位器通道归零以直接控制关节。快乐动画 🙂

关节关注.gif

最后说明:如果您只能拥有非常少的关节,比如说 4 个或更少,那么您可以跳过整个曲线设置,只需装配关节控制器,就像我们对集群组所做的那样。

35元下载地址

THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容