“柔体”修改器使用对象顶点之间的虚拟弹力线模拟软体动力学。可设置弹力线的刚度,它们如何有效控制顶点相互接近,如何拉伸以及它们可移动的距离。此系统的最简单功能是使顶点妨碍对象移动。在更高层次上,还可以控制倾斜值以及弹力线角度的更改大小。
柔体用于 NURBS、面片、多边形与网格对象、形状、FFD 空间扭曲以及基于插件的任何可变形对象类型。可将“柔体”与“重力”、“风”、“马达”、“推力”和“粒子爆炸”等空间扭曲结合到一起使用,从而将逼真的、基于物理的动画添加到对象中。另外,可以对软体对象应用导向器以模拟碰撞。
注意:“柔体”修改器了解修改器堆栈中“柔体”下方可将点变形的任何动画修改器(例如,
变形修改器)中的顶点/控制点运动。使用此修改器可模拟变形或其他变形动画对象上的软体运动。
提示要更改柔体效果的中心,请在将“柔体”修改器应用于选定的对象或子对象后,选择“柔体”修改器的中心子对象并使用“移动”。
提示使用“柔体”的高级功能会明显延迟实时播放。在这种情况下,要提高性能,请使用
“点缓存”修改器将顶点动画记录到磁盘中,然后使用缓存进行播放。
柔体修改器影响的曲面
- 在多边形或网格曲面上,“柔体”修改器将影响每个顶点。
- 在面片表面上,“柔体”修改器影响控制点和切线控制柄。柔体取消对切线控制柄的锁定,然后单独移动它们。
- 在 NURBS 曲目上,柔体影响控制顶点 (CV) 或控制点。
- 在样条线(形状)上,“柔体”修改器影响控制点和切线控制柄。
- 在 FFD 空间扭曲上,“柔体”修改器影响控制点。
效果
可对“柔体”修改器应用空间扭曲。例如,可通过添加风来设置植物和树或飘扬旗帜的动画。在这种情况下,不需要创建关键帧就能查看效果;空间扭曲本身就能设置曲面的动画。
角色动画
在“蒙皮”修改器之上使用“柔体”可向使用骨骼的动画角色添加辅助运动,或者在“Physique”修改器之上使用“柔体”可向使用 Biped 的动画角色添加辅助运动。
界面
修改器堆栈
通过打开修改器层次(单击修改器名称左侧的 + 图标),堆栈显示中就会出现这些修改器子对象层级。
- 中心
-
在视口中移动“变换”gizmo 以设置效果中心。
柔体效果随中心与顶点之间的距离增大而增强。
- 边顶点
-
在视口中选择顶点,控制柔体效果的衰减和方向。
选定顶点的柔体效果小于未选择顶点的柔体效果。
- 权重和弹力线
-
使用“权重和弹力线”卷展栏中的控件,选择和取消选择顶点以便在“权重和绘制”卷展栏和“高级弹力线”卷展栏上进行后续操作。
可在任何子对象层级绘制权重,并在任何子对象层级添加和移除弹力线(甚至在“柔体”修改器对象层级),但在“权重和弹力线”选择处于活动状态时,则仅影响选中的顶点。
“参数”卷展栏
- 柔软度
-
设置柔体量和弯曲量。范围从 0.0 到 1000.0;默认值为 1.0。
此值代表使用的柔体动画量;柔体动画由运动和顶点权重等其他因素决定。默认值 1.0 表示不修改柔体动画;提高设置值会将拉伸量增大至不自然的程度,降低设置值则会减小拉伸。
- 强度
-
设置跟随弹力的整体弹力强度。
值 100.0 代表刚体。范围从 0.0 到 100.0;默认值为 3.0。
- 倾斜
-
为跟随弹力设置对象停止移动的时间。
较低值会增加对象停止移动所需的时间。范围从 0.0 到 100.0。默认值为 7.0。
- 使用跟随弹力
-
启用时会启用跟随弹力,强制对象恢复为其原始形状。禁用时,不使用跟随弹力,而顶点移动量仅取决于它们的权重。默认设置为启用。
一般,对于软体模拟,如果希望对象受力和导向器的影响,请禁用“使用弹力跟随”。
- 使用权重
-
启用时,“柔体”识别为对象顶点分配的不同权重,相应地应用不同的变形量。禁用时,柔体效果将其本身作为大的整体应用于对象。默认设置为启用。
一般,对于软体模拟,如果希望对象受力和导向器的影响,请禁用“使用权重”。
- 解算器类型
-
从下拉列表中为模拟选择一个解算器。三个选项是“Euler”、“中点”和“Runge-Kutta4”。“中点”和“Runge-Kutta4”比“Euler”需要更多的后续计算,但更稳定且精确。默认设置为
Euler。
提示 在大多数情况下,可连续使用“Euler”,但如果在模拟过程中出现意外的对象变形,请尝试使用更精确的解算器类型之一。特别地,可能需要使用具有更高“拉伸”和“刚度”设置的“中点”或“Runge-Kutta4”。
- 采样
-
每帧中按相等时间间隔运行“柔软度”模拟的次数。采样越多,模拟越精确和稳定。在使用“中点”或“Runge-Kutta4”解算器时,可能不需要与“Euler”一样多的采样。默认设置为
5。
提示如果模拟生成意外结果,例如对象顶点移动到明显随机的位置,请尝试提高“采样”设置。
“简单软体”卷展栏
让 3ds Max 自动为整个对象确定弹力线设置。另外,可使用高级弹力线卷展栏中的设置,指定每对顶点之间的弹力线设置。
- 创建简单软体
-
基于“拉伸”和“刚度”设置,为对象生成弹力线设置。
注意:使用“创建简单软体”后,无需再次单击该按钮即可更改“拉伸”和“刚度”设置;更改将立即生效。
- 拉伸
-
确定对象边的拉伸长度。禁用“高级弹力线”卷展栏
“启用高级弹力线”后,“拉伸”设置将链接到“高级弹力线”卷展栏
“拉伸强度”。和“拉伸倾斜”设置。
- 刚度
-
确定对象的刚度。禁用“高级弹力线”卷展栏
“启用高级弹力线”后,“拉伸”设置将链接到“高级弹力线”卷展栏
“图形强度”。和“图形倾斜”设置。
“拉伸”和“刚度”之间的差别很小,而且由于二者相互影响,所以理解该差别就更困难。另外,它们如何起作用取决于对象拓扑。
例如,假设创建一个长方体,添加“柔体”修改器,应用“创建简单软体”,然后设置高“拉伸”值和低“刚度”值。如果在基于柔体的动力学模拟中使用该长方体,例如利用重力使其落到一个曲面(导向器)上,可能希望该长方体落下并变平。但相反,由于该长方体的拓扑使“创建简单软体”应用了相对少的形弹力线,实际上,使用低“拉伸”值和高“刚度”值会获得更好效果。不过,如果改为使用包含八个分段的球体,会获得默认“拉伸”和“刚度”设置的塌陷行为,且由于提高了“刚度”设置,所以刚度相应提高了。
在软体模拟中(例如上文中对象掉落到曲面的示例),特别是对于密集网格,通过对绑定到对象的 FFD 空间扭曲应用网格,能够获得更好的效果。如果对象形状不适合用于空间扭曲,可能必须改为使用高级弹力线卷展栏中的设置以手动应用弹力线。在这种情况下,应当在相对顶点而不是在相邻顶点之间创建形弹力线。
一般,布料之类的动画在使用高“拉伸”设置和低“刚度”设置时效果最好。对于软体,一般为“拉伸”和“刚度”都使用高设置,这取决于您希望对象具有的“变形度”。
“权重和绘制”卷展栏
第一次将“柔体”应用于对象时,修改器将基于顶点距修改器中心的距离为每个顶点设置权重。顶点权重越高,它就越不容易受到“柔体”效果的影响。修改器对最接近其中心的顶点应用最高权重,并对距离中心最远的顶点应用最低权重。所以,举例来说,对于轴点位于底部的圆柱体,顶部的变形量最大。但对于球体,其所有顶点与轴点(中心)的距离相等,所以在默认情况下,所有顶点具有相等权重值。
使用“绘制权重”控件,可使用具有可调整半径和衰减的球形刷在视口中更改顶点的权重,从而控制滞后量。使用“顶点权重”控件,可以对单个或成组顶点应用绝对或相对权重。
“绘制权重”组
- 绘制
-
在任意子对象层级,单击“绘制”,然后在视口中的网格上拖动光标,从而使用当前“强度”和“羽化”设置“绘制”顶点权重。顶点颜色会变化以反映新的顶点权重。
绘制相对于顶点权重的当前值更改顶点权重;不应用绝对权重。与短笔划相比,网格上的较长笔划会增加或减少顶点权重,而相同区域上的重复笔划会使权重值发生增量变化,除非权重值已达到其极限。
任何“柔体”子对象层级显示的顶点颜色指示大致的权重。这些颜色由“自定义”菜单 “自定义用户界面”“颜色”选项卡 “元素: 几何体”中的设置确定。此列表中有三个颜色条目:“硬子选择”用于使用最高“权重”值显示顶点;“中子选择”用于使用中“权重”值显示顶点;而“软子选择”用于使用低“权重”值显示顶点。
- 强度
-
设置绘制更改权重值的量。值越高,更改权重的速度越快。当强度为 0.0 时,绘制过程不会更改权重值。范围从 -1.0 到 1.0;默认值为 0.1。
负值允许您移除权重。
- 半径
-
以世界单位数设置笔刷大小。范围从 0.001 到 99999;默认值为 36.0。
注意:如果在绘制前将鼠标光标放在对象上,会看到球形“笔刷”的线框表示,其中说明“半径”设置。
- 羽化
-
设置从笔刷中心到其边缘的强度衰减。默认值为 0.7。范围从 0.001 到 1.0。
笔刷中心的顶点总是按“强度”设置的最大值变化,但“羽化”设置越高,接近边缘的顶点变化的越小。在使用最低设置时,半径内所有顶点的变化都相等。
“顶点权重”组
手动设置顶点权重。在“权重和弹力线”子对象层级,在视口中选择顶点,然后更改“顶点权重”参数的值。也可以启用“绝对权重”,设置需要的“顶点权重”,然后选择要设置的顶点;更改会立刻生效。
- 绝对权重
-
启用该设置可为选定顶点指定绝对权重。禁用该设置,可基于“顶点权重”设置添加或移除权重。
- 顶点权重
-
为选定顶点指定权重。
取决于“绝对权重”参数的状态,权重指定将为绝对或相对的。
注意:“顶点权重”的范围是 -100 至 100。启用“绝对权重”后,“顶点权重”的负设置值不起作用;有效范围从 0 到 100。禁用“绝对权重”后,更改“顶点权重”设置可将更改量添加到选定顶点的当前权重,然后将该设置重置为
0。
“力和导向器”卷展栏
“力”组
使用这些控件可将“力”类别中的空间扭曲添加到“柔体”修改器。支持的空间扭曲包括:
- [空间扭曲列表]
-
- 添加
-
单击此控件,然后在视口中选择粒子空间扭曲,将该效果添加到“柔体”。所添加的空间扭曲显示在列表窗口中。
- 移除
-
在列表中选择一个空间扭曲,然后单击移除可从“柔体”中移除该效果。
“导向器”组
将导向器用于“柔体”,表面将滞后对象移动。所以,可使用软体对象模拟碰撞。要获得最佳碰撞效果,在导向器设置中,为“反弹”使用低值,为“摩擦”使用高值。
支持的导向器包括:
- [导向器列表]
-
- 添加
-
单击此控件,然后在视口中选择导向器,将其添加到“柔体”。所添加的导向器显示在列表窗口中。
- 移除
-
在列表中选择一个导向器,然后单击移除可从“柔体”中移除该效果。
“高级参数”卷展栏
- 参考帧
-
- 结束帧
-
启用时,设置“柔体”生效的最后一帧。在此帧后,对象循序恢复为堆栈当前定义的形状。例如,如果为堆栈中“柔体”下的“弯曲”修改器设置动画,那么在“柔体”停止时,对象的形状仅在该帧按“弯曲”修改器的设置改变。
- 影响所有点
-
强制“柔体”忽略堆栈中的所有子对象选择并对整个对象应用它本身。
- 设置参考
-
更新视口。
移动效果中心后,单击“设置参考”以更新视口。
- 重置
-
“高级弹力线”卷展栏
如果需要比“简单软体”功能提供的弹力线设置更精确的弹力线设置,请使用这些设置。柔体使用两种弹力线:边弹力线,仅沿现有边创建弹力线;以及形弹力线,位于对象中任意两个不由边连接的顶点之间。一般,沿现有边添加边弹力线,在不共享边的顶点之间添加弹力线。
注意:在使用这些控件之前,请转到“权重和弹力线”子对象层级。
提示使用 MAXScript 可使用其他弹力线类型。详细信息,请参见 MAXScript 帮助。
- 启用高级弹力线
-
使数值控件可用于编辑,并通过“简单软体”控件禁用“强度”和“倾斜”设置。默认设置为禁用状态。
此卷展栏中,“拉伸”和“倾斜”的四个数值设置仅在“启用高级弹力线”时可用。
- 添加弹力线
-
基于“权重和弹力线”子对象层级的顶点选择和
弹力线选项对话框设置,为对象添加一条或多条弹力线。
注意:不能撤消此操作。要删除现有弹力线,请选择端点,然后单击“删除弹力线”。
- 选项
-
- 移除弹力线
-
在“权重和弹力线”子对象层级删除已选中两端顶点的所有弹力线。
- 拉伸强度
-
确定边弹力线的强度;强度越高,弹力线之间可以变化的距离越小。
- 拉伸倾斜
-
确定边弹力线的倾斜;强度越高,边弹力线之间的角度变化越小。
- 图形强度
-
确定图形弹力线的强度;强度越高,弹力线之间可以变化的距离越小。
- 图形倾斜
-
确定形弹力线的倾斜;强度越高,形弹力线之间的角度变化越小。
- 弹力线数
-
显示边弹力线的数量,后面跟随包含在括号中的形弹力线数量。
- 保持长度
-
将边弹力线长度保持在指定百分比。
注意:此设置在“柔体”模拟后应用,会影响对象形状,并造成碰撞检测失败。
- 显示弹力线
-
将边弹力线显示为蓝色线,将形弹力线显示为红色线。弹力线仅在“柔体”子对象模式处于活动状态时可见。
可使用 MAXScript 更改弹力线颜色。