距离约束
- 距离约束将成对的粒子连接在一起,迫使它们之间保持一定的距离(我们将这个距离称为约束的 “休息长度”)。Obi为你的布网的每一个边缘,或者为你的绳索的每一段创建一个拉伸约束。这些约束对你的布和绳的外观至关重要,所以了解它们的所有参数至关重要。
- Stretching scale
- 这是每个约束的休息长度的比例因子。任何距离约束的初始休息长度都是由使用它的ObiActor设置的固定值。你可以通过设置一个比例因子>1来增加这个距离(使约束条件扩大),或者通过使用一个比例因子<1来减少它(使约束条件缩小)。
- stretching scale: 0.75

- stretching scale: 1

- stretching scale: 1.25

- Stretch compliance (m/N) //拉伸顺应性
- 这控制了约束条件对长度变化的抵抗程度。在高值时,约束条件将提供很少的拉伸/压缩阻力,使布/绳看起来有弹性。低值将增加约束的刚度。值为零(默认值)将尝试实现完全的刚度,是否实现取决于模拟预算(时间步长大小和距离约束迭代量)。
- stretching stiffness: 0.7

- stretching stiffness: 1

- Max Compression
- 这是约束条件在启动前允许压缩的百分比。值为0时,将使约束条件抵抗任何压缩,值为1时,它们根本不会抵抗压缩。值为0.5时,一旦约束物的长度低于其休息长度的50%,就会使约束物抵抗压缩。非常轻的布(如丝绸,或细网)将受益于高松弛值。
销钉约束
- 现在你知道Obi粒子可以固定在actor的局部空间,所以它们相对于actor不会移动。然而,如果你将ObiCloth对象作为一个刚体的父对象,所有固定的粒子将只是模仿刚体的运动,而不会对其施加任何力。这意味着,布会对刚体的运动做出反应,但刚体对布却没有任何反应。
- 销钉约束允许你将布粒子附着在刚体上,稳定一个双向的能量交换通道:粒子的运动将影响刚体,而刚体的运动将影响粒子。
- 与其他大多数约束条件不同,销钉约束条件并不存储在蓝图中。它们是由 dynamic particle attachments自动创建和管理的。
- 如果销钉在collider的体积内,请确保你的collider的层和actor的collider是一样的,以避免碰撞和引脚约束互相打架。(见下节)
- 一个很好的例子就是风动船。帆应该跟随船的运动,但当风吹来时,它们也必须能够推动船的运动。因此,一个好的想法是使用dynamic attachments将帆连接到船上。
- 使用dynamic attachments(销钉约束)来创建物理模拟帆。

- 两个销钉钉在胶囊上。

- 销钉限制和碰撞
- 当将一个粒子钉入非常接近或位于collider内部时(使它们重叠),如果你启用了碰撞约束,你可能会遇到两种约束相互对抗的情况。这将导致抖动和/或在针脚位置的不希望的偏移,因为碰撞和针脚约束不能同时满足。如果粒子被钉在一个刚体上,结果会更糟糕,因为这种设置会导致一个力反馈循环,其行为基本上没有定义。
- 绳索钉在collider上。销钉约束(青色显示)试图

本文详细介绍了Unity中的Obi插件约束系统,包括距离约束、销钉约束、体积约束、空气动力约束、弯曲约束、栓系约束、蒙皮约束和形状匹配约束。各种约束用于模拟不同类型的物理效果,如布料、绳索的弹性、刚体交互等,通过调整参数可以实现逼真的物理模拟。
—— 约束&spm=1001.2101.3001.5002&articleId=109686977&d=1&t=3&u=53e1e8c1915c40cf9f33b77d61e32079)
2383

被折叠的 条评论
为什么被折叠?



