布料修改器是布料系统的核心,应用于布料模拟组成部分的场景中的所有对象。该修改器用于定义布料对象和冲突对象、指定属性和执行模拟。其他控件包括创建约束、交互拖动布料和清除模拟组件。
在布料模拟中,需要让布料知道哪些对象将成为模拟的一部分,而哪些对象不是模拟的一部分。在完成上述操作之后,要定义制作的对象。此外还可以指定布料材质,以及什么是固体冲突对象。
由于布料是修改器,因此其实例将指定给每个要包括在布料模拟中的对象。这其中包括所有布料对象和冲突对象。注意分别带有单独布料修改器应用程序的布料对象彼此将不会交互。我们可以采用多种方式将对象包括在模拟中:
在进行布料模拟时考虑尺寸大小非常重要。一面大幅的旗帜和手帕的行为不同。如果关闭了比例,那么模拟也将关闭。由于布料处理的是真实世界中的物理,所以它在真实世界单位中工作。这意味着布料需要知道 3ds Max 中的单位与现实世界中的单位之间的关系。
例如,假定创建的平面为 10 x 10 的 3ds Max 单位。如果希望此平面的行为与 10 英寸 x 10 英寸手帕的行为类似,则需要告知布料 1 个 3ds Max 单位=1 英寸。如果希望此平面的行为与 10 英尺 x 10 英尺床单类似,则需要告知布料 1 个 3ds Max 单位=1 英尺。
除此部分开头所述情形之外,布料将忽略 3ds Max 系统单位设置(“自定义”菜单 “单位设置”“系统单位设置”下)。布料具有其自带的单位设置,该设置是由“模拟参数”卷展栏中的厘米/单位参数确定的。通过该参数可以告知布料1 个 3ds Max 单位等同于多少厘米 (cm)。由于 1 英寸等于 2.54 厘米,因此默认设置 2.54 意味着 1 个 3ds Max 单位等同于 1 英寸。
以下是一个快速参考示例:您将文件 man.obj 导入到 3ds Max 中,并希望为其穿上一件衬衫。
您可采用多种方式约束织物来在模拟期间创建不同的织物效果。布料可以约束布料具有额外的拖拽效果,就仿佛其在空气中飘荡,或者还可以令其受到场景中空间扭曲的影响。将一部分织物链接到动画对象或附加到曲面是其他常见约束。例如,创建裤子时要将裤子的顶部约束到角色的腰部;或者需要将窗帘约束到拉杆上。约束条件非常重要,同时也是布料的强大部分。布料可以创建多组约束顶点,以获取最大的灵活性。此外还可以将衣服的众多不同组成部分约束到不同节点曲面或其他布料对象。
布料中的约束可在修改器的“组”子对象层级创建。在此处,可以看到布料和冲突等所有选定对象的顶点。随后您可以选择这些对象并将其置于组中。在定义组之后,可将选择集附加或“约束”到另一对象,或令其受到外力的影响。
布料可以撕裂。有关如何执行此操作的示例,请参见此步骤。
运行模拟之前,必须指定布料将撕裂的位置。为此,有以下几种不同方法可供选择:
请参见接缝子对象层级(布料)、曲线子对象层级 (Garment Maker) 和接缝子对象层级 (Garment Maker)。
请参见组卷展栏(布料)。
请参见组卷展栏(布料)。
如果布料对象以您想在模拟过程中保留的 3D 图形开始,则可以使用“保持形状”选项和设置保留此图形或甚至反转它。此简单步骤提供如何使用“保持形状”的示例。
几秒钟之后,不保持形状对象开始变得平缓,保持形状对象保持不变,而反转图形对象实际上反转了其图形,从而有效地创建了负的弯曲角度。
该平面两侧为两个虚拟对象
选择要在布料中创建撕裂的中心顶点
3ds Max 将创建新的“焊接”约束,该约束包括布料平面中心的顶点。
单击“制造撕裂”之后
3ds Max 将设置虚拟对象拉扯布料的动画。布料随之沿设置撕裂的顶点撕裂。
布料随着其边缘被拉开而在中心开裂
复杂布料模拟不仅需要大量计算,而且要花费很长的时间。布料包含使其易于在联网计算机上(渲染处理场的一部分)运行模拟的命令,从而可以释放计算机的空间,以用于场景的其他部分。
为了获得最佳效果,应指定映射的驱动器,并启用“强制 UNC 路径”。从而可以使用通用命名约定指定该路径,以便网络中的所有计算机都可以找到它。此外,将所有缓存文件保留在相同的目录中也是一种不错的方法。
只要服务器计算机启动渲染,它就开始计算模拟并将结果保存到磁盘。通过单击“加载”按钮,您可以在任意位置从缓存文件加载最新状态的模拟,以检查其进度。
在应用布料修改器之后,“对象”卷展栏是“命令”面板上可以看到的第一个卷展栏。其中包括了创建布料模拟和调整织物属性的大部分控件。
“选定的对象”卷展栏用于控制模拟缓存、使用纹理贴图或插补来控制并模拟布料属性(可选),以及指定弯曲贴图。此卷展栏只在模拟过程中选中单个对象时显示。
“模拟参数”卷展栏设置用于指定重力、起始帧和缝合弹簧选项等常规模拟属性。这些设置在全局范围内应用于模拟,即应用于模拟中的所有对象。
“组”可用于选择成组顶点,并将其约束到曲面、冲突对象或其他布料对象。
在“面板”子对象层级上,您可以随时选择一个面板(布料部分),并更改其布料属性。
“接合口”子对象卷展栏用于定义接合口属性。
“面”子对象卷展栏启用布料对象的交互拖放,就像这些对象在本地模拟一样。此子对象层级用于以交互性更好的方式在场景中定位布料。