虽然裙子的行为与真实裙子大致相同,但您会注意到一些碰撞(裙子与自身或角色相交的地方)显示不正确。具体而言,在某些区域中,角色的网格透过裙子或者裙子聚成一团并在陷入该状态。

提高 nCloth 碰撞的质量
转到播放范围的开始处。
选择裙子。
打开“属性编辑器”(Attribute Editor)并选择“nClothShape1”选项卡。
在“质量设置”(Quality Settings)区域中,执行下列操作:
将“最大自碰撞迭代次数”(Max Self Collide Iterations)设定为 20。
“最大自碰撞迭代次数”(Max Self Collision Iterations)值指定每个子步执行的最大数量的自碰撞相关的 nCloth 计算。增加该值会使 Maya 识别更多自碰撞,从而模拟更真实的布料,但会降低速度。
将“碰撞上一阈值”(Collide Last Threshold)设定为 1.0。
增加“碰撞上一阈值”(Collide Last Threshold)有助于阻止 nCloth 顶点穿过碰撞对象。
启用“陷阱检查”(Trapped Check)。
启用“自身陷阱检查”(Self Trapped Check)。
启用“陷阱检查”(Trapped Check)和“自身陷阱检查”(Self Trapped Check)会使 Maya 监视碰撞交叉。当点彼此交叉时,Maya 会尝试将它们推开。该操作会防止裙子聚成一团粘在一起。
将“向外推”(Push Out)设定为 0.280。
设定“向外推”(Push Out)会应用一种力,将相交或穿透的对象推动到当前 nCloth 对象的曲面上的最近点。
将“向外推影响半径”(Push Out Radius)设定为 5.0。
设置“向外推影响半径”(Push Out Radius)指定与“向外推”(Push Out)属性影响的当前 nCloth 对象的曲面的最大距离。
选择“nucleus1”选项卡。
在“解算器属性”(Solver Attributes)下,将“子步”(Substeps)设定为 4,将“最大碰撞迭代次数”(Max Collision Iterations)设定为 20。
增加子步会增加 Maya 在每帧上计算 nCloth 的位置的次数。通过增大该值,Maya 会更频繁地更新布料的位置;因而将以更慢的速度生成更精确的模拟。
“最大碰撞迭代次数”(Max Collision Iterations)值指定每个子步执行的最大数量的碰撞相关的 nCloth 计算。增加该值会使 Maya 识别更多碰撞,从而模拟更真实的布料,但会降低速度。
选择“nCache > 创建新缓存”(nCache > Create New Cache)。
在接下来显示的对话框中,分别选择“替换”(Replace)和“替换现有文件”(Replace Existing)。
Maya 将自动播放 nCloth 模拟,并将其作为缓存保存到磁盘。
播放场景。
这些碰撞现在看起来更加精确,角色的身体不再显示穿透衣服,裙子不再聚成一团或变为受限制。
可以在以上步骤中增大该值,以进一步改进模拟。但请牢记,随着这些值的增大,缓存动画变得越来越慢。
