有界梁

有界梁(Bounded Beams)会根据拉伸量与速度改变刚度和阻尼。它们主要用于减振器和悬架限位器,因为可以实现多阶段阻尼与缓冲止挡(bump stops)。

有界梁的高级属性会造成额外的性能开销,因此应谨慎使用。在许多场景下可改用预压缩的支撑梁(Support Beams)

你可以在同一对节点之间使用多根有界梁来模拟不同悬架部件。与普通的梁不同,此时控制台不会报错。

有界属性

当梁的拉伸或压缩超过某一阈值时,其刚度和阻尼会从标准值切换到第二组刚度与阻尼值。这种特性常用于模拟悬挂上的缓冲止挡(bump stops)和限位带(limit straps),也可以用来限制某些物体的运动范围。

属性变化并不是瞬间完成的,而是当接近极限时,从梁的初始属性逐渐过渡到有界属性。过渡区长度由"boundZone"参数控制。

进阶阻尼属性

阻尼可分为压缩阻尼(bound)和回弹阻尼(rebound),同时又可分为慢速阻尼(slow)和快速阻尼(fast)。若设置了独立的回弹阻尼值,则常规阻尼值仅在梁被压缩时生效,而回弹阻尼在梁被拉伸时生效。这常用于精细调校重心转移行为,以及平衡路面冲击吸收与悬架回弹速度。

快速阻尼同样分为压缩阻尼与回弹阻尼两部分,它是在梁伸缩速度超过某个特定阈值时所使用的阻尼值,由速度分区(velocity split)设置决定。对于公路和赛道车辆,快速阻尼通常比慢速阻尼低,以便在路肩、坑洼等冲击下悬挂表现更柔软,同时仍能用慢速阻尼控制重心转移。对于越野车辆,快速压缩阻尼通常会设置得与慢速阻尼比较接近,以便在不触底的情况下吸收更大冲击。

在原版车辆中也常见在转向及其他悬架部件上使用阻尼梁,以避免振荡,尤其在失去抓地力(车轮空转或抱死)时。这些梁通常将慢速阻尼设为0或非常小,而主要依靠快速阻尼来控制振荡。

随着速度增加,产生的阻尼力总是持续上升的。但阻尼曲线的走势会因设置不同而呈现渐进式(progressive,红色)或递减式(digressive,蓝色)。

弹簧与阻尼的作用机制存在显著差异,具体体现在生效时机上。对弹簧和限位(bound)而言,拉伸或压缩与位置相关,即beam是否比生成时的初始长度更长或更短;对阻尼(damp/dampRebound)而言,压缩与回弹是速度相关的,也就是beam已经被拉伸(extension)或压缩(compression)。

必要参数

参见梁(Beams)页面

可选参数

number
type
1.0
default
beam在开始应用限位属性前允许的最大拉伸量

0.0表示beam一旦拉伸就开始应用限位属性。

0.5表示beam可拉伸到生成长度的150%后才开始应用限位属性。

1.0表示beam可拉伸到生成长度的200%后才开始应用限位属性。

string
type
在生涯模式货运玩法中,定义beamLongBound随cargoGroup载荷变化的函数

示例用法:

{"beamLongBoundFunction":"=0.1*(1-$load/1000)","cargoGroup":"RoofbarTank1"},
number
type
1.0
default
beam在开始应用限位属性前允许的最大压缩量

0.0表示beam一旦压缩就开始应用限位属性。

0.5表示beam可压缩到生成长度的50%后才开始应用限位属性。

1.0表示beam可压缩到其生成长度的最小值后才开始应用限位属性。

string
type
在生涯模式货运玩法中,定义beamShortBound随cargoGroup载荷变化的函数

示例用法:

{"beamShortBoundFunction":"=0.3*(1-$load/1000)","cargoGroup":"RoofbarTank1"},
number
type
1
default
达到限位后到完全应用限位属性所需的变形量(米)
请注意,默认值为1米,这会导致属性的切换非常渐进(progressive),过渡非常平缓,对很多应用场景来说可能过长。
number
type
beam需要拉伸到触发限位属性的距离(米)

值为0.5表示beam需拉伸0.5米后才应用限位属性。

使用该属性会覆盖beamLongBound参数。

number
type
beam需要压缩到触发限位属性的距离(米)

值为0.5表示beam需压缩0.5米后才应用限位属性。

使用该属性会覆盖beamShortBound。

number
type
1.0
default
当beam长度达到longBound或shortBound时开始应用的弹簧刚度(N/m)
string
type
在生涯模式货运玩法中,定义beamLimitSpring随cargoGroup载荷变化的函数

示例用法:

{"beamLimitSpringFunction":"=100*$load*($load/1000)+80000","cargoGroup":"RoofbarTank1"},
number
type
1.0
default
当beam长度达到longBound或shortBound时开始应用的额外阻尼值
string
type
在生涯模式货运玩法中,定义beamLimitDamp随cargoGroup载荷变化的函数

示例用法:

{"beamLimitDampFunction":"=0.3*$load*($load/1000)+100","cargoGroup":"RoofbarTank1"},
number
type
beamLimitDamp
default
当beam长度达到longBound或shortBound时开始应用的回弹阻尼(N/m/s),但仅在beam拉伸时生效
若定义该值,则beamLimitDamp仅在beam被压缩时生效。
number
type
beamDamp
default
仅在beam拉伸时应用的阻尼值(N/m/s)
若定义该值,则beamDamp仅在beam被压缩时生效。
number
type
beamDamp
default
当beam的伸缩速度>beamDampVelocitySplit时使用的阻尼值(N/m/s)。
number
type
beamDampRebound
default
当beam的拉伸速度>beamDampVelocitySplit时使用的回弹阻尼值(N/m/s)。
number
type
FLT_MAX
default
伸缩速度阈值(m/s),超过该阈值后beamDampFast与beamDampReboundFast生效(m/s)。
number
type
FLT_MAX
default
回弹方向的速度阈值(m/s),超过该阈值后beamDampReboundFast生效(m/s)。
在回弹方向覆盖beamDampVelocitySplit。

有界梁(Bounded Beams)也支持与梁(Beams) 相同的可选参数。

简单示例

一组简易车用减振器。

//front dampers
{"beamPrecompression":1.0, "beamType":"|BOUNDED", "beamLongBound":1.0 "beamShortBound":1.0},
{"beamDeform":12000,"beamStrength":140000},
{"beamLimitSpring":0,"beamLimitDamp":0},
{"beamSpring":0,"beamDamp":850},
["fh1r","fs1r", {"beamDampRebound":1700,"dampCutoffHz":500}],
["fh1l","fs1l", {"beamDampRebound":1700,"dampCutoffHz":500}],

用于抑制转向振荡的转向阻尼梁。

//steering damper
{"beamPrecompression":1.0, "beamType":"|BOUNDED", "beamLongBound":1.0, "beamShortBound":1.0},
{"beamSpring":0,"beamDeform":15120,"beamStrength":37800},
{"beamLimitSpring":0,"beamLimitDamp":0},
{"beamDamp":100},
["fh3r","fx1r", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
["fh3l","fx1l", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
["fh5r","fx2r", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
["fh5l","fx2l", {"beamDampVelocitySplit":0.1,"beamDampFast":1000,"dampCutoffHz":1000}],
{"beamPrecompression":1.0, "beamType":"|NORMAL", "beamLongBound":1, "beamShortBound":1},

进阶示例

设计拉力赛减振器:为压缩与回弹分别使用不同速度分界的两对梁,并配合软液压缓冲块。

//dampers
{"beamPrecompression":1, "beamType":"|BOUNDED", "beamLongBound":1, "beamShortBound":1},
{"beamSpring":0,"beamDamp":3700},
{"beamLimitSpring":0,"beamLimitDamp":0},
//bump
["fh1r","fs1r", {"name":"shock_FR", "beamDampRebound":0,"beamDampVelocitySplit":0.35,"beamDampFast":2500,"beamDampReboundFast":0,"dampCutoffHz":500}],
["fh1l","fs1l", {"name":"shock_FL", "beamDampRebound":0,"beamDampVelocitySplit":0.35,"beamDampFast":2500,"beamDampReboundFast":0,"dampCutoffHz":500}],
//rebound
{"beamSpring":0,"beamDamp":0},
["fh1r","fs1r", {"beamDampRebound":6700,"beamDampVelocitySplit":0.25,"beamDampFast":0,"beamDampReboundFast":3400,"dampCutoffHz":500}],
["fh1l","fs1l", {"beamDampRebound":6700,"beamDampVelocitySplit":0.25,"beamDampFast":0,"beamDampReboundFast":3400,"dampCutoffHz":500}],
//hydraulic bump stop
{"beamSpring":0,"beamDamp":0},
{"beamLimitSpring":15000,"beamLimitDamp":15000},
["fh1r","fs1r", {"longBoundRange":2,"shortBoundRange":0.03,"boundZone":0.01,"beamLimitDampRebound":1000,"dampCutoffHz":250}],
["fh1l","fs1l", {"longBoundRange":2,"shortBoundRange":0.03,"boundZone":0.01,"beamLimitDampRebound":1000,"dampCutoffHz":250}],
{"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1.0, "beamShortBound":1.0},
上一次修订: 五月 19, 2026

还有其他问题?

加入我们的 Discord 服务器
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.