【Unity】Obi插件系列(五)—— 约束

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

距离约束在这里插入图片描述

  • 距离约束将成对的粒子连接在一起,迫使它们之间保持一定的距离(我们将这个距离称为约束的 “休息长度”)。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上。销钉约束(青色显示)试图
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值