车轮碰撞体组件具有一组属性来模拟车辆的悬架系统。
为了模拟悬架,车轮碰撞体会在悬架距离 (Suspension Distance) 线上设置一个目标位置 (Target Position),始终尝试将中心返回到该位置,并具有弹簧 (Spring) 和阻尼器 (Damper) 属性,这些属性会影响车轮碰撞体远离该位置以及返回到该位置的方式。
车轮碰撞体的目标位置 (Target Position) 是沿悬架距离 (Suspension Distance) 线的点,当没有作用力(或作用力相等力)时,车轮碰撞体的中心始终返回到该点。
要设置目标位置 (Target Position),请指定沿悬架距离 (Suspension Distance) 线介于 0 和 1 之间的坐标。
默认情况下,目标位置为 0.5,正好位于最大悬架弹簧拉伸和压缩点之间的中间位置。对于大多数车辆模拟,典型值在 0.3 到 0.7 之间。
在现实世界的悬架系统中,弹簧将车轮和轴连接到车辆的框架和车身,并承受车身的重量。弹簧根据地形变化而拉伸和压缩,并吸收地面的一些向上力,因此车身不会对地面的每个凹凸做出反应。弹簧吸收能量的程度取决于其刚度。
在 Unity PhysX 模拟中,车轮碰撞体通过在垂直 Y 轴上的悬架距离 (Suspension Distance) 线上下移动(远离目标位置 (Target Position))来模拟弹簧。弹簧 (Spring) 属性的值表示弹簧的刚度(以牛顿/米为单位)。
较小的值模拟柔软、灵活的悬架弹簧,无需很大的力即可轻松拉伸和压缩。在软悬架中,柔性弹簧会吸收更多的凹凸和颠簸,因此车辆的车身运动更平滑。
较高的值会模拟刚度较大的悬架弹簧,该弹簧具有更强的拉伸或压缩阻力,因此需要更大的力才能移动。在硬悬架中,更多的凹凸和颠簸会转移到车身,但车辆的整体操控性更强。
在现实世界的悬架系统中,阻尼器会阻止悬架弹簧的运动并耗散其存储的能量。阻尼器的冲击强度定义了弹簧在被压缩或拉伸后减速和停止弹跳的速度。阻尼器通常称为减震器。
在 Unity PhysX 模拟中,车轮碰撞体通过减少悬架弹簧的能量来模拟阻尼器或减震器。阻尼器 (Damper) 属性的值表示能量耗散的速率(以牛顿秒/米为单位)。
较高的值会模拟一个快速耗散弹簧能量的硬阻尼器。硬阻尼可快速降低弹性并使车轮碰撞体在目标位置恢复到稳定状态。
较小的值会模拟一个缓慢耗散弹簧能量的软阻尼器。在车轮碰撞体稳定回到目标位置之前,软阻尼可以提供更多弹性。
默认情况下,车轮碰撞体的弹簧 (Spring) 值为 35000,阻尼器 (Damper) 值为 4500。这些默认值假定汽车的总质量为 1500 公斤。
要设置车辆的质量,请将一个刚体 (Rigidbody) 组件添加到车辆的根游戏对象。要使车辆与默认悬架设置配合良好,请将刚体的质量 (Mass) 设置为推荐值 1500。然后,您可以根据具体车辆设置进行测试和迭代。
PhysX 按比例计算质量和力,这意味着它们取决于每个值之间的相对距离。如果要为车辆使用较低的质量值(以匹配场景中不同游戏对象上的其他刚体质量),还必须以相同比例减小车轮碰撞体的弹簧 (Spring) 和阻尼器 (Damper) 值。例如,如果将车辆的质量 (Mass) 设置为 15,还应将弹簧 (Spring) 和阻尼器 (Damper) 分别调整为 350 和 45,而不是 35000 和 4500。这可确保车辆模拟中的行为一致且逼真。