车辆 – COSMIC 悬挂系统
汉化标题:车辆 – COSMIC 悬挂系统
原文标题:Cars – COSMIC Suspension
汉化更新时间:2026-01-13 14:00:00 +0800
英文原文最新更新时间:2025-11-15 02:57:29 -0500
新型 "COSMIC" (Comprehensive Suspension with Modular Input of Configurations) 悬挂系统允许自定义 AC 中其他方式无法提供的悬挂定义 [CSP v0.1.79+]
CSP v0.20+ 完全支持
COSMIC 允许显式创建关节 (joints) 和刚体 (bodies) 以生成所需的悬挂类型,而不是使用原生 AC 中的预设类型(DWB, STRUT, AXLE, ML),同时也避免了 AC 预设中特定类型的错误(STRUT 有很多问题,ML 几乎无法工作等)。
注意:仅推荐给熟练的物理开发者 - COSMIC 移除了许多开发限制,但这同时也意味着很容易越界(例如导致游戏崩溃)。此外,Assetto Corsa (相对较低)的默认物理频率意味着某些悬挂类型将无法良好运行。连杆结构越复杂、刚度越高,Open Dynamics Engine 物理求解器就越难处理。请访问 CSP Discord 寻求开发支持或提出文档建议。
损伤机制目前与原生 AC 相同,防倾杆(ARB)可以使用原生或 cphys 代码(参见通用悬挂文档)。
滚动到底部查看有用的通用提示。
已知错误:
0.1.79
- 滑块关节 (Slider joint) 损坏。已在 0.2 中修复。
- "简单" 阻尼值在避震(Coilovers)上不起作用。已在 0.2 中修复。
- 避震(Coilovers)需要 DAMPER_LUTS 和 dampers.ini。已在 0.2 中通过允许上述选项修复。
- FLIP_PRELOAD 意外默认为 1。设置 FLIP_PRELOAD=0 以恢复正常行为。0.2 版将默认为 0。
- 阻尼 LUT 可能损坏。在 0.2 中正常。
- "麦弗逊 (Strut)" 转向轴问题。已在 0.2 中修复。
- 轮辋偏移 (Rim offset) 不工作。在 0.2 中工作正常,功能见文档(与 KS 不同)。
- 阻尼/弹簧设置选项极其混乱。在 0.2 中全部理顺。
0.2.0
- 使用弹簧 LUT 的避震上的预载损坏。已在 0.2.1 中修复。
- 当使用 TORQUE_MODE_EX=2 时,ENGINE_TORQUE_BODY 工作不 100% 正确(一个函数仍将扭矩应用到错误的刚体)。已在 0.2.1 中修复。
当前
- 扭力杆上的预载损坏,请改用 PRELOAD_TORQUE。将在 0.2.5 中修复。
请务必通读以下每个示例的全部内容,因为关键信息分散在其中。
suspensions.ini
实现示例(注意:如果直接复制粘贴可能无法在游戏中加载,因为几何坐标被随意修改了,这只是为了展示参数):
[_EXTENSION]
TORQUE_MODE_EX=2 ;强烈推荐
DAMPER_LUTS=1 ;CSP v0.1.79 中避震(coilovers)必需,v0.2+ 不再强制
;[ODE] ;可选 - 调整这些参数有助于稳定性。更多信息请参阅 Open Dynamics Engine 手册 (http://ode.org/wiki/index.php/Manual#Joint_error_and_the_Error_Reduction_Parameter_.28ERP.29)
;ERP=0.9 ;这是某些关节类型的 AC 默认值,其他(及全局值)为 0.3
;CFM=1 ;*10^-7 - 只是为了保持数字更合理
[REAR] ;或 front
TYPE=COSMIC
RIM_OFFSET=0.00 ;与 KS 相同
BASEY=0.0 ;CG 到车轮中心的距离(米)。后轮半径+BASEY=后 CoG 实际 CG 高度 =(FWR+FBasey)+(RWR+Rbasey))/CG_LOCATION% ;与 KS 相同
TRACK=1.5 ;对应坐标处的轮辋偏移处的轮距(如果坐标是从车轮中心测量的,则此数字是车轮中心的轮距。如果根本不使用轮辋偏移,建议从轮毂面测量坐标/轮距并输入真实的轮辋偏移)。
HUB_MASS=50 ;与 KS 相同 *但请参阅下面的注释
TOE_OUT=0.0004 ;与 KS 相同
STATIC_CAMBER=-2 ;与 KS 相同
BODY_0_NAME=ROCKER ;可以从 #0 开始定义刚体。预先存在的刚体包括 HUB_L, HUB_R 和 CHASSIS。
BODY_0_MASS=0.2 ;刚体质量,单位 kg
BODY_0_INERTIA=0.1, 0.05, 0.1 ;刚体惯性框 - 对于大多数应用并非特别必要,默认为 0,0,0
BODY_0_POS=0.6, 0.1, 0.1 ;通常最好将其放在刚体的质心处。坐标相对于车轮。
BODY_0_MIRROR=1 ;0 为禁用横向镜像到汽车另一侧,默认为 0
BODY_1_NAME=T_BAR
BODY_1_MASS=0.1 ;质量不一定必须与真实组件匹配,有时为了求解器稳定性,拥有更轻/更重的部件更好。如果部件是簧下质量,最好按合理比例从 HUB_MASS 中移除它(例如,双叉臂大约将其质量的 50% 从 HUB_MASS 中移除。这样做是为了确保汽车的簧下质量保持对所需值的准确性)
BODY_1_INERTIA=0.0, 0.0, 0.0
BODY_1_POS=0.8, 0.2, 0.4
;BODY_2_NAME=CHASSIS2
;BODY_2_MASS=500 ;所有质量都会自动调整 CHASSIS 质量,以确保遵守 car.ini 的质量
;BODY_2_INERTIA=1,1,1
;BODY_2_CARPOS=0,0.0,0 ;carpos 在汽车参考系中,在这种情况下,刚体被放置在汽车的原点(簧上 CoG)
;ENGINE_TORQUE_BODY=CHASSIS2 ; 这行告诉求解器来自发动机/车轮的反作用扭矩应该应用到哪个刚体。对于整体桥设计等有用且必要。
HJ0=ROCKER_HINGE ;铰链关节 (hinge joints) 可用于许多不同的事情,在这种情况下,作为摇臂铰链
HJ0_BODY_B=ROCKER ;如果未列出 BODY_A,则假定为 CHASSIS,如果未列出 BODY_B,则假定为 HUB_L。这对所有关节类型都适用。HUB_R 也可用,L 是默认值。
HJ0_POS_A=0.6, 0, 1 ;POS0 和 POS1 是 v0.1.79 中的标准。POS_A 和 POS_B 将在 CSP v0.2 及更高版本中作为替代工作并将成为标准。POS0 和 POS1 仍可用于向后兼容。相对于车轮的位置(与 KS 相同)
HJ0_POS_B=0.6, 0.1, 1
HJ0_PARITY=-1 ;-1 表示左右镜像,0 表示仅左侧,1 表示仅右侧,默认为 -1
;关于刚体分配的重要说明:
;如果你为 Body A 和 Body B 列出相同的名称,代码将假定你正在连接左侧和右侧的镜像刚体(如果可用)。例如,如果你有一个连接到每侧摇臂的第三弹簧 (heave spring),你只需放置 _BODY_A=ROCKER 和 _BODY_B=ROCKER,它将在无需进一步干预的情况下建立连接。这适用于关节/弹簧/阻尼器/避震等。
;HJ1=CHASSIS_HINGE ;你可以使用铰链通过连接主底盘和副底盘刚体来创建一个基本的底盘弯曲版本(稍后展示)
;HJ1_BODY_B=CHASSIS2
;HJ1_CARPOS_A=0, 0, 1.5 ;关节的 carpos 在 BODY_A 的参考系中。命名有点糟糕,将来可能会添加别名。
;HJ1_CARPOS_B=0, 0, -1.5
DJ0=WB_BOTTOM_FRONT ;距离关节 (distance joints) 是例如 AC 中的 DWB 悬挂所使用的
;DJ0_BODY_A=CHASSIS2
DJ0_POS_A=0.6, -0.1, 0.4
DJ0_POS_A_1=0.6, -0.11, 0.4 ;v0.2+ 中可用的悬挂几何调整,见下面的 setup.ini 文档
DJ0_POS_B=0.05, -0.1, 0.0 ;如果创建一个 3 点叉臂(如此处所示),请确保其轮毂坐标是共享的,否则求解器会有问题
DJ1=WB_BOTTOM_REAR
;DJ1_BODY_A=CHASSIS2
DJ1_POS_A=0.6, -0.1, -0.1
DJ1_POS_B=0.05, -0.1, 0.0
DJ1_KP=0 ;指示此关节是主销底部(也适用于球窝关节) - 用于转向轴 - POS1+BODY_B 是指定的坐标/刚体组合
DJ2=WB_TOP_FRONT
;DJ2_BODY_A=CHASSIS2
DJ2_POS_A=0.5, 0.0, 0.3
DJ2_POS_B=0.1, 0.05, 0.1
DJ3=WB_TOP_REAR
;DJ3_BODY_A=CHASSIS2
DJ3_POS_A=0.6, 0.0, 0.1
DJ3_POS_B=0.1, 0.05, 0.1
DJ3_KP=1 ;指示此关节是主销顶部
STEER_JOINT_0=STEER_LINK ;拉杆 - 与距离关节的唯一区别是前束设置 + 它们是被转向的
;STEER_JOINT_0_BODY_A=CHASSIS2
STEER_JOINT_0_POS_A=0.7, 0.0, -0.2 ;车身侧(在这种情况下 body A 是底盘)。POS_A & POS_B 在 0.2 中有效
STEER_JOINT_0_POS_A_1=0.7, 0.0, -0.22
STEER_JOINT_0_POS_B=0.05, 0.0, -0.2 ;轮胎侧(body B 是轮毂)
DJ4=PUSHROD ;距离关节用作从轮毂到摇臂的推杆
DJ4_BODY_A=ROCKER
DJ4_POS_A=0.6, 0.1, 0.05 ;摇臂侧
DJ4_POS_B=0.1, -0.2, 0.1 ;车轮侧
DJ4_LENGTH_OFFSET = 0.0 ; 默认长度调整 - 在这种情况下,推杆将用于调整行驶高度,所以这有点类似于原生悬挂类型中的 "rod_length"。然而,大多数悬挂将使用弹簧预载来代替。
DJ5=T_BAR_ROD
DJ5_BODY_A=ROCKER
DJ5_BODY_B=T_BAR
DJ5_POS_A=0.7, 0.1, 0.1 ;摇臂侧
DJ5_POS_B=0.7, 0.2, 0.4 ;t-bar 侧
DJ6=ARB_CONSTRAINT1 ;这些距离关节正在重建一个相对复杂的 ARB/第3弹簧连杆机构
;DJ6_BODY_A=CHASSIS2
DJ6_BODY_B=T_BAR
DJ6_POS_A=0.5, 0.0, 0.4 ;底盘侧
DJ6_POS_B=0.8, 0.2, 0.4 ;t-bar 侧
DJ6_PARITY=-1
J0=T_BAR_BJ ;球窝关节 (ball joints) 可用于将刚体连接在一起,仅允许旋转自由度
;J0_BODY_A=CHASSIS2
J0_BODY_B=T_BAR
J0_POS=0.8, 0.0, 0.4
J0_PARITY=0 ;特意不镜像,因为车上只有一个这样的部件
;SLIDER_0=TOOLBOX_PATH ;滑块将 2 个刚体锁定为沿单个轴移动。
;SLIDER_0_BODY_B=TOOLBOX ;可以直接定义 AXIS 或使用 POS_A, POS_B 来计算它
;SLIDER_0_AXIS=0.0,0.0,1.0
;SLIDER_0_POS_A=0,0,0 ;生成的轴优先于 AXIS,两者均可使用
;SLIDER_0_POS_B=0,0,1
;[REAR_TORSION_0] ;扭力杆可用于底盘弯曲 - 确保不要制作未阻尼的弹簧!
;RATE=30000 ;Nm/deg
;PRELOAD_TORQUE=0 ;施加到铰链的预载扭矩 (Nm)
;PRELOAD=0 ;施加到铰链的预载度数(与扭矩叠加)
;HINGE=CHASSIS_HINGE ;扭力杆连接到的铰链
;PARITY=0
[REAR_COILOVER_0] ;用作角阻尼器的避震。避震结合了弹簧和阻尼器(以及其他一些功能)。截至 v1.79,使用它需要 dampers.ini。
PULL_FORCE=0 ;1 为拉式弹簧/阻尼器,默认为 0(常压弹簧/阻尼器)
INSTALL_RATE=4000000 ;可选 - 避震组件的安装刚度,N/m
RATE=200000 ;N/m
;HELPER_RATE=2000 ;辅助弹簧的 N/m - 0.2.2 新增 - 目前不适用于弹簧 lut(弹簧 lut 与线性弹簧并联作用,而不是串联)
;HELPER_TRAVEL=0.02 ;辅助弹簧完全压缩时的偏转米数 - 0.2.2 新增
;BODY_A=CHASSIS2 ;默认为 CHASSIS
BODY_B=ROCKER ;默认为 HUB_L
PRELOAD=0.0 ;米
PRELOAD_FORCE=2400 ;N - 这可用于希望在静态行驶高度下弹簧长度始终相同的情况,无论使用何种弹簧。在这种情况下,汽车使用推杆来调整行驶高度,并且希望阻尼器保持在 "设计" 长度,因此使用预载力。
POS_A=0.5, 0.1, 0.5 ;0.2+ 中的 POS_A 和 POS_B
POS_B=0.7, 0.1, 0.1
MIN_LENGTH=0.3 ;阻尼器的最小长度(触及硬限位并限制悬挂行程的地方)
MAX_LENGTH=0.5 ;阻尼器的最大长度
END_RATE=1000000 ;硬限位的弹簧刚度
END_VTAPER=0.02 ;回弹时刚度逐渐减小的速度
END_VMAX=0.10 ;回弹时末端限制增加 0 力的速度(这些参数有助于避免着陆后反弹造成的能量损失)
BUMPSTOP_GAP=0.035 ;到缓冲块的间隙(当悬挂处于阻尼器的设计长度时 - 即 sqrt((pos0-pos1)^2))。替代方案:缓冲块开始时高于 0 设计的行程
ELECT_LOG=CORNER ;CORNER 或 HEAVE;每轴只使用一次,它指定避震行程应作为该轴指定的角/垂向阻尼器行程记录到某些通道
[REAR_COILOVER_1] ;垂向 (heave) 阻尼器
PULL_FORCE=1 ;拉式弹簧/阻尼器
INSTALL_RATE=5000000 ;N/m
RATE=0 ;N/m - 在这种情况下没有弹簧,只有缓冲块
;BODY_A=CHASSIS2
BODY_B=T_BAR
PRELOAD=0.0 ;米
PRELOAD_FORCE=0 ;N - 此处未显示任何类型的预载,因为悬挂的其余部分正在处理这个问题(它也不会起作用,因为此避震上没有弹簧)
POS_A=0.8, 0.1, 0.1 ;底盘 (body A)
POS_B=0.8, 0.2, 0.4 ;t-bar
MIN_LENGTH=0.2
MAX_LENGTH=0.4
END_RATE=1000000
END_VTAPER=0.02
END_VMAX=0.10
BUMPSTOP_GAP=0.020
PARITY=0 ;不镜像,因为只有一个垂向弹簧
ELECT_LOG=HEAVE
FLIP_PRELOAD=1 ;这可以在设置菜单中翻转预载的符号,见下面的 setup.ini 条目解释
;DAMP_BUMP=5000 ;N sec/m
;DAMP_FAST_BUMP=1000 ;注意:v0.2+。对于设置功能,仍然需要 dampers.ini。仅对不可调阻尼器使用 "简单" 刚度。
;DAMP_FAST_BUMPTHRESHOLD=0.05
;DAMP_REBOUND=10000
;DAMP_FAST_REBOUND=2000
;DAMP_FAST_REBOUNDTHRESHOLD=0.10
;[REAR_SPRING_0] ;也可以添加简单弹簧
;PULL_FORCE=1 ;默认为 0,这与避震的工作方式不同。它从正负偏转两方面拉动。在避震上,符号只是被翻转了
;POS_A=0.7, 0.1, 0.1 ;底盘 (body A)
;POS_B=0.7, 0.2, 0.4 ;t-bar
;BODY_A=ROCKER
;BODY_B=T_BAR
;RATE=1 ;N/m
;INSTALL_RATE=4000000 ;可选 - 弹簧的安装刚度,N/m
;SPRING_LUT=(0.2=0|0.3=1230|0.4=2500) ;可选,m|N
;BUMPSTOP_LUT=(0=0|0.03=5000|0.06=20000) ;可选,橡胶缓冲块的偏转(m)=力(N) lut
;BUMPSTOP_GAP=0.25
;[REAR_DAMPER_0] ;以及简单阻尼器
;DAMP_BUMP=5000 ;N sec/m
;DAMP_FAST_BUMP=1000
;DAMP_FAST_BUMPTHRESHOLD=0.05
;DAMP_REBOUND=10000
;DAMP_FAST_REBOUND=2000
;DAMP_FAST_REBOUNDTHRESHOLD=0.10
;BODY_A=CHASSIS
;BODY_B=HUB_L
;POS_A=0.3,0.5,0
;POS_B=0.3,0.0,0
;MIN_LENGTH=0.355
;MAX_LENGTH=0.575
;END_RATE=1000000
;END_VTAPER=0.02
;END_VMAX=0.10dampers.ini (请参阅 Cars - Suspension 中的基础文档)
新标头 (仅限 1.79):
[FRONT_0] ;增加车上每个阻尼器的索引(包括避震和简单阻尼器 - 所有简单阻尼器在前,然后是避震)
[FRONT_0_BLOWOFF]v0.2+:
[FRONT_0] ;用于简单阻尼器
[FRONT_C0] ;用于避震,索引与 suspensions.ini 中的相同
[FRONT_0_BLOWOFF]
[FRONT_C0_BLOWOFF]bumpstops.ini (请参阅 Cars - Suspension 中的基础文档)
新标头:
[FRONT_C0] ;简单阻尼器的 FRONT_0 格式,为避震添加 C,确保索引与 suspensions.ini 索引匹配
DEFAULT=1 ;与基础文档相同
STACK=2 ;与基础文档相同
[FRONT_C0_0]
LUT=sameasbasedocs.lut
[FRONT_C0_1]
LUT=stillsameasbasedocs.lutsetup.ini
配合上述 suspensions.ini 示例:
[TORSION_RATE_LF_0] ;每个角落,索引与 supension.ini 相同
SHOW_CLICKS=0
TAB=SUSPENSION
NAME=Torsion Bar LF
LUT=suspension_bars_t.lut ;可以使用普通的 MIN/MAX/STEP 或 lut
POS_X=0
POS_Y=0
HELP=HELP_LF_WHEELRATE
[SPRING_RATE_LR_C0] ;C0 代表避震 0
SHOW_CLICKS=0
TAB=SUSPENSION
NAME=Spring Rate LR
LUT=suspension_springs.lut
POS_X=0
POS_Y=8
HELP=Null
;[SPRING_RATE_LR_0] ;0 代表简单弹簧 0
;SHOW_CLICKS=0
;TAB=SUSPENSION
;NAME=Spring Rate LR
;LUT=suspension_springs.lut
;POS_X=0
;POS_Y=8
;HELP=Null
[DJ4_LENGTH_OFFSET_LR] ;适用于任何距离关节。通过设置调整长度,0 为设计长度。
SHOW_CLICKS=0
TAB=SUSPENSION
NAME=Pushrod Length Rear
MIN=-100 ;0.1mm
MAX=100 ;0.1mm
STEP=2 ;0.1mm
POS_X=0.5
POS_Y=7
HELP=NULL
[DJ0_POS_A_SETTING_LR] ;更改给定关节使用的坐标,目前可用于 DJ 和 STEER_JOINT (v0.2+)
SHOW_CLICKS=0
TAB=SUSPENSION
NAME=Front Geometry
LUT=setup_front_susp.lut ;lut 可选,它选择 suspension.ini 条目中定义的索引,因此也可以使用 MIN/MAX/STEP。
DEFAULT=0 ;更改默认加载的悬挂几何
POS_X=0.5
POS_Y=3
HELP=NULL
[STEER_JOINT_0_POS_A_SETTING_LR]
SHOW_CLICKS=0
TAB=SUSPENSION
NAME=Front Geometry
LUT=setup_front_susp.lut ;lut 可选,它选择 suspension.ini 条目中定义的索引,因此也可以使用 MIN/MAX/STEP。
DEFAULT=0 ;更改默认加载的悬挂几何
POS_X=0.5
POS_Y=3
HELP=NULL
[STEER_JOINT_0_LENGTH_OFFSET_LR] ;v0.2+ 适用于任何转向关节。通过设置调整长度,0 为设计长度。
SHOW_CLICKS=0
TAB=SUSPENSION
NAME=Tie Rod Length Rear
MIN=-100 ;0.1mm
MAX=100 ;0.1mm
STEP=2 ;0.1mm
POS_X=0.5
POS_Y=7
HELP=NULL
[SPRING_PRELOAD_LR_C1] ; 弹簧间隙翻转符号 0.1mm - 可以反向使用预载来产生弹簧间隙,在这种情况下,"预载" 实际上被用于弹簧间隙,因此 suspensions.ini 中的值为翻转值
SHOW_CLICKS=0
TAB=SUSPENSION HEAVE
NAME=Spring Gap
MIN=-200 ;0.1mm
MAX=700
STEP=1
POS_X=0
POS_Y=4
HELP=HELP_HF_TRAVEL_RANGE
[BUMPSTOP_LR_C1] ; 橡胶
SHOW_CLICKS=0
TAB=SUSPENSION HEAVE
NAME=Bump Rubber R
LUT=bs_setup.lut
POS_X=1
POS_Y=3
HELP=HELP_HR_WHEELRATE
[BUMPSTOP_GAP_LR_C1] ; 橡胶间隙
SHOW_CLICKS=0
TAB=SUSPENSION HEAVE
NAME=Bump Rubber Gap
MIN=0 ;mm
MAX=70 ;mm
STEP=1 ;mm
POS_X=1
POS_Y=4
HELP=HELP_HF_TRAVEL_RANGE
[BUMPSTOP_NUM_LR_C1] ; 橡胶堆叠数量
SHOW_CLICKS=0
TAB=SUSPENSION HEAVE
NAME=Bump Rubber Stack
MIN=1
MAX=4
STEP=1
POS_X=0.5
POS_Y=5
HELP=Null
[DAMPER_BUMP_LF_C0] ;v0.2+ 索引现在匹配 suspensions ini 索引而不是车上的 "真实" 索引。例如,如果在 suspensions.ini 中索引 1 处有一个 parity=0 的阻尼器,则 LF_1 将存在而 RF_1 不存在。
SHOW_CLICKS=2
TAB=DAMPERS
NAME=Bump
MIN=0
MAX=41
STEP=1
DEFAULT=13
POS_X=0
POS_Y=0
HELP=HELP_LF_DAMPER_BUMP
;[DAMPER_BUMP_LF_0] ;v0.2+
;SHOW_CLICKS=2
;TAB=DAMPERS
;NAME=Bump
;MIN=0
;MAX=41
;STEP=1
;DEFAULT=13
;POS_X=0
;POS_Y=0
;HELP=HELP_LF_DAMPER_BUMPsuspensions.ini 工作示例
麦弗逊 (MacPherson Strut):
[FRONT]
TYPE=COSMIC
RIM_OFFSET=0.047 ; OEM 规格
BASEY=-0.222
TRACK=1.565 ; COSMIC 中添加到轮距的偏移量(本质上是测量轮毂到轮毂),原生 TRACK=1.471
HUB_MASS=52.2 ; 前簧下质量,不包括下面添加的任何簧下质量
BODY_0_NAME=STRUT_HELPER
BODY_0_MASS=10
BODY_0_POS=0.215,0.45,-0.0306 ; 应位于支柱顶部,此刚体允许滑块通过球窝关节安装到底盘
BODY_0_MIRROR=1
; 转向连杆
STEER_JOINT_0=STEER_LINK
STEER_JOINT_0_POS_A=0.385, -0.078, 0.07
STEER_JOINT_0_POS_B=0.039, -0.100, 0.129
DJ0=LCA_REAR
DJ0_POS_A=0.42,-0.091, -0.34
DJ0_POS_B=0.0525, -0.122, 0.01
DJ0_KP=0
DJ1=LCA_FRONT
DJ1_POS_A=0.42,-0.091 ,-0.04
DJ1_POS_B=0.0525, -0.122, 0.01
; 将支柱连接到汽车
J0=STRUT_TOP
J0_BODY_B=STRUT_HELPER
J0_POS=0.215,0.45,-0.0306
J0_KP=1
; 滑块允许轮毂相对于 helper 移动
SLIDER_0=STRUT_MOTION
SLIDER_0_BODY_A=STRUT_HELPER
SLIDER_0_AXIS=-0.108, -0.45, 0.0306 ; 轴或位置都应该工作
SLIDER_0_POS_A=0.215,0.45,-0.0306 ; 如果存在则使用位置
SLIDER_0_POS_B=0.107,0.0,0.0
TOE_OUT=0.00000 ; 前束表示为底盘侧拉杆安装点的横向偏移量(米)
STATIC_CAMBER=-0.7 ; 静态外倾角(度)。相对于悬挂几何和运动的实际外倾角,请在游戏中检查数值
[FRONT_COILOVER_0]
RATE=21000
PRELOAD=0.138
POS_A=0.215,0.45,-0.0306 ; 支柱顶部
POS_B=0.107,0.0,0.0 ; 与滑块相同
MIN_LENGTH=0.40
MAX_LENGTH=0.54
BUMPSTOP_GAP=0.033
[FRONT_DAMPER_0] ;使用简单阻尼率
DAMP_BUMP=2750
DAMP_FAST_BUMP=1040
DAMP_FAST_BUMPTHRESHOLD=0.053
DAMP_REBOUND=5850
DAMP_FAST_REBOUND=2700
DAMP_FAST_REBOUNDTHRESHOLD=0.053
POS_A=0.215,0.45,-0.0306 ; 与避震坐标相同
POS_B=0.107,0.0,0.0通用提示
利用默认值!Cosmic 悬挂文件可能很快变得很长,但许多参数保留默认值即可,这可以显著缩短文件。
所有刚度、力等都是组件级别的。意味着没有轮上比率 (wheel rates) 了,弹簧刚度就是弹簧本身的刚度,阻尼器及其交叉速度也是如此。
在 "设计" cosmic 悬挂时要注意运动约束。球窝关节仅约束平移,因此必须通过其他东西控制旋转(另一个球窝关节将旋转限制为仅 1 个轴,再一个则完全限制相对运动)。距离关节只是两个连接的球窝关节,因此适用相同的原理。铰链本质上也是两个球窝关节(但带有存储轴和角度等的记忆框架)。
如果做的几何结构有弹簧/阻尼器连接到其中一个控制臂(例如大多数 DWB 设计),正确的方法是在控制臂的 CoG 处创建一个刚体(一个公平的近似是 3 个角坐标的加权平均值 - 轮毂点权重为 2,底盘点权重为 1),然后通过球窝关节将该刚体连接到底盘和轮毂。这仅在需要将某些东西连接到控制臂时才需要。如果不需要,它可以只用距离关节制成。
麦弗逊悬挂可以用一个滑块关节、一个刚体和一个球窝关节制成。球窝关节将支柱顶部(刚体)连接到底盘,滑块关节将轮毂连接到支柱顶部。
关节类型
BALL: 通过自由旋转的插座连接,确保物体之间距离恒定:
SLIDER: 基本滑块连接:
DISTANCE: 确保点之间距离的连接:
HINGE: 确保围绕提供的轴只有 1DoF(自由度)的连接: