- 低代码
- 代码生成
- 桌面应用
- 游戏开发
【免费下载链接】MCreator
MCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.
水雾颜色(Water Fog Color)是 MCreator 生物群系(Biome)元素中用于控制水下视野氛围的核心视觉参数。本文将围绕该参数,完整说明它在 MCreator 编辑器中的配置入口、与水体颜色(Water Color)等相近参数的区分、在数据包与模组代码中的实际落地方式,以及 Java 版不同生成器版本之间的写法差异,帮助读者在制作自定义生物群系时精准调出水体内部的环境色调。
一、参数是什么:一句话定位
water_fog_color(水雾颜色)控制的是生物群系内水雾的颜色——即玩家浸入水中、被水体包围时,透过水面看到的雾气色调。这一概念在原文档中有明确表述:
- 德语(de_DE):
Dieser Parameter steuert die Farbe des Wassernebels im Biom - 简体中文(zh_CN):此参数控制该生物群系内水雾的颜色
- 默认英文(default / en_GB):This parameter controls the color of the water fog inside the biome
简言之,它是一个纯视觉(visual)参数:不改变水的材质与透明度,只改变玩家位于水中时所看到的水体雾气颜色,用于营造不同水质下的沉浸感——例如深海偏暗蓝、沼泽偏浑浊绿。
二、在 MCreator 界面中的配置入口
在 MCreator 中,打开生物群系元素的图形化编辑界面后,水雾颜色与天空颜色、雾颜色、草颜色、树叶颜色、水体颜色一同排列在视觉参数区。其 UI 侧实现位于 BiomeGUI.java:
sbbp4.add(HelpUtils.wrapWithHelpButton(this.withEntry("biome/water_fog_color"), L10N.label("elementgui.biome.water_fog_color"))); sbbp4.add(waterFogColor);其中waterFogColor是一个颜色选择控件(JColor):
private final JColor waterFogColor = new JColor(mcreator, true, false);两个要点:
- 帮助按钮:每个颜色参数前都有带问号的帮助按钮,点击后即会弹出本文所依据的这份帮助文档(
biome/water_fog_color条目对应 water_fog_color.md 这一系列多语言文档)。 - 读写绑定:编辑器打开既有生物群系时调用
waterFogColor.setColor(biome.waterFogColor)(BiomeGUI.java)把已存颜色回填到控件;保存时通过biome.waterFogColor = waterFogColor.getColor()(BiomeGUI.java)写回数据模型。
颜色选择器支持透明度(JColor(mcreator, true, false)的第一个true参数),但实际生成时对颜色值有专门处理,详见下文“生成逻辑”。
三、与相近参数的区别
生物群系视觉参数组里有一组容易混淆的颜色,需要区分清楚。它们全部定义在数据模型 Biome.java 中:
| 字段 | 控制内容 | 说明 |
|---|---|---|
airColor | 天空颜色(sky_color) | 天空穹顶的主色调 |
fogColor | 雾颜色(fog_color) | 地面/空中远处的雾气颜色 |
waterColor | 水体颜色(water_color) | 水的表面着色 |
waterFogColor | 水雾颜色(water_fog_color) | 水下雾气/水下视野色调 |
grassColor | 草颜色(grass_color) | 草地色 |
foliageColor | 树叶颜色(foliage_color) | 树木叶片色 |
核心区别:水面之上看远处是fogColor,潜入水中看周围是waterFogColor。两者数值上常常不同——经典海洋群系天空雾偏浅、水雾偏深蓝,才能形成“水面上下两重天”的观感。从源码结构看,二者都是可空的颜色字段(@Nullable public Color),即不配置时交由生成器填充默认值。
四、从数据模型到 JSON 的生成链路
4.1 数据模型的存储
生物群系的水雾颜色在数据层是一个可空(nullable)的 JavaColor对象,位于 Biome.java:
@Nullable public Color waterFogColor;可空意味着:用户可以在 GUI 中留空不设置。此时生成模板会回退到 Minecraft 原版的默认水雾颜色(329011,即十六进制0x050533,等价于 RGB(5, 5, 51) 的深蓝)。
4.2 Java 版 1.21.1 数据包生成
MCreator 的生物群系数据包 JSON 由 FreeMarker 模板 plugins/generator-1.21.1/datapack-1.21.1/templates/biome/biome.json.ftl 渲染,视觉参数集中在effects块中:
"foliage_color": ${data.foliageColor?has_content?then(data.foliageColor.getRGB(), 10387789)}, "grass_color": ${data.grassColor?has_content?then(data.grassColor.getRGB(), 9470285)}, "sky_color": ${data.airColor?has_content?then(data.airColor.getRGB(), 7972607)}, "fog_color": ${data.fogColor?has_content?then(data.fogColor.getRGB(), 12638463)}, "water_color": ${data.waterColor?has_content?then(data.waterColor.getRGB(), 4159204)}, "water_fog_color": ${data.waterFogColor?has_content?then(data.waterFogColor.getRGB(), 329011)}这条water_fog_color行就是本文主题参数的最终产物,其取值逻辑可拆解为:
- 已设置:
data.waterFogColor.getRGB()——把 GUI 选中的 JavaColor对象转换成 RGB 整数值(0xRRGGBB)写入 JSON; - 未设置:
329011(0x050533)——沿用原版默认深蓝水雾。
该数据包模板通过 neoforge-1.21.1/biome.definition.yaml 注册到 NeoForge 生成器,并输出到@MODDATAROOT/worldgen/biome/@registryname.json。
4.3 新版本(26.3.x)生成器的写法差异
在新一代生成器 plugins/generator-26.3.x/datapack-26.3.x/templates/biome/biome.json.ftl 中,生物群系 JSON 结构升级为命名空间键形式,水雾颜色写作:
"minecraft:visual/water_fog_color": ${data.waterFogColor?has_content?then(data.waterFogColor.getRGB(), 329011)},与之并列的还有minecraft:visual/sky_color与minecraft:visual/fog_color,且这两者在 26.3.x 模板中同样仅在字段有内容时才输出。但默认值逻辑完全一致:未配置时同样回退到329011(0x050533)。因此无论使用哪一代生成器,留空水雾颜色都会得到原版一致的深蓝水下雾气。
4.4 生成器默认值速查
综合两代模板,water_fog_color相关数值如下(十进制为模板内实际写入值):
| 参数 | 未配置默认值(十进制) | 十六进制 | 备注 |
|---|---|---|---|
| water_fog_color | 329011 | 0x050533 | RGB(5,5,51),原版默认深蓝水雾 |
| water_color | 4159204 | 0x3F76E4 | 原版默认水体蓝 |
五、基岩版(Bedrock Edition)的水雾颜色
该视觉参数并非 Java 版独有。基岩版生物群系数据模型 BEBiome.java 同样声明了@Nullable public Color waterFogColor,并且:
public boolean hasVisualSettings() { return fogColor != null || waterFogColor != null; }从源码结构看,waterFogColor与fogColor一起构成了基岩版生物群系的“可视设置”判定条件——当用户在基岩版生物群系中配置了任一颜色时,该生物群系即被视为带有自定义视觉外观,从而触发相应颜色信息的写入。
六、测试与验证
仓库的集成测试数据提供器为生物群系注入了确定性的水雾颜色,用于验证生成与保存链路:
- Java 版生物群系:
biome.waterFogColor = Color.cyan;(TestWorkspaceDataProvider.java) - 基岩版生物群系:
bebiome.waterFogColor = Color.cyan;(TestWorkspaceDataProvider.java)
以青色(cyan)作为测试值,配合上述 JSON 模板的getRGB()输出逻辑,可在集成测试中检验水雾颜色从 UI 模型到生成产物全链路的正确性。
七、实战建议
- 先确定水体主色,再定水雾色:通常
waterColor定水面观感,waterFogColor定水下观感。建议两者同色系、深度拉开层次,避免水下出现与水面严重割裂的色差。 - 水下氛围优先用色值说话:深海 / 寒带生物群系可偏向
0x050533这类深蓝;热带浅海可偏向偏青的浅蓝;沼泽可尝试偏绿调以表现浑浊水质。 - 留空即用原版默认:如果不需要特殊水下氛围,直接留空该颜色即可,生成器会自动写入
329011(0x050533),与 Minecraft 原版行为完全一致。 - 注意新旧生成器的键名差异:1.21.1 产物中是
effects.water_fog_color,26.3.x 产物中是minecraft:visual/water_fog_color;直接阅读或手改生成 JSON 时务必区分。
八、小结
water_fog_color(水雾颜色)是 MCreator 生物群系元素中一个“小却关键”的视觉参数,负责水下雾气色调。它的完整链路是:GUI 颜色控件(BiomeGUI.java)→ 数据模型可空字段(Biome.java)→ FreeMarker 模板渲染(biome.json.ftl),未配置时回退到原版默认值329011(0x050533)。掌握该参数后,你可以在自定义生物群系中轻松还原深海、沼泽、热带浅海等不同水质下的沉浸式水下视野。
- 低代码
- 代码生成
- 桌面应用
- 游戏开发
【免费下载链接】MCreator
MCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.
相关推荐
MCreator 生物群系草颜色(Grass Color)参数详解:从界面设置到代码生成全流程
MCreator 生物群系草颜色(Grass Color)参数详解:从界面设置到代码生成全流程 本篇指南围绕 MCreator 生物群系(Biome)元素中的"
低代码代码生成桌面应用游戏开发MCreator 生物群系 water_color 参数详解:从编辑器取色到生成世界的水色
MCreator 生物群系 water_color 参数详解:从编辑器取色到生成世界的水色 本文以 MCreator 本地化帮助文档 water_color.m
低代码代码生成桌面应用游戏开发MCreator 生物群系自定义树的果实方块参数详解:从界面配置到代码生成原理
MCreator 生物群系自定义树的果实方块参数详解:从界面配置到代码生成原理 本文讲解 MCreator 生物群系(Biome)定义中的"果实方块"(Frui
低代码代码生成桌面应用游戏开发
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考