BeamNG 的名字来源于梁(Beams)。
“梁”是节点之间的弹簧-阻尼连接,用于构建游戏中所有车辆的主体结构,并可按需发生形变与断裂。
为满足不同用途,我们有多种类型的“梁”,你可以在各个示例中了解详细的内容。“标准梁”表现为带阻尼的简单弹簧,被用在大多数场景中,在必要时可形变和断裂。
“标准梁”类型所使用参数均适用于其他类型的各个梁。
有关梁的部分包含许多可选参数。我们按梁的使用频率由高到低分组说明。
以下这些是最基础的参数,在 Jbeam 文件中随处可见,对于正确模拟来说是必需的。点此可查看介绍页面的简要说明。
可能的取值:
使beam长度产生单位变化所需的作用力。若beam刚度相对于节点质量过高,可能导致beam振动并引发稳定性问题。
beamSpring 值为 0 的beam不会被控制台识别为重复连接,这允许在结构中添加额外的纯阻尼beam。
beam在断裂前可抵抗的最大力。
值为 “FLT_MAX” 时beam不会断裂。
仅用于可断裂beam,即beamStrength不为"FLT_MAX"的beam。此类beam用于模拟塑性材料,或将车辆部件连接在一起。
当参数类型为string(字符串)时,beam属于单一指定的breakGroup,这是常见情况。
["a","b", {"breakGroup":"group_1"}],
当参数类型为table(列表)时,beam属于表内指定的所有breakGroup。这意味着这些breakGroup中的任意一根beam断裂时,该beam都会自动断裂,同时触发其所属的所有breakGroup的连锁断裂行为。实际使用极少,且不支持beam可视化调试模式。
["a","b", {"breakGroup":["group_1","group_2"]}],
网格断裂允许在底层beam单元断裂时,动态移除柔性体(flexbody)网格的对应多边形,从而避免某些jbeam结构部分脱离后网格产生过度拉伸形变。
当可断裂beam仅作为结构支撑时(如乘员舱),禁用网格断裂很有用。
三角面断裂允许车辆三角面在基础beam断裂后动态切换为无碰撞与无气动状态。用于连接两个可分离部件的三角面片(如车身与车架),以及可破碎玻璃,以在其上动态形成物理破孔。
当可断裂beam仅作为结构支撑时(如乘员舱),禁用三角面断裂很有用。
用于限制beam的形变。deformLimitExpansion是其中最常用的参数,用于多数Jbeam文件。
形变组用于在beam发生形变时触发动作。多数情况下仅用于玻璃/灯具的视觉损伤与动力总成损坏。
用于触发 flexbody 形变组,也用于部分动力总成部件的损伤模拟。
当参数为字符串时,beam属于单一指定的deformGroup,这是常见情况。
["a","b", {"deformGroup":"group_1"}],
当参数为table(列表)时,beam属于所有指定的 deformGroup。这意味着会同时触发多个形变行为。实际使用极少,且不支持beam可视化调试模式。
["a","b", {"deformGroup":["group_1","group_2"]}],
带deformGroup的beam不会被控制台视为重复beam。这是因为常见做法是使用脆性重复beam来模拟可断裂玻璃。
如果一根beam同时具有breakGroup和deformGroup,断裂时将根据其两个节点的nodeMaterial生成玻璃或木屑粒子。用于车窗和木质道具(如钢琴)。
典型值为非常小的数(小于0.1)。当beam缩短或拉长超过该数值,形变组将被触发。
该属性会为beam创建形变触发器,导致任意带该属性的beam发生形变时执行额外代码。性能开销较大,仅在需要时使用。
这些参数定义beam在生成时的长度变化,常用于悬架部件。
覆盖beamPrecompression参数。
值为0.2表示生成时beam延长0.2米;值为-0.2表示生成时beam缩短0.2米。
仅用于某些悬架部件及其他关键车辆部件。
仅适用于normal、bounded与l-beam类型的beam。
主要用于悬架部件和其他关键jbeam部件,帮助在不引发数值失稳的前提下提升有效阻尼。
计算开销较大,仅在需要时使用。
这些参数用于在beam承担支柱或减振器角色时使用,并且应仅在这些beam上成组设置。
仅用于货物载荷。
示例用法:
{"beamSpringFunction":"=150*$load+1100","cargoGroup":"RoofbarTank1"},
示例用法:
{"beamDampFunction":"=0.2*$load+50","cargoGroup":"RoofbarTank1"},
示例用法:
{"beamStrengthFunction":"=150*$load+1100","cargoGroup":"RoofbarTank1"},
示例用法:
{"beamDeformFunction":"=150*$load+1100","cargoGroup":"RoofbarTank1"},
这些用于短期调试,最终结构中应移除。
该表包含3个元素,其中2个必填、1 个可选:“radius” 为数值(米),设置高亮半径;“col” 为颜色十六进制字符串或RGB表。示例:
["a","b", {
"highlight":{
"radius":0.005,
"col":"#ff0000ff"
}
}],
效果等同于:
["a","b", {
"highlight":{
"radius":0.005,
"col":{
"r":255,
"g":0,
"b":0,
"a":255
}
}
}],
“length"是可选参数,将以米为单位覆盖高亮圆柱的长度。它可以比默认梁长度更长或更短。圆柱中心始终位于梁中心。此参数从BeamNG 0.34版本起可用。
["a","b", {
"highlight":{
"radius":0.005,
"col":"#ff0000ff",
"length":0.1
}
}],
节点a与b之间的一根梁。
"beams": [
["id1:", "id2:"],
["a","b"],
]
典型的梁示例,首先初始化后续梁将使用的全部属性。
{
"beams": [
["id1:", "id2:"],
//--车身--
//车顶主形状纵向
{"beamPrecompression":1, "beamType":"|NORMAL", "beamLongBound":1, "beamShortBound":1},
{"beamSpring":1401000,"beamDamp":140},
{"beamDeform":32700,"beamStrength":"FLT_MAX"},
{"deformLimitExpansion":1.1},
["rf1r","rf2r"],
["rf1","rf2"],
["rf1l","rf2l"],
["rf2r","rf3r"],
["rf2","rf3"],
["rf2l","rf3l"],
["rf3r","rf4r"],
["rf3","rf4"],
["rf3l","rf4l"],
]
}
0.38.5.0 contains
833060 entries in
10985 sections distributed over
20043 parts in
5090 jbeam files.这篇文章对你有用吗?