既然您对使用 MassFX 刚体有了一些经验,可以尝试使用 mCloth。这是标准布料修改器的一个版本,可以在 MassFX 模拟中工作。动态 mCloth 对象可以影响模拟中的其他对象,同时也受这些对象影响,包括布料对象和刚体。
在本课程中,将创建一个具有在风中飘动的窗帘的简单设置。窗帘在微风中飘动时,会碰撞窗台上的瓶子。您还将了解关于设置刚体以正确模拟的更多信息。
该练习将重点介绍在 MassFX 中使用刚体和 mCloth 的几个方面:
- 使用“自定义”选项调整刚体的物理图形。
- 对象位于所需的位置时,通过模拟,然后使用“捕获变换”来设置对象。
- 将布料对象添加到模拟,并将其附着到另一个对象。
- 允许布料受力空间扭曲(风)的影响。
- 使布料对象与刚体交互。
技能级别:初级到中级
完成时间:30 分钟
本教程的准备工作
- 如果尚未下载教程文件(MAX 场景和其他资源),请立即下载并将其解压缩到名为
\Autodesk 3ds Max 2016 教程的项目文件夹中。
请参见提供教程文件的位置。
- 在快速访问工具栏上,单击
(项目文件夹),并将当前项目设置为 Autodesk 3ds Max 2016 教程。
设置课程:
设置瓶子:
如果仔细观察前视口或左视口,您可以看到瓶子在略高于桌子曲面的上方悬浮,而不是直接放在桌子上。
在物理模拟中,模拟引擎用于动态对象的物理图形通常与3ds Max 用于渲染对象的图形网格不完全相同。通常物理图形更加简单,但一般情况下足以表示对象在模拟中的存在,同时减轻模拟引擎的负担。
但是,图形上的这种差异使得很难通过目测将一个对象正好放在另一个对象上。为使该操作更容易,MassFX 提供了“捕获变换”功能。要使用该功能,请首先将一个对象放在最终模拟开始时要搁在其上的曲面上方。然后,运行测试模拟,以便对象可以落下并定位。完成此操作后,可以停止模拟而无需重置,然后对对象使用“捕获变换”。之后,当您重置模拟时,对象将保留在原位。
- 打开 MassFX 工具栏(如有必要),将瓶子设置为动力学刚体,将桌面设置为静态刚体。
- 在 MassFX 工具栏上,单击
以开始模拟。 瓶子开始落到桌面上,但是翻倒了。这不是我们所希望的行为。
您将确定发生这种情况的原因,然后将其修复。
- 在 MassFX 工具栏上,单击
以重置模拟,然后在前视口或左视口中再看一下瓶底。 瓶底是平的并且平行于桌面,因此问题与图形网格无关。因此,可能是物理图形有问题。但由于物理图形与图形网格重合,因此很难进行检查。不过,可以很容易地将这两个分开,以便您可以更好地观看物理图形。
- 选择瓶子,然后右键单击并选择“隐藏未选定对象”。
桌面将消失。
- 在修改器堆栈的顶部,展开“MassFX 刚体”条目,然后单击“网格变换”项。
将物理图形向远离图形网格的方向移动,然后环绕视口,同时检查物理图形的底部。
左:图形网格
右:凸面物理图形
很显然,物理图形的底部凹凸不平,这会导致瓶子在桌面上不稳定。发生这种情况的原因是,物理图形是图形网格的“最佳拟合”近似,而图形网格使用的顶点要少得多。可以尝试增加物理图形中的顶点数,并通过“物理网格参数”卷展栏上的控件从图形网格的顶点(而不是曲面)生成,但物理图形的简单化将很难实现。更轻松、更高效的方法是使用“自定义图形”选项。
撤消物理图形的移动,使其再次与图形网格重合,然后单击修改器堆栈上的“MassFX 刚体”项。
- 右键单击活动视口,并选择“全部取消隐藏”。
- 在“物理图形”卷展栏上,单击“转换为自定义图形”。
这会将“图形类型”设置更改为“自定义”,并创建一个与瓶子同名的新可编辑网格对象,且与原来的瓶子叠合在一起。新对象是通过凸面图形类型创建的物理图形的几何副本,称为“网格源”。

网格源与原始对象叠合在一起
网格源的名称将反映在“物理网格参数”卷展栏上,该卷展栏现在显示“自定义”物理图形类型的控件。在这种情况下,所有控件都是按钮。
- 在“物理网格参数”卷展栏上,单击“选择网格源”。
这将选择可编辑网格对象。您将编辑此对象以便为其赋予一个平底,然后从网格源更新物理图形。
- 在
“修改”面板上,激活
“顶点”子对象层级,然后在前视口中区域选择最底部的顶点。应该约为五个顶点。
提示: 如果很难看到顶点,请在状态栏中启用

(孤立当前选择开关)。处于活动状态时,“孤立当前选择”只显示当前选择,并隐藏其他所有对象。如果使用此选项,请在选择顶点后禁用“孤立当前选择”。
- 激活顶视口,然后在“编辑几何体”卷展栏的底部,单击“视图对齐”。
这会将选定顶点移动到这些顶点 Z 位置的平均位置,使其全部具有相同的高度。但是,这会稍高于瓶底。
- 在前视口或左视口中,垂直移动顶点到瓶底的高度。这应该是相对较小的调整。
- 退出“顶点”子对象层级并选择原来的瓶子对象(仍然应用了“MassFX 刚体”修改器)。
- 在“物理网格参数”卷展栏上,单击“从源对象更新”。
这会将自定义网格源对象的编辑结构重新复制到瓶子的物理图形。
- 在“物理网格参数”卷展栏上,单击“选择网格源”,然后按
删除网格源。再次选择瓶子对象。 网格源暂时不再是必需的,但是您可以使用“物理网格参数”卷展栏上的“提取网格对象”功能很轻松地将其再次从物理图形导出。
开始模拟。 瓶子应落在地板上,但不会翻倒,然后保持正立静止。
提示: 如果发现任何不稳定,如瓶子在原地反弹,请单击 MassFX 工具栏上的

以打开“MassFX 工具”对话框中的“世界参数”面板。在“场景设置”卷展栏上,将“刚体”

“子步数”设置为 2 或更大。
- 瓶子在大约第 40 帧稳定一会后,请再次单击“开始模拟”以停止模拟。
时间滑块保留在其当前位置。
- 打开“MassFX 工具”对话框中的
“模拟工具”面板,然后在“模拟”卷展栏上,单击“捕获变换”按钮。 这会将瓶子的初始变换(在模拟中开始的位置)设置为其当前位置。
- 在 MassFX 工具栏上,单击
以重置模拟。 瓶子保持固定不动。
设置窗帘:
- 在左视口中,创建一个平面基本体,其高度和宽度大约是瓶子的两倍。这就是窗帘。如果需要,请使用顶视口移动窗帘,使其远离瓶子的右侧大约一个栅格方形。此外,窗帘的底部应稍高于地板。
左:左视口
右:顶视口
- 在“修改”面板上,将“长度”设置为 84.0,将“宽度”设置为 72.0。
这些设置在前面的图中有所表示。
- 将“长度分段”和“宽度分段”设置为 20。
这将增加网格分辨率,因此布料可以弯曲折叠得更逼真。
- 选择窗帘对象后,在 MassFX 工具栏上,单击
(将选定对象设置为 mCloth 对象)。 该平面现在就像模拟中的一块布料。
- 开始模拟,观看窗帘折叠时如何塌陷到地板,然后重置模拟。
窗帘材质看起来有点僵硬。
- 在“纺织品物理特性”卷展栏上,禁用“使用正交弯曲”,然后再次运行模拟。
现在,布料行为看起来自然多了。
提示: “纺织品物理特性”卷展栏上还有许多其他设置,这些设置会影响布料行为,每个设置都有一个描述性工具提示。要了解有关 mCloth 如何工作的更多信息,请阅读一些工具提示并尝试更改设置,每次更改后运行一次模拟。尝试使用这些设置后,会将除“使用正交弯曲”之外的所有设置恢复为其默认值。
接下来,将创建一根窗帘杆并将窗帘附着到上面。
- 重置模拟。在前视口中,在窗帘上方创建一个圆柱体基本体。将“半径”设置为 1.0,将“高度”设置为 75.0,然后移动圆柱体使其位于窗帘顶部的正上方,不必接触。
- 选择窗帘,然后在“修改”面板
修改器堆栈上,展开“mCloth”条目,以便显示“顶点”子对象层级。单击“顶点”条目。
“修改”面板将更改以显示“软选择”和“组”卷展栏,且窗帘的顶点在视口中显示。
- 在左视口中,选择顶行顶点。然后,在“组”卷展栏上,单击“生成组”。“生成组”对话框显示后,单击“确定”继续。
主图像:左视口中的窗帘,且选中顶行顶点
插入:“修改”面板上的组列表
“组”卷展栏上的列表现在显示刚刚创建的组 Group001,及其未指定状态。您将节点约束指定给组,这意味着这些顶点将在模拟过程中“粘滞”到杆。
- 在“组”卷展栏
“约束”组中,单击“节点”按钮,然后在视口中选择窗帘杆。 列表中的 Group001 项现在显示,其作为节点约束到窗帘杆 Cylinder001。
注: 窗帘杆不必是模拟的一部分。
- 再次运行模拟,然后将其重置。
此时窗帘保持原位。
添加风力:
- 在左视口中的任意位置,创建“风”空间扭曲。箭头应指向负 X 轴;也就是说,与从窗帘到瓶子的向量方向相同。

在透视视口中选中“风”空间扭曲
注: 如果您不确定如何添加空间扭曲,请执行以下步骤:
- 在
“创建”面板上,激活
(空间扭曲)。
- 在“对象类型”卷展栏上,单击激活“风”。
- 在左视口中,将鼠标指向窗帘对象的右侧,然后拖出一个尺寸为约 2 x 2 的栅格方形。大小和位置不是非常重要。
- 选择窗帘。在“修改”面板
“力”卷展栏上,单击“添加”,然后选择“风”空间扭曲。 空间扭曲的名称将显示在“应用的场景力”列表中。
现在,风将在模拟中影响窗帘,但不会影响任何其他对象。
- 运行模拟,然后将其重置。
窗帘移动一点,但“强度”设置为默认值 1.0 的风不够强大,无法对其产生很大影响。
- 在视口中选择“风”空间扭曲。在“修改”面板
“参数”卷展栏上,将“强度”设置为 50.0。
- 再次检查模拟。
窗帘现在会有力地推击瓶子,但不会移动瓶子,因为它的推力不够强。
- 再次选择窗帘。在“交互”卷展栏上,确保“推刚体”处于启用状态并将“推力”值设置为 100.0。
- 运行模拟。
增加“推力”值会导致吹起的窗帘打翻瓶子。
提示: 请不要更改“推力”值,可以调整瓶子的密度,使其变得更轻。在这种情况下,此操作不会有帮助作用,因为即使采用可能的最低“密度”值 0.01,推力值为 1.0 的窗帘也不足以打翻瓶子。这是因为瓶子相对较大且较重。
如果需要窗帘打翻某些物品而不是其他物品,您可以将“推力”设置为刚好足以打翻这些物品,然后增加较重物品的“密度”。
- 只是为了好玩,请将瓶子的“密度”设置为 0.01,使窗帘的“推力”值为 100。要执行此操作,请选择瓶子,然后在
“修改”面板上,转到“物理材质”卷展栏并调整“密度”值。执行该操作的最简单方法是右键单击微调器。
现在,当您运行模拟时,窗帘会将瓶子打飞,即使瓶子不受“风”空间扭曲的直接力。
- 如果您愿意,请烘焙模拟,然后将其渲染为动画。
如您所见,即使在简单的模拟(如本课程中的模拟)中,也会涉及到大量的变量。通过尝试和调整更多设置,可以使用 MassFX 和 mCloth 相对轻松地获得真实甚至梦幻般的动画。
保存工作:
摘要
模拟开始时在曲面上定位动力学刚体的最有效方法是使用“捕获变换”功能。
要稳定刚体,可能需要使用“自定义”图形类型工具调整物理图形。
布料对象可以完全参与模拟,既影响其他对象,也受到这些对象的影响。它们也将受“力”空间扭曲(如“风”)的作用。