既然您对使用 MassFX 刚体有了一些经验,可以尝试使用 mCloth。这是标准布料修改器的一个版本,可以在 MassFX 模拟中工作。动态 mCloth 对象可以影响模拟中的其他对象,同时也受这些对象影响,包括布料对象和刚体。
在本课程中,将创建一个具有在风中飘动的窗帘的简单设置。窗帘在微风中飘动时,会碰撞窗台上的瓶子。您还将了解关于设置刚体以正确模拟的更多信息。
该练习将重点介绍在 MassFX 中使用刚体和 mCloth 的几个方面:
技能级别:初级到中级
完成时间:30 分钟
设置课程:
该场景包含两个对象:玻璃瓶子和方格桌面。

设置瓶子:

在物理模拟中,模拟引擎用于动态对象的物理图形通常与3ds Max 用于渲染对象的图形网格不完全相同。通常物理图形更加简单,但一般情况下足以表示对象在模拟中的存在,同时减轻模拟引擎的负担。
但是,图形上的这种差异使得很难通过目测将一个对象正好放在另一个对象上。为使该操作更容易,MassFX 提供了“捕获变换”功能。要使用该功能,请首先将一个对象放在最终模拟开始时要搁在其上的曲面上方。然后,运行测试模拟,以便对象可以落下并定位。完成此操作后,可以停止模拟而无需重置,然后对对象使用“捕获变换”。之后,当您重置模拟时,对象将保留在原位。
以开始模拟。
瓶子开始落到桌面上,但是翻倒了。这不是我们所希望的行为。

您将确定发生这种情况的原因,然后将其修复。
以重置模拟,然后在前视口或左视口中再看一下瓶底。
瓶底是平的并且平行于桌面,因此问题与图形网格无关。因此,可能是物理图形有问题。但由于物理图形与图形网格重合,因此很难进行检查。不过,可以很容易地将这两个分开,以便您可以更好地观看物理图形。
桌面将消失。
将物理图形向远离图形网格的方向移动,然后环绕视口,同时检查物理图形的底部。

左:图形网格
右:凸面物理图形
很显然,物理图形的底部凹凸不平,这会导致瓶子在桌面上不稳定。发生这种情况的原因是,物理图形是图形网格的“最佳拟合”近似,而图形网格使用的顶点要少得多。可以尝试增加物理图形中的顶点数,并通过“物理网格参数”卷展栏上的控件从图形网格的顶点(而不是曲面)生成,但物理图形的简单化将很难实现。更轻松、更高效的方法是使用“自定义图形”选项。
撤消物理图形的移动,使其再次与图形网格重合,然后单击修改器堆栈上的“MassFX 刚体”项。
这会将“图形类型”设置更改为“自定义”,并创建一个与瓶子同名的新可编辑网格对象,且与原来的瓶子叠合在一起。新对象是通过凸面图形类型创建的物理图形的几何副本,称为“网格源”。

网格源与原始对象叠合在一起
网格源的名称将反映在“物理网格参数”卷展栏上,该卷展栏现在显示“自定义”物理图形类型的控件。在这种情况下,所有控件都是按钮。

这将选择可编辑网格对象。您将编辑此对象以便为其赋予一个平底,然后从网格源更新物理图形。
“修改”面板上,激活
“顶点”子对象层级,然后在前视口中区域选择最底部的顶点。应该约为五个顶点。

(孤立当前选择开关)。处于活动状态时,“孤立当前选择”只显示当前选择,并隐藏其他所有对象。如果使用此选项,请在选择顶点后禁用“孤立当前选择”。
这会将选定顶点移动到这些顶点 Z 位置的平均位置,使其全部具有相同的高度。但是,这会稍高于瓶底。


这会将自定义网格源对象的编辑结构重新复制到瓶子的物理图形。
删除网格源。再次选择瓶子对象。
网格源暂时不再是必需的,但是您可以使用“物理网格参数”卷展栏上的“提取网格对象”功能很轻松地将其再次从物理图形导出。
开始模拟。
瓶子应落在地板上,但不会翻倒,然后保持正立静止。
以打开“MassFX 工具”对话框中的“世界参数”面板。在“场景设置”卷展栏上,将“刚体”
“子步数”设置为 2 或更大。
时间滑块保留在其当前位置。
“模拟工具”面板,然后在“模拟”卷展栏上,单击“捕获变换”按钮。
这会将瓶子的初始变换(在模拟中开始的位置)设置为其当前位置。
以重置模拟。
瓶子保持固定不动。
设置窗帘:

左:左视口
右:顶视口
这些设置在前面的图中有所表示。
这将增加网格分辨率,因此布料可以弯曲折叠得更逼真。
(将选定对象设置为 mCloth 对象)。
该平面现在就像模拟中的一块布料。

窗帘材质看起来有点僵硬。

现在,布料行为看起来自然多了。
接下来,将创建一根窗帘杆并将窗帘附着到上面。

修改器堆栈上,展开“mCloth”条目,以便显示“顶点”子对象层级。单击“顶点”条目。

“修改”面板将更改以显示“软选择”和“组”卷展栏,且窗帘的顶点在视口中显示。

主图像:左视口中的窗帘,且选中顶行顶点
插入:“修改”面板上的组列表
“组”卷展栏上的列表现在显示刚刚创建的组 Group001,及其未指定状态。您将节点约束指定给组,这意味着这些顶点将在模拟过程中“粘滞”到杆。
“约束”组中,单击“节点”按钮,然后在视口中选择窗帘杆。
列表中的 Group001 项现在显示,其作为节点约束到窗帘杆 Cylinder001。
此时窗帘保持原位。
添加风力:

在透视视口中选中“风”空间扭曲
“创建”面板上,激活
(空间扭曲)。
“力”卷展栏上,单击“添加”,然后选择“风”空间扭曲。
空间扭曲的名称将显示在“应用的场景力”列表中。

现在,风将在模拟中影响窗帘,但不会影响任何其他对象。
窗帘移动一点,但“强度”设置为默认值 1.0 的风不够强大,无法对其产生很大影响。
“参数”卷展栏上,将“强度”设置为 50.0。
窗帘现在会有力地推击瓶子,但不会移动瓶子,因为它的推力不够强。

增加“推力”值会导致吹起的窗帘打翻瓶子。

如果需要窗帘打翻某些物品而不是其他物品,您可以将“推力”设置为刚好足以打翻这些物品,然后增加较重物品的“密度”。
“修改”面板上,转到“物理材质”卷展栏并调整“密度”值。执行该操作的最简单方法是右键单击微调器。

现在,当您运行模拟时,窗帘会将瓶子打飞,即使瓶子不受“风”空间扭曲的直接力。
如您所见,即使在简单的模拟(如本课程中的模拟)中,也会涉及到大量的变量。通过尝试和调整更多设置,可以使用 MassFX 和 mCloth 相对轻松地获得真实甚至梦幻般的动画。
保存工作:
文件 mcloth_final.max 包括本课程中介绍的 MassFX 设置,但不包括烘焙的动画。
要查看布料动画的渲染效果,请播放此影片:
模拟开始时在曲面上定位动力学刚体的最有效方法是使用“捕获变换”功能。
要稳定刚体,可能需要使用“自定义”图形类型工具调整物理图形。
布料对象可以完全参与模拟,既影响其他对象,也受到这些对象的影响。它们也将受“力”空间扭曲(如“风”)的作用。