汉化标题:赛道 – 条件
原文页面:Tracks-–-Conditions
原文锚点:dce83dd
汉化时间:2026-09-12T00:00:00+08:00
赛道配置可以定义条件,并将其用作动态灯光的强度、材质变量不同值之间的混合、自定义音频事件的参数等的输入。
语法
[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 值时,现在可以用表达式形式引用之前定义的其他条件:
[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):smoothstep 适合用于渐变;smootherstep(x):类似 smoothstep,但更平滑;sqrt(x):返回平方根;tan(x):接受弧度角;tanh(x):接受弧度角。
- 双参数:
atan2(x, y):将x和y转换为弧度角;max(x, y):返回x和y中较大的一个;min(x, y):返回x和y中较小的一个;pow(x, y):求x的y次幂;step(x, y):若y大于或等于x则返回 1,否则返回 0。
- 多参数:
clamp(x, min, max):若x在min与max之间则返回x,否则返回min或max中更接近的那个;remap(x, a, b, c, d):若x等于a则返回c,等于b则返回d,否则在c与d之间线性插值(不做钳制)。
可用输入
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:code 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:当前节日的类型,用于烟花和其他节庆效果。主要有三种类型:
- 全局(Global):由系统时间触发,随处生效;
- 区域(Regional):按 Windows 设置中的区域由系统时间触发,在某些区域可能完全不触发;
- 基于赛道(Track-based):若赛道被设定为位于某一区域,则由游戏内时间触发。
目前支持的节日:
- 0:无;
- 1:新年(全局);
- 2:圣诞节¹;
- 3:胜利日¹;
- 4:独立日²;
- 5:万圣节²;
- 6:日本烟花节²;
- 7:中国新年²;
- 8:宰牲节²;
- 9:盖伊·福克斯之夜²;
- 10:圣伊什特万节²;
- 11:加拿大日²;
- 12:维多利亚日²;
¹:区域型(依据 Windows 设置中的系统区域触发);
²:区域型或基于赛道型(依据系统区域触发,或当赛道位于符合区域的国家时触发)。
日本烟花节在 8 月举行,默认从 8 月 1 日到 3 日。要根据赛道所在的都道府县更改日期,请使用
[PARTICLES_FX] JAPAN_AUGUST_FESTIVALS_INTERVAL = 1, 3(默认值)。如果你还想看到其他节日,请告诉我。