Skip to content

车辆 – 仪表 – 输入

汉化标题:车辆 – 仪表 – 输入
原文标题:Cars – Instruments inputs
汉化更新时间:2026-01-14 00:00:00 +0800
英文原文最新更新时间:2022-06-13 01:18:53 +0300

v0.1.25-preview183 版本中,创建了一种更好的仪表设置方式。其理念是拥有一个可供数字和模拟仪表(包括条件文本)、动画甚至发光体使用的输入列表(具有可选的切换阈值和切换到模拟模式的可能性)。

为了旧扩展仪表的现有代码已被重写,以避免运行三个独立的系统,但我尽力保持兼容性。不过,如果您发现任何问题,请告知我。

语法

为了保持兼容性,选择输入的方式在不同情况下可能有所不同。例如:

注意:"..." 代表 INPUT 类型

ini
; 模拟仪表
; 新方法:
[ANALOG_INDICATOR_...]
INPUT = AMBIENT_TEMP

; 旧式方法(仅适用于小时、分钟和秒,以保持时钟工作):
[HOUR_INDICATOR]
...

; 数字仪表
; 通过 digital_instruments.ini 设置的方法
[ITEM_0]
TYPE_EXT = DRIFT_POINTS

; 旧式方法(适用于任何输入):
[DI_DRIFT_POINTS]
DIGITAL_ITEM = 0

; 数字仪表(条件)
; 通过 digital_instruments.ini 设置的方法
[ITEM_0]
TYPE_EXT = CONDITION_TEXT
INPUT = TURBO_WASTEGATE

; 自定义动画
; 新方法
[ANIMATION_...]
INPUT = LOWBEAM

; 旧式方法(适用于任何输入):
[ANIMATION_...]
BIND_TO_EXTRA_A = 1

; 发光体
; 新方法
[EMISSIVE_...]
INPUT = BODY_DAMAGE

; 旧式方法(适用于任何输入):
[EMISSIVE_LIGHT]
...

...

输入参数

对于所有这些类型的输入,如您所见,您有一个定义事物的部分。在这里,您几乎可以以任何可能需要的方式配置输入。

ini
[ANIMATION_...]
INPUT = TYRE_PRESSURE
INPUT_SELECTOR = THIRD

INPUT_ADD = 0.0
INPUT_MULT = 1.0
INPUT_MIN = 10.0
INPUT_MAX = 40.0
INPUT_MOD = 5.0
INPUT_LUT = (| 0=0 | 10=20 |)

INPUT_LAG_UP = 0.9
INPUT_LAG_DOWN = 0.95

INPUT_ROUND = 2.0
INPUT_ROUND_MODE = FLOORING

INPUT_STALLED_VALUE = 7.5
INPUT_STALLED_LAG = 0.85

[EMISSIVE_...]
INPUT = BODY_DAMAGE
INPUT_THRESHOLD = 20
INPUT_THRESHOLD_INVERSE = 1
INPUT_DEBUG = 30
  • INPUT: 定义输入类型,但在某些情况下,定义类型的方式可能有所不同。有关更多详细信息,请参阅"语法"部分。
  • INPUT_SELECTOR: 设置如何处理多个值(例如,轮胎压力和车身损坏都有四个值,分别对应每个车轮和每侧)。可能的值:
    • MIN(别名:MINIMUM): 选择最小值;
    • MAX(别名:MAXIMUM): 选择最大值;
    • SUM(别名:TOTAL): 将值相加;
    • MULT(别名:MULTIPLIED): 将值相乘;
    • AVG(别名:AVERAGE): 将值相加并除以值的数量;
    • LEN(别名:LENGTH): 计算平方和的平方根(例如,用于查找总 G 力);
    • X(别名:FIRST): 从序列中获取第一个值;
    • Y(别名:SECOND): 从序列中获取第二个值;
    • Z(别名:THIRD): 从序列中获取第三个值;
    • W(别名:FOURTH): 从序列中获取第四个值;
    • 任何数字 N: 获取第 N 个值。
  • INPUT_MULT: 将值乘以 X;
  • INPUT_ADD: 将值加上 X;
  • INPUT_MININPUT_MAX: 如果设置了这些值,原始数字将被限制在这些边界内,默认值为 —∞/+∞;
  • INPUT_MOD: 如果大于零,将采用除以该值的模数,然后再通过查找表(但在通过最小值/最大值检查之后);
  • INPUT_LUT: 可选的查找表,允许设置诸如比例或偏移之类的内容以及更复杂的内容,使用线性插值;
  • INPUT_LAG_UPINPUT_LAG_DOWN: 对变化值的可选平滑处理,在 LUT 之后应用。第一个在实际数字大于平滑数字时使用,第二个在原始数字小于平滑数字时使用;
  • INPUT_ROUND: 可选的舍入到该数字(例如,如果您希望点后有一位数字,请使用 INPUT_ROUND = 0.1);
  • INPUT_ROUND_MODE: 舍入模式,可以是:
    • FLOOR(别名:FLOORING): 删除舍入部分;
    • ROUND(别名:ROUNDING): 常规规则,如果舍入部分等于或大于 INPUT_ROUND 的一半,则进入下一步;
    • CEIL(别名:CEILING): 如果存在任何要舍入的部分,则始终进入下一步;
  • INPUT_STALLED_VALUE: 对于熄火的引擎,可选地替换原始数字,在最小值/最大值检查之后运行,但在可选的模数除法和 LUT 之前;
  • INPUT_STALLED_LAG: 如果设置了强制熄火值,则此数字将定义过渡的平滑程度;
  • INPUT_THRESHOLD: 发光体在默认模式下可以是开启或关闭,此选项设置该切换的阈值;
    如果您需要指定范围,请使用:
    • INPUT_THRESHOLD_LOWERINPUT_THRESHOLD_UPPER: 工作方式为 A < x < B,不包括 A 和 B;
    • INPUT_THRESHOLD_LOWER_INCINPUT_THRESHOLD_UPPER_INC: 工作方式为 A ≤ x ≤ B,包括 A 和 B;
  • INPUT_THRESHOLD_INVERSE: 如果设置为 0(对于 false),如果值低于阈值,则发光体将开启;
  • INPUT_DEBUG: 测试事物的简单方法,特别是对于模拟仪表 — 它用其他内容替换原始值(基本上是通过覆盖最小值/最大值值作为首先应用的值)。

在大多数情况下,您不需要设置这些值,补丁有一些默认值,但在某些情况下可能有用。

可用输入

标记"flag"标签的输入根据条件返回 1.0 或 0.0(可以用滞后设置平滑)。

  • SPEED: 相对于世界的当前速度,km/h;
  • SPEED_WHEELS: 基于驱动轮角速度的当前速度,km/h;
  • VELOCITY: 相对于世界的当前速度,3D 向量,m/s;
  • VELOCITY_LOCAL: 相对于车辆的当前速度(X 表示左/右,Y 表示上/下),3D 向量,m/s;
  • RPM: 引擎转速;
  • STEER: 方向盘旋转,度;
  • HANDBRAKE: 手刹状态,从 0 到 1;
  • GAS: 油门踏板状态,从 0 到 1;
  • BRAKE: 刹车踏板状态,从 0 到 1;
  • CLUTCH: 离合器踏板状态,从 0 到 1;
  • FUEL: 剩余燃油,升;
  • WATER_TEMPERATURE: 水温,°C;
  • TURBO: 涡轮增压;
  • GEAR: 当前档位,倒档为 -1,空档为 0(在顺序变速箱上换档时不会经过空档),默认格式为 GEAR(请参阅下面的"格式"部分);
  • PERF_METER: 性能仪表,将此圈与最佳圈进行比较,秒;
  • PERF_METER_DIFF: 在 AC 性能应用中,有那个红色/绿色条,它显示此值;
  • TYRE_WEAR: 轮胎磨损,四个值,从 0 到 1:
    • 左前: INPUT_SELECTOR = 0XFIRST;
    • 右前: INPUT_SELECTOR = 1YSECOND;
    • 左后: INPUT_SELECTOR = 2ZTHIRD;
    • 右后: INPUT_SELECTOR = 3WFOURTH;
  • TYRE_VIRTUAL_KM: 轮胎行驶距离,四个值,从 0 到 1:
    • 左前: INPUT_SELECTOR = 0XFIRST;
    • 右前: INPUT_SELECTOR = 1YSECOND;
    • 左后: INPUT_SELECTOR = 2ZTHIRD;
    • 右后: INPUT_SELECTOR = 3WFOURTH;
  • TYRE_DIRT: 轮胎污垢水平,四个值,从 0 到 1;
  • TYRE_SLIP: 轮胎滑动值,四个值;
  • TYRE_SLIP_ANGLE: 轮胎滑动角,四个值;
  • ENGINE_LIFE(别名:ENGINE_DAMAGE): 剩余引擎寿命点数,从 0.0 到 1000.0(别名默认具有反向阈值);
  • SUSP_DAMAGE: 悬挂损坏,四个值,从 0 到 1;
  • GEARBOX_DAMAGE: 变速箱损坏,从 0 到 1;
  • BODY_DAMAGE: 给定侧面的碰撞最大速度,四个值,km/h:
    • 前面: INPUT_SELECTOR = 0XFIRST;
    • 后面: INPUT_SELECTOR = 1YSECOND;
    • 左侧: INPUT_SELECTOR = 2ZTHIRD;
    • 右侧: INPUT_SELECTOR = 3WFOURTH;
  • SUSP_TRAVEL: 悬挂行程,四个值,米;
  • RIDE_HEIGHT: 离地间隙,四个值,米;
  • SLIP_RATIO: 轮胎滑移率,四个值;
  • G_FORCE: 当前 G 力,3D 向量,G:
    • 横向: INPUT_SELECTOR = 0XFIRST;
    • 垂直: INPUT_SELECTOR = 1YSECOND;
    • 纵向: INPUT_SELECTOR = 2ZTHIRD;
  • GEAR_GRINDING(flag): 档位在摩擦吗?
  • LAP_TIME: 圈速,秒;
  • LAP_TIME_BEST: 最佳圈速,秒;
  • LAP_TIME_LAST: 上一圈时间,秒;
  • LAP_COUNT: 完成的圈数;
  • HORN(flag): 喇叭激活了吗?
  • POSITION: 车辆排行榜位置
来自发光体集合
  • LIGHT(别名:HEADLIGHTS,flag): 前大灯开启了吗?
  • BRAKE(别名:BRAKE_LIGHTS,flag): 刹车灯开启了吗?
  • REVERSE(别名:REVERSE_LIGHTS,flag): 倒车灯开启了吗?
  • HAZARD(flag): 危险报警灯开启了吗(默认情况下发光体会闪烁)?
  • LOWBEAM(flag): 近光灯开启了吗?
  • HIGHBEAM(flag): 远光灯开启了吗?
  • EXTRA_A(flag): Extra A 功能开启了吗?
  • EXTRA_B(flag): Extra B 功能开启了吗?
  • EXTRA_C(flag): Extra C 功能开启了吗?
  • EXTRA_D(flag): Extra D 功能开启了吗?
  • EXTRA_E(flag): Extra E 功能开启了吗?
  • EXTRA_F(flag): Extra F 功能开启了吗?
  • TURNSIGNAL_LEFT(flag): 左转向灯开启了吗?
  • TURNSIGNAL_RIGHT(flag): 右转向灯开启了吗?
  • TURNSIGNAL_NOHAZARD_LEFT(flag): 左转向灯开启了吗(但不是由于危险报警灯)?
  • TURNSIGNAL_NOHAZARD_RIGHT(flag): 右转向灯开启了吗(但不是由于危险报警灯)?
  • TURNSIGNAL(flag): 任何转向灯开启了吗?
  • TURNSIGNAL_NOHAZARD(flag): 任何转向灯开启了吗(但不是由于危险报警灯)?
  • CORNERINGLAMP_LEFT(flag): 左侧转向辅助灯开启了吗?
  • CORNERINGLAMP_RIGHT(flag): 右侧转向辅助灯开启了吗?
  • OPENDOORS(flag): 车门打开了吗?
  • SEATBELT(flag): 安全带系好了吗?
兼容性的独立档位,以防万一
  • GEAR_R(flag): 倒档开启了吗?
  • GEAR_N(flag): 空档开启了吗?
  • GEAR_D(flag): 前进档开启了吗?
  • GEAR_1(flag): 一档开启了吗?
  • GEAR_2(flag): 二档开启了吗?
  • GEAR_3(flag): 三档开启了吗?
  • GEAR_4(flag): 四档开启了吗?
  • GEAR_5(flag): 五档开启了吗?
  • GEAR_6(flag): 六档开启了吗?
  • GEAR_7(flag): 七档开启了吗?
  • GEAR_8(flag): 八档开启了吗?
  • GEAR_9(flag): 九档开启了吗?
额外的物理内容,目前不支持回放
  • BRAKEBIAS: 刹车分配,从 0.0 到 1.0;
  • ABS(flag): ABS 开启还是关闭?
  • ABS_INACTION(flag): ABS 当前处于活动状态(默认情况下发光体会闪烁)?
  • SPEEDLIMITER: 限速器,0 表示禁用,km/h;
  • SPEEDLIMITER_INACTION(flag): 限速器当前正在阻止车辆(默认情况下发光体会闪烁)?
  • TYRE_COMPOUND_INDEX: 当前轮胎组合的索引;
  • DIFF_PRELOAD: 差速器预紧值;
  • TRACTIONCONTROL: 牵引力控制模式,整数;
  • TRACTIONCONTROL_INACTION(flag): 牵引力控制现在正在工作(默认情况下发光体会闪烁)?
  • AWD_FRONT_SHARE_PERC: 当前施加在前轴上的扭矩量,从 0 到 1;
  • AWD_FRONT_SHARE_NM: 当前施加在前轴上的扭矩量,N×m;
  • TYRE_PRESSURE(别名:TYRES): 轮胎压力,四个值;
  • TYRE_TEMPERATURE: 轮胎温度,四个值;
  • ENGINE_TORQUE: 当前引擎扭矩,Nm;
  • ENGINE_POWER: 当前引擎功率,bhp;
  • KERS_CHARGE: KERS 电量;
  • KERS_CURRENT_KJ: KERS 当前电量;
  • KERS_MAX_KJ: 最大 KERS 电量;
  • KERS_LOAD: KERS 负载;
  • KERS_INPUT: KERS 输入;
  • KERS_CHARGING(flag): KERS 正在充电吗?
  • TURBO_BOOST: 涡轮增压(对于具有 EXT_SPIN_DELAY扩展涡轮可能为负数),每个涡轮都有值(允许设置绑定到特定涡轮的指针);
  • TURBO_WASTEGATE: 当前涡轮泄压阀,每个涡轮都有值(允许设置绑定到特定涡轮的指针);
扩展物理
  • USER_SPEEDLIMITER(flag): 用户限速器(通过 electronics.ini 中的自定义物理设置)激活了吗?
  • ENGINE_MAP: 当前选择的引擎映射的索引;
  • CPHYS_SCRIPT_0: 由自定义物理 Lua 脚本设置的值 #0;
  • CPHYS_SCRIPT_1: 由自定义物理 Lua 脚本设置的值 #1;
  • CPHYS_SCRIPT_2: 由自定义物理 Lua 脚本设置的值 #2;
  • CPHYS_SCRIPT_3: 由自定义物理 Lua 脚本设置的值 #3;
  • CPHYS_SCRIPT_4: 由自定义物理 Lua 脚本设置的值 #4;
  • CPHYS_SCRIPT_5: 由自定义物理 Lua 脚本设置的值 #5;
  • CPHYS_SCRIPT_6: 由自定义物理 Lua 脚本设置的值 #6;
  • CPHYS_SCRIPT_7: 由自定义物理 Lua 脚本设置的值 #7;
  • TC2;
  • FUELMAP;
补丁添加的额外数字
  • DRIVEN_TOTAL: 总里程表,值为 km(初始值从里程表应用或 Sidekick 加载,或从 CM 传递);
  • DRIVEN_SESSION: 当前会话内的里程表,值为 km;
  • STALLED(flag): 引擎熄火了吗(目前,这意味着一段时间内非常低的转速)?
  • BATTERY: 估计的电池电压;
  • OIL_PRESSURE: 估计的机油压力;
  • OIL_TEMPERATURE: 估计的机油温度;
  • EXHAUST_TEMPERATURE: 估计的排气温度;
雨刷
  • WIPERS_MODE: 雨刷关闭时为 0,否则为它们的当前模式;
  • WIPERS_PROGRESS: 雨刷动画的进度;
一些罕见情况的额外内容(也许用于某些显示器?)
  • DRIFT_VALID(flag): 当前漂移有效吗(例如,不在越野)?
  • DRIFT_BONUS_ON(flag): 漂移组合奖励开启了吗?
  • DRIFT_COMBO: 漂移组合计数器,整数;
  • DRIFT_INSTANT: 当前漂移点数,整数;
  • DRIFT_POINTS: 总漂移点数,整数;
  • TRACK_PROGRESS: 赛道进度,从 0 到 1;
  • COMPASS: 车辆方向,度,0° 表示北方,90° 表示东方,默认格式为 COMPASS;
燃油消耗内容(WIP,公式可能会重新设计)
  • FUEL_BURNT: 本会话消耗的燃油,升;
  • FUEL_BURNT_TOTAL: 总共消耗的燃油,升;
  • FUEL_CONSUMPTION_KPL: 燃油消耗,公里每升,本会话平均值;
  • FUEL_CONSUMPTION_LP100K: 燃油消耗,每 100 公里升,本会话平均值;
  • FUEL_CONSUMPTION_MPG: 燃油消耗,英里每加仑,本会话平均值;
  • FUEL_CONSUMPTION_LPL: 燃油消耗,每圈升,本会话平均值;
  • FUEL_CONSUMPTION_KPL_TOTAL: 燃油消耗,公里每升,总平均值;
  • FUEL_CONSUMPTION_LP100K_TOTAL: 燃油消耗,每 100 公里升,总平均值;
  • FUEL_CONSUMPTION_MPG_TOTAL: 燃油消耗,英里每加仑,总平均值;
  • FUEL_CONSUMPTION_LPL_TOTAL: 燃油消耗,每圈升,总平均值;
  • FUEL_ESTIMATE_DISTANCE: 预计距离,米,基于本会话平均消耗;
  • FUEL_ESTIMATE_DISTANCE_TOTAL: 预计距离,米,基于总平均消耗;
  • FUEL_ESTIMATE_TIME: 预计时间,秒,基于本会话平均消耗;
  • FUEL_ESTIMATE_TIME_TOTAL: 预计时间,秒,基于总平均消耗;
  • FUEL_ESTIMATE_LAPS: 预计圈数,基于本会话平均消耗;
  • FUEL_ESTIMATE_LAPS_TOTAL: 预计圈数,基于总平均消耗;

赛车相关内容

  • POSITION: 比赛中的位置,从 1 开始;
  • LAP_TIME: 当前圈速,秒,此内容和其他时间的默认格式为"LAP_TIME";
  • BEST_LAP_TIME: 最佳圈速,秒;
  • LAST_LAP_TIME: 上一圈时间,秒;
  • EXPECTED_LAP_TIME: 预计圈速,秒(基于最佳圈速和性能差值);
  • LAPS_COUNT: 完成的圈数;
  • FLAG_TYPE: 当前显示的比赛旗帜类型(与赛道条件中的完全相同);
与车辆无关
  • AMBIENT_TEMPERATURE: 环境(空气)温度,°C;
  • ROAD_TEMPERATURE: 路面温度,°C;
  • WIND_SPEED: 风速,km/h;
  • WIND_VELOCITY: 世界空间中的风向量,3D 向量,m/s;
  • WIND_DIR: 风向,度,默认格式为 COMPASS;
  • TIME: 从 00:00 开始的秒数,默认格式为 TIME;
  • TIME_HOURS: 小时数,默认 INPUT_MOD = 24;
  • TIME_MINUTES: 分钟数,默认 INPUT_MOD = 60;
  • TIME_SECONDS: 秒数,默认 INPUT_MOD = 60

格式

为了正确使用某些类型的输入(例如返回圈速的输入)用于数字显示,需要一些格式设置。这些类型通常默认已设置,但您可以覆盖该行为,或者使常规输入格式化。更多信息可在此处获得车辆-数字仪表

更复杂的表达式

从 CSP 0.1.77 开始,现在可以拥有引用其他输入并使用表达式的输入。首先,要引用另一个输入,您可以创建新的共享输入:

ini
[SHARED_INPUT_...]
NAME = my_input  ; 用于引用它的名称
INPUT = GAS
; 所有常规 INPUT 参数都可以在这里使用

并在以后使用它,或者只是使用复杂的表达式:

ini
[EMISSIVE_...]
INPUT = 'calc:max(my_input * GAS, BRAKE)'

当然,共享输入也可以引用其他共享输入:

ini
[SHARED_INPUT_...]
NAME = my_other_input
INPUT = 'calc:pow(my_input, 20) + WIND_SPEED'

可用函数:

  • 无参数(常量):
    • e: 欧拉数;
    • pi: 圆周率。
  • 一个参数:
    • abs(x): 返回 x 的绝对值;
    • acos(x): 返回弧度角;
    • asin(x): 返回弧度角;
    • atan(x): 返回弧度角;
    • ceil(x): 向上舍入;
    • cos(x): 接受弧度角;
    • cosh(x): 接受弧度角;
    • exp(x): 返回 e^x;
    • floor(x): 向下舍入;
    • ln(x): 自然对数;
    • log(x): 以 10 为底的对数;
    • log10(x): 以 10 为底的对数;
    • saturate(x): 如果 x 在 0 和 1 之间则返回 x,否则返回 0 或 1,无论哪个更接近;
    • sign(x): 返回 x 的符号,除非它是 0,否则返回 0;
    • sin(x): 接受弧度角;
    • sinh(x): 接受弧度角;
    • smoothstep(x): smoothstep 适用于渐变;
    • smootherstep(x): 像 smoothstep,但更平滑;
    • sqrt(x): 返回平方根;
    • tan(x): 接受弧度角;
    • tanh(x): 接受弧度角。
  • 两个参数:
    • atan2(x, y): 将 xy 转换为弧度角;
    • max(x, y): 返回 xy 中的较大者;
    • min(x, y): 返回 xy 中的较小者;
    • pow(x, y): 将 x 提升到 y 次幂;
    • step(x, y): 如果 y 大于或等于 x,则返回 1,否则返回 0。
  • 更多参数:
    • clamp(x, min, max): 如果 xminmax 之间则返回 x,否则返回 minmax,无论哪个更接近;
    • remap(x, a, b, c, d): 如果 x 等于 a,则返回 c,如果它是 b,则返回 d,否则在 cd 之间进行线性插值(不进行限制)。