季节环境音效¶
季节环境音效是一种仅客户端生效的资源包数据,用于根据当前季节、时间、天气和群系播放环境背景音。
该系统主要用于增强世界氛围,例如春季森林鸟鸣、夏季夜晚虫鸣、秋季风声或冬季风雪声。
与实时混音类音效模组不同,季节环境音效更偏向于持续的背景氛围补充。
文件路径¶
季节环境音效文件为 JSON 格式。
放置路径:
assets/<命名空间>/eclipticseasons/ambient
基本示例¶
下面是一个春季森林环境音效示例:
{
"sound": "eclipticseasons:ambient.spring_forest",
"season": "spring",
"biomes": "#minecraft:is_forest",
"rain": false
}
该配置表示:
春季
+
森林群系
+
非降水天气
→ 播放 eclipticseasons:ambient.spring_forest
由于没有设置时间条件,因此白天和夜晚都会播放。
匹配逻辑¶
系统会依次检查:
- 室内状态
- 降水状态
- 季节或节气
- 时间条件
- 水中状态
- 群系条件
- 排除群系
只有全部条件满足时,该音效才会参与匹配。
如果多个音效同时满足条件,则会根据优先级选择最终播放的音效。
字段说明¶
sound¶
需要播放的声音事件。
"sound": "eclipticseasons:ambient.spring_forest"
该字段必填。
季节与节气¶
season¶
限制音效出现的季节。
"season": "spring"
可用值:
spring
summer
autumn
winter
如果指定了 season,系统将直接按季节判断。
start / end¶
限制音效出现的节气范围。
"start": "spring_equinox",
"end": "grain_rain"
仅在未指定 season 时生效。
适用于需要精确控制节气范围的环境音。
例如:
{
"sound": "example:early_spring_birds",
"start": "beginning_of_spring",
"end": "insects_awakening"
}
时间控制¶
ignore_time¶
是否忽略时间条件。
"ignore_time": true
默认值:
true
当为 true 时:
白天和夜晚都会播放
如果希望根据时间变化播放不同音效,需要设置:
"ignore_time": false
day¶
用于区分白天和夜晚。
"day": true
仅在:
"ignore_time": false
时生效。
含义:
true = 白天
false = 夜晚
例如:
{
"sound": "example:night_crickets",
"ignore_time": false,
"day": false
}
表示仅夜晚播放。
time_period¶
用于指定更精确的时间段。
"time_period": "night"
可用值:
dawn
day
dusk
night
midnight
对应:
| 值 | 时间段 |
|---|---|
| dawn | 早晨 |
| day | 白天 |
| dusk | 黄昏 |
| night | 夜晚 |
| midnight | 午夜 |
如果指定了 time_period,系统将优先使用它,而不会再检查 day。
天气与环境¶
rain¶
是否匹配降水状态。
"rain": true
注意:
rain=true
表示:
仅在降水时播放
而:
"rain": false
表示:
仅在非降水时播放
默认值:
false
indoor¶
是否匹配室内状态。
"indoor": true
匹配规则:
true → 仅室内
false → 仅室外
默认值:
false
inwater¶
是否匹配玩家处于水中的状态。
"inwater": true
匹配规则:
true → 仅水中
false → 仅非水中
默认值:
false
群系条件¶
biomes¶
限制音效出现的群系。
单个群系:
"biomes": "minecraft:forest"
群系标签:
"biomes": "#minecraft:is_forest"
推荐使用群系标签管理多个群系。
如果为空,则不限制群系。
ignored_biomes¶
排除指定群系。
"ignored_biomes": "#c:is_cave"
匹配后不会播放该音效。
通常用于排除:
- 洞穴
- 特殊维度
- 特殊群系
优先级¶
priority¶
音效优先级。
"priority": 950
默认值:
1000
当多个音效同时满足条件时:
priority 数值越小
优先级越高
例如:
950 优先于 1000
推荐:
- 通用背景音使用默认值
- 更具体的天气音效使用较小值
- 更具体的群系音效使用较小值
常见示例¶
夏季白天微风¶
{
"sound": "example:garden_wind",
"season": "summer",
"ignore_time": false,
"day": true,
"rain": false
}
夏季夜晚虫鸣¶
{
"sound": "example:night_crickets",
"season": "summer",
"ignore_time": false,
"day": false,
"rain": false
}
冬季风雪声¶
{
"sound": "example:winter_wind",
"season": "winter",
"rain": true,
"priority": 950
}
使用建议¶
建议优先构建稳定的背景环境音。
例如:
- 春季森林鸟鸣
- 夏季白天风声
- 夏季夜晚虫鸣
- 秋季落叶与风声
- 冬季风雪声
对于大多数资源包而言,仅使用以下字段即可满足需求:
sound
season
rain
biomes
ignored_biomes
ignore_time
day
priority
注意事项¶
- 该系统仅客户端生效。
- 不会改变天气、温度或季节逻辑。
rain、indoor、inwater均为严格匹配条件。season与start/end不建议同时使用。priority数值越小,优先级越高。- 当多个规则同时满足时,系统会选择优先级最高(数值最小)的音效播放。