版本:Unity 6 (6000.0)
语言:英语
关节和布娃娃稳定性
多场景物理

布料

切换到脚本

布料组件与带蒙皮的网格Unity 的主要图形基元。网格构成 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。 更多信息
查看 词汇表
渲染器一起使用,为模拟织物提供基于物理的解决方案。它专门为角色服装而设计,并且仅适用于带蒙皮的网格渲染器网格组件,它从网格过滤器获取几何体并在对象变换组件定义的位置渲染它。 更多信息
查看 词汇表
。如果您将布料组件添加到具有常规网格渲染器的游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、航路点等。游戏对象的机能由附加到它的组件定义。 更多信息
查看 词汇表
,Unity 会删除网格渲染器并添加带蒙皮的网格渲染器。

要将布料组件附加到具有带蒙皮的网格渲染器的游戏对象,请在编辑器中选择游戏对象,点击检查器窗口中的添加组件按钮,然后选择物理>布料。该组件将显示在检查器中。

属性

属性 功能
拉伸刚度 布料的拉伸刚度。
弯曲刚度 布料的弯曲刚度。
使用系绳 应用约束,有助于防止移动的布料粒子远离固定粒子。这有助于减少过度拉伸。
使用重力 是否应将重力加速度应用于布料?
阻尼 运动阻尼系数。
外部加速度 应用于布料的恒定外部加速度。
随机加速度 应用于布料的随机外部加速度。
世界速度比例 角色的世界空间运动将如何影响布料顶点。
世界加速度比例 角色的世界空间加速度将如何影响布料顶点。
摩擦力 布料与角色碰撞时的摩擦力。
碰撞质量比例 增加碰撞粒子质量的程度。
使用连续碰撞 启用连续碰撞当物理引擎检测到两个游戏对象的碰撞器发生接触或重叠时,会发生碰撞,前提是至少一个游戏对象具有刚体组件并且处于运动状态。 更多信息
查看 词汇表
以提高碰撞稳定性。
使用虚拟粒子 每个三角形添加一个虚拟粒子以提高碰撞稳定性。
求解器频率 每秒的求解器迭代次数。
休眠阈值 布料的休眠阈值。
胶囊碰撞器胶囊形碰撞器组件,用于处理像桶和角色肢体这样的游戏对象的碰撞。 更多信息
查看 词汇表
此布料实例应与之发生碰撞的胶囊碰撞器数组。
球形碰撞器球形碰撞器组件,用于处理像球体或其他在物理方面可以粗略地近似为球体的游戏对象的碰撞。 更多信息
查看 词汇表
此布料实例应与之发生碰撞的布料球形碰撞器对数组。

详细信息

布料不会对场景中的所有碰撞器用于处理对象物理碰撞的不可见形状。碰撞器不需要与对象的网格完全相同形状 - 粗略的近似通常更有效,并且在游戏玩法中难以区分。 更多信息
查看 词汇表
做出反应,也不会将力反作用于世界。添加布料组件后,布料组件不会对其他任何物体做出反应,也不会影响其他任何物体。因此,布料和世界不会相互识别或看到彼此,直到您手动将世界中的碰撞器添加到布料组件中。即使那样,模拟仍然是单向的:布料对这些物体做出反应,但不会将力反作用于这些物体。

此外,您只能将三种类型的碰撞器与布料一起使用:球体、胶囊和圆锥形胶囊碰撞器,它们使用两个球形碰撞器构建。所有这些限制都存在于提高性能方面。

编辑约束工具

您可以对布料的特定顶点应用约束,以使其运动自由度更高或更低。

检查器一个 Unity 窗口,用于显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
查看 词汇表
中,选择布料组件中的编辑布料约束(左上角按钮)。当工具处于活动状态时,场景视图中的网格所有顶点上都会出现小球体。它们代表您可以应用约束的布料粒子。布料约束工具窗口也会出现在场景视图的右下方。

The Cloth Constraints Tool being used on a Skinned Mesh Renderer.
在带蒙皮的网格渲染器上使用布料约束工具。

约束类型和颜色

对于每个布料粒子,您可以设置和显示两种类型的约束:* 最大距离 - 布料粒子可以从其顶点位置移动的最大距离。* 表面穿透 - 布料粒子可以穿透网格的深度。

粒子的颜色表示其约束在布料中的相对值,根据当前选择的约束类型而定。

约束可视化

The visualization properties of the Cloth Constraints Tool.
布料约束工具的可视化属性。
属性 功能
可视化 允许您选择要显示的约束类型和粒子。
最大距离 仅显示布料粒子的最大距离值。
表面穿透 仅显示布料粒子的表面穿透值。
操作背面 启用此选项以可视化和操作可能隐藏在当前朝向部分布料后面的粒子。
[ 颜色光谱 ] 根据当前在整个布料中应用的最小值和最大值,提供粒子颜色与上述选定约束类型的约束值之间的对应关系。黑色始终表示粒子没有约束。
约束大小 代表布料粒子的球体显示大小。根据您的方便调整此值以简化约束编辑。此属性对约束本身没有影响。

约束编辑模式

您可以使用 3 种不同的模式来编辑布料约束值。

模式 描述
选择 允许您将固定约束值应用于预先选定的粒子组。
绘制 允许您通过使用画笔绘制布料粒子来应用固定约束值。
渐变 允许将约束值的左到右线性渐变应用于预先选定的粒子组。

根据您使用的模式,工具属性和您需要执行的步骤会有所不同。在所有情况下,最后一步都对应于应用约束值的步骤。

使用选择模式

The Cloth Constraints Tool in Select mode.

  1. 使用鼠标光标绘制选择框或逐个点击粒子。
  2. 启用您要应用于选择的约束类型:最大距离表面穿透或两者。
  3. 根据您刚刚启用的约束类型设置一个值。
使用绘制模式

The Cloth Constraints Tool in Paint mode.

  1. 根据您需要用画笔覆盖的区域调整画笔半径
  2. 启用您要应用的约束类型:最大距离表面穿透或两者。
  3. 根据您刚刚启用的约束类型设置一个绘制值。
  4. 使用画笔在粒子上绘制约束。
使用渐变模式

The Cloth Constraints Tool in Gradient mode.

  1. 确保在场景视图中启用2D视图(工具在 3D 视图中无法应用渐变)。
  2. 使用鼠标光标绘制选择框或逐个点击粒子。
  3. 设置您要应用于选择的左到右渐变的限制值:渐变开始渐变结束
  4. 启用您要应用于选择的约束类型:最大距离表面穿透或两者。

自碰撞和相互碰撞

布料碰撞使游戏中的角色服装和其他织物移动更加真实。在 Unity 中,布料具有多个处理碰撞的布料粒子。您可以为布料粒子设置以下内容

  • 自碰撞,防止布料穿透自身。
  • 相互碰撞,允许布料粒子相互碰撞。

要为布料设置碰撞粒子,请在布料检查器中选择自碰撞和相互碰撞按钮

The Self Collision and Intercollision button in the Cloth Inspector
布料检查器中的自碰撞和相互碰撞按钮

布料自碰撞和相互碰撞窗口将出现在场景视图中

The Cloth Self Collision And Intercollision window
布料自碰撞和相互碰撞窗口

具有布料组件的蒙皮网格会自动出现布料粒子。最初,没有布料粒子设置为使用碰撞。这些未使用的粒子将显示为黑色

Unused cloth particles
未使用的布料粒子

要应用自碰撞或互碰撞,您需要选择一组粒子来应用碰撞。要选择一组用于碰撞的粒子,请单击**选择**按钮

Select cloth particles button
选择布料粒子按钮

现在左键单击并拖动以选择要应用碰撞的粒子

Selecting cloth particles using click and drag
使用单击和拖动选择布料粒子

选定的粒子将以蓝色显示

Selected cloth particles are blue
选定的布料粒子为蓝色

选中**自碰撞和互碰撞**复选框以将碰撞应用于选定的粒子

Self Collision and Intercollision tick box
自碰撞和互碰撞复选框

您指定用于碰撞的粒子将以绿色显示

Selected particles are green
选定的粒子为绿色

要为布料启用自碰撞行为,请转到布料检查器窗口的**自碰撞**部分,并将**距离**和**刚度**设置为非零值

Self Collision parameters
自碰撞参数
属性 功能
距离 每个粒子周围球体的直径。Unity 确保这些球体在模拟过程中不会重叠。**距离**应小于配置中两个粒子之间的最小距离。如果距离较大,自碰撞可能会违反某些距离约束并导致抖动。
刚度 粒子之间分离脉冲的强度。布料求解器会计算此值,它应该足以使粒子保持分离。

自碰撞和互碰撞会占用大量整体模拟时间。考虑保持碰撞距离较小并使用自碰撞索引来减少相互碰撞的粒子数量。

自碰撞使用顶点,而不是三角形,因此不要期望自碰撞对三角形尺寸远大于布料厚度的网格完全有效。

**绘制**和**擦除**模式允许您通过按住鼠标左键并拖动单个布料粒子来添加或删除用于碰撞的粒子

Self Collision parameters
自碰撞参数

处于**绘制**或**擦除**模式时,指定用于碰撞的粒子为绿色,未指定的粒子为黑色,刷子下的粒子为蓝色

Particles being painted are blue
正在绘制的粒子为蓝色

布料互碰撞

您指定用于互碰撞的粒子与指定用于自碰撞的粒子相同,如上所述。与自碰撞一样,您为互碰撞指定一组粒子。

要启用互碰撞行为,请打开**物理**设置(从 Unity 主菜单中:**编辑** > **项目设置**一套广泛的设置,允许您配置项目中物理、音频、网络、图形、输入和许多其他方面的行为。 更多信息
参见 词汇表
,然后选择**物理**类别),然后在**布料互碰撞**部分将**距离**和**刚度**设置为非零值

Enable intercollision behavior in the Physics settings
在物理设置中启用互碰撞行为

布料互碰撞的**距离**和**刚度**属性的功能与自碰撞的距离和刚度属性相同,如上所述。

碰撞器碰撞

布料无法简单地与任意世界几何体碰撞,现在只会与在 胶囊碰撞器球形碰撞器 数组中指定的碰撞器交互。

球形碰撞器数组可以包含一个有效的 球形碰撞器 实例(第二个为 null)或一对。在前一种情况下,ClothSphereColliderPair 仅表示布料碰撞的单个球形碰撞器。在后一种情况下,它表示由两个球体和连接两个球体的锥体定义的锥形胶囊形状。锥形胶囊形状对于模拟角色的肢体很有用。


  • 2017-12-05  页面已修改

  • 布料自碰撞和互碰撞添加在 2017.3 NewIn20173

布料

关节和布娃娃稳定性
多场景物理