Skip to content

赛道-–-条件

汉化标题:赛道-–-条件
原文标题:Tracks-–-Conditions
汉化更新时间:2026-01-14 16:05:48 +0800
英文原文最新更新时间:2022-06-13 01:18:53 +0300

赛道配置可以定义条件,并将其作为动态灯光强度、材料变量不同值之间的混合、自定义音频事件参数等的输入。

语法

ini
[CONDITION_...]
NAME = CONDITION_NAME    ; 条件用于引用的名称
INPUT = SUN              ; 条件输入的键
LUT = (|0=0|90=1|)       ; LUT 设置输入与输出值之间的关系
LAG = 0.8                ; 用于平滑过渡的滞后
LAG_DELAY_ON = 1800      ; 打开需要的秒数;若缺失则使用 LAG
LAG_DELAY_OFF = 0        ; 关闭时使用的延迟;若为 0 则使用 LAG
LAG_DELAY_FUNC = SQRT    ; 非零 LAG_DELAY_... 的插值函数,可用值:SQR, POW3, SQRT, LINEAR
SIMULATE_HEATING = 0.7   ; 若大于零,过渡将模拟加热,关断时会更加偏红
BOUND_TO_SPECTATORS = 0  ; 若设置为 1,输入将乘以观众数量,我也不知道为什么
                         ; 以这种奇怪的形式存在,但现在有更好的方式

; 闪烁参数:
FLASHING_FREQUENCY = 0             ; 闪烁频率
FLASHING_MIN_VALUE = 0             ; 闪烁将应用从此最小值到 1 的乘数
FLASHING_SKIP_OFF_STATE = 0        ; 基本闪烁工作为正弦波,半时间为关闭,设置为 1 可跳过这些关闭阶段
FLASHING_SKIP_DOWNHILL_STATE = 0   ; 设置为 1 可跳过正弦波变小的阶段
FLASHING_SMOOTHNESS = 1            ; 闪烁值的指数(或者设置为 LINEAR 以将正弦波变为线性过渡)
FLASHING_NOISE_AMPLITUDE = 0       ; 增加以添加一些随机噪声
FLASHING_NOISE_BOUND = 1           ; 随机噪声变化的最大速度
FLASHING_NOISE_SPEED = 10          ; 随机噪声速度变化率
FLASHING_LUT = 0                   ; 噪声的可选 LUT
FLASHING_SYNCED = 0                ; 若设置为 1,所有使用该条件的事物将同步噪声

LUT 可以指向一个文件而不是内联,格式与原始 AC LUT 使用的相同。此外,这些 LUT 也可以提供 RGB 值,从而允许彩色过渡。

更多示例请查看 “config/tracks/common/conditions.ini”。

复杂表达式

在引用条件或设置条件的 INPUT 值时,现在可以以表达式形式引用之前定义的其他条件:

ini
[CONDITION_...]
NAME = condition_my_1
INPUT = 'SUN * 2 + TIME'

[CONDITION_...]
NAME = condition_my_2
INPUT = 'condition_my_1 * 4 - 100'

[LIGHT_...]
CONDITION = 'saturate( condition_my_2 * 0.01 + condition_my_1 + TIME )'

可用函数:

  • 无参数(常量):
    • 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): 适用于渐变的平滑步骤函数;
    • 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 之间线性插值(不进行裁剪)。

可用输入

  • TIME: 一天中以秒为单位的时间,从 00:00 到 23:59,四舍五入。

  • TIME_SMOOTH: 一天中以秒为单位的时间,从 00:00 到 23:59,未四舍五入。

  • SUN: 太阳角度(度),0 表示太阳在天顶,90 表示太阳在地平线。

  • YEAR_PROGRESS: 年进度,从 0 到 1。

  • YEAR_DAY: 年内的天数,从 1 到 365(跳过 2 月 29 日,因此你可以绑定在其之后的某些日期而无需担心)。

    如果你需要绑定某一天,请使用 LUT:

    ini
    [CONDITION_...]
    INPUT = YEAR_DAY     ; 第 184 天是 7 月 4 日
    LUT = (| 1=0 | 184=0 | 185=1 | 186=0 | 356=0 |)
    ini
    [CONDITION_...]
    INPUT = YEAR_DAY     ; 严冬按天数裁切
    LUT = (|1=1|40=1|41=0|332=0|333=1|365=1|)
    ini
    [CONDITION_...]
    INPUT = YEAR_PROGRESS    ; 冬季逐渐淡出
    LUT = (| 0=0.5 | 0.1=1 | 0.2=0 | 0.8=0 | 0.9=0.35 | 1=0.5 |)
  • WEEK_DAY: 一周中的天数,从 1 到 7。

  • AMBIENT: 环境亮度乘数,夜间为 1.0,晴天正午非常低(≈0.01)(Python 函数:ac.ext_getAmbientMult())。

  • FOG: 雾强度。

  • FLAG_TYPE: 比赛旗帜类型。

    该输入还具有 INPUT_CHANGE_DELAY 参数(延迟变化的秒数)和 INPUT_STAY_FOR 参数(保持变化的秒数)。

    可能的值:

    • 0: 未显示旗帜,非比赛;
    • 1: 比赛开始,一切正常;
    • 2: 小心,黄旗;
    • 3: 路面打滑¹²;
    • 4: 维修通道关闭¹²;
    • 5: 黑旗;
    • 6: 赛道上有慢车²;
    • 7: 救护车在赛道上/最后一圈¹²;
    • 8: 返回维修区(驶入惩罚);
    • 9: 因机械问题返回维修区¹²³;
    • 10: 不体育道德行为¹²;
    • 11: 忽略黑旗¹²;
    • 12: 更快的车辆接近(蓝旗);
    • 13: 回合结束;
    • 14: 剩余一圈;
    • 15: 比赛暂停²;
    • 16: 代码 60¹²。

    ¹ 需要某种标示绘制;

    ² 默认情况下 AC 不会触发,但自定义赛道或在线脚本可以设置该旗帜;

    ³ 需要赛道上有车号牌。

  • CAR_ACTIVE_X: 若维修区编号为 X(从 0 开始)处的车辆存在则返回 1,否则返回 0。

  • CAR_DAMAGE_X: 返回维修区编号为 X(从 0 开始)处车辆的最大损伤等级;损伤值为最大撞击速度。

  • CAR_DAMAGE: 返回任意车辆的最大损伤等级;损伤值为最大撞击速度。

  • SPECTATORS: 赛道上的观众百分比,从 0 到 1。

  • RAIN: 降雨强度,从 0 到 1。

  • RAIN_WETNESS: 返回赛道湿度(降雨开始时快速升至 1)。

  • RAIN_WATER: 返回赛道上的积水量(缓慢上升至赛道强度并保持,定义水洼)。

  • ONLINE_RACE: 若为联机比赛则返回 1。

  • ONE: 始终返回 1。

  • ZERO: 始终返回 0。

  • HOLIDAY: 当前节日类型,用于烟花和其他节庆效果。

    主要有三种类型:

    • 全局:按系统时间触发,适用于所有地区;
    • 区域:按 Windows 区域设置的系统时间触发,在某些地区可能不会触发;
    • 基于赛道:如果赛道设置在某个地区,则按游戏内时间触发。

    当前支持的节日:

    • 0: 无;
    • 1: 新年(全局);
    • 2: 圣诞节¹;
    • 3: 胜利日¹;
    • 4: 独立日²;
    • 5: 万圣节²;
    • 6: 日本烟花节²;
    • 7: 中国新年²;
    • 8: 古尔班节²;
    • 9: 烟火夜²;
    • 10: 圣伊什特万庆典²;
    • 11: 加拿大日²;
    • 12: 维多利亚日²;

    ¹: 区域性(根据 Windows 区域设置触发);

    ²: 区域性或基于赛道(由系统区域或赛道所在国家触发)。

    日本烟花节默认在八月进行,通常为 8 月 1 日到 3 日。要根据赛道所在县更改日期,请使用 [PARTICLES_FX] JAPAN_AUGUST_FESTIVALS_INTERVAL = 1, 3(默认值)。

    如需添加其他节日请告知。