首页 / 资讯中心 / 文章详情

MCreator 生物群系默认特性(Default Features)完全指南:预配置生成特征的选择、映射与底层实现

MCreator 生物群系默认特性(Default Features)完全指南:预配置生成特征的选择、映射与底层实现 ★ FEATURED ARTICLE
低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator 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.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载导读在 MCreator 中创建自定义生物群系时默认特性Default features是一组可以直接套用的预配置 Minecraft 特性features用来快速为你的群系注入洞穴、矿石、植被、怪物房间等原版风格的世界生成内容。本文以 MCreator 官方帮助文档 plugins/mcreator-localization/help/default/biome/default_features.md 为骨架结合仓库中的可选项数据、映射表与代码生成模板完整讲解默认特性的含义、GUI 配置方式、全部可选清单、底层映射机制以及最终写入生物群系 JSON 的生成流程帮助你精准控制自定义生物群系的世界生成效果。什么是默认特性默认特性是 MCreator 为自定义生物群系提供的预配置的 Minecraft 特性pre-configured Minecraft features。原版 Minecraft 的每个生物群系之所以有独特的洞穴分布、矿石生成、地表植被、蘑菇、冰层等表现正是因为它们在群系定义中挂载了不同的生成特征。MCreator 将其中最常用、最典型的特征打包为一个个默认特性条目例如Caves洞穴雕刻、Ores矿石分布、FrozenTopLayer顶层结冰、MonsterRooms地下刷怪室等。在创建生物群系时你不需要从零拼装一个个底层 feature只需从默认特性列表中勾选想要的条目MCreator 会自动把它们翻译成生物群系 JSON 中对应生成阶段feature stage的具体特征从而让自定义群系看起来像某个原版风格的群系。在 GUI 中配置默认特性在 MCreator 的生物群系编辑器src/main/java/net/mcreator/ui/modgui/BiomeGUI.java中默认特性位于Vanilla features原版特性区块内标签为Default biome features本地化键elementgui.biome.default_features见 plugins/mcreator-localization/lang/texts.properties。对应的输入组件是DefaultFeaturesListField见 src/main/java/net/mcreator/ui/minecraft/DefaultFeaturesListField.java它继承自通用列表字段JItemListFieldString。点击添加按钮后会弹出一个多选对话框StringSelectorDialog.openMultiSelectorDialog对话框标题为 Select biome default features、提示语为 Select biome default features you would like to add to the list:选项数据来自ElementUtil.getDataListAsStringArray(defaultfeatures)即加载数据列表 plugins/mcreator-core/datalists/defaultfeatures.yaml 中的全部条目。你可以在列表中任意多选组合也可以随时移除不想要的条目。可选的默认特性完整清单defaultfeatures数据列表plugins/mcreator-core/datalists/defaultfeatures.yaml共提供 28 个可选默认特性条目名典型用途Caves洞穴雕刻cave/canyon 雕刻器与地下熔岩湖Ores全套原版矿石分布煤、铁、金、红石、钻石、青金石、铜、水下岩浆MonsterRooms地下刷怪室monster room结构FrozenTopLayer表层冻结积雪群系的冻土层ForestGrass森林地表草丛ForestFlowers森林花朵AmethystGeodes紫水晶晶洞Bamboo竹子植被DeadBushes枯死灌木DesertFeatures沙漠枯井等沙漠特征Dripstone滴水石大型滴水石、滴水石簇、尖柱ExtraEmeraldOre额外绿宝石矿石ExtraGoldOre额外金矿石Fossils化石结构深层与浅层Icebergs浮冰与蓝冰冰山InfestedStone被虫蚀的石头JungleGrass丛林地表草丛JungleTreeForest丛林树木LushCavesDecoration繁茂洞穴植被苔藓、发光浆果、孢子花等MeadowVegetation草甸植被草、花朵、树木PlainsTallGrass平原高草丛ReedsAndPumpkins甘蔗与南瓜SavannaTrees热带草原树木SwampVegetation沼泽植被树木、花朵、睡莲、蘑菇等TaigaGrassAndMushrooms针叶林草丛与红/棕蘑菇TaigaLargeFerns针叶林大型蕨类TaigaRocks针叶林苔石forest rockTallSeagrassLush繁茂水生海草注意以上 28 个条目的具体名称来自 plugins/mcreator-core/datalists/defaultfeatures.yaml典型用途是根据映射表映射到的具体原版特征名进行的概括说明。默认值新建生物群系自带哪些特性在数据模型 src/main/java/net/mcreator/element/types/Biome.java 中默认特性以public ListString defaultFeatures字段存储。新建生物群系时构造函数会预设三个默认条目Biome.java 第 142 行defaultFeatures new ArrayList(List.of(Caves, Ores, FrozenTopLayer));也就是说一个新创建的自定义生物群系默认拥有洞穴、矿石与表层冻结三大特性这与原版许多温和群系的基础生成配置一致确保你的群系开箱即有基本的地形多样性。如果不需要某个默认条目在 GUI 中移除即可。另外老版本工作区升级时转换器BiomeDefaultFeaturesConvertersrc/main/java/net/mcreator/element/converter/v2020_5/BiomeDefaultFeaturesConverter.java会把旧群系自动补上Caves、MonsterRooms、Ores三个特性保证升级后的群系仍具备原版基础生成内容。底层机制逻辑条目如何映射到具体特征默认特性条目本身只是逻辑名真正决定生成内容的是映射表mappings。数据包生成器为每个 MCreator 版本维护一份defaultfeatures.yaml映射表例如1.21.1plugins/generator-1.21.1/datapack-1.21.1/mappings/defaultfeatures.yaml26.3.xplugins/generator-26.3.x/datapack-26.3.x/mappings/defaultfeatures.yaml映射表采用条目名 - 阶段/特征名的格式一个条目可以展开为多个特征多个特征之间用逗号分隔。以几个典型条目为例Caves: carvers/cave, carvers/cave_extra_underground, carvers/canyon, lakes/lake_lava_underground Ores: underground_ores/ore_coal_upper, underground_ores/ore_iron_upper, underground_ores/ore_gold, underground_ores/ore_diamond, underground_ores/ore_lapis, underground_ores/ore_copper, underground_ores/underwater_magma # ...共 17 个矿石特征 FrozenTopLayer: top_layer_modification/freeze_top_layer SwampVegetation: vegetal_decoration/trees_swamp, vegetal_decoration/flower_swamp, vegetal_decoration/patch_grass_normal, vegetal_decoration/patch_dead_bush, vegetal_decoration/patch_waterlily, vegetal_decoration/brown_mushroom_swamp, vegetal_decoration/red_mushroom_swamp其中阶段/前缀对应 Minecraft 生物群系 JSON 中features数组的 11 个生成阶段槽位另有独立的carvers雕刻器字段特征名则是minecraft:命名空间下的原版 placed feature 名称。例如Ores会展开为 17 个underground_ores/阶段的矿石特征Caves则同时贡献 3 个雕刻器carvers和 1 个熔岩湖lakes。不同 MCreator 版本的映射表存在细微差异例如ReedsAndPumpkins在 1.21.1 中映射为patch_sugar_cane, patch_pumpkin而在 26.3.x 中顺序为patch_pumpkin, patch_sugar_caneTallSeagrassLush在 1.21.1 映射为seagrass_simple在 26.3.x 中则映射为seagrass_deep。这说明同一逻辑条目在不同 Minecraft 版本下会适配不同的底层特征。代码生成流程biome.json.ftl 模板详解默认特性的最终落地由数据包生成模板 plugins/generator-1.21.1/datapack-1.21.1/templates/biome/biome.json.ftl 完成26.3.x 对应 plugins/generator-26.3.x/datapack-26.3.x/templates/biome/biome.json.ftl逻辑一致。整个流程分为四步第一步初始化 12 个特征阶段数组模板首先按 Minecraft 生物群系 JSON 的完整结构初始化数组见模板第 3-14 行#assign features_carvers [] #assign features_raw_generation [] #assign features_lakes [] #assign features_local_modifications [] #assign features_underground_structures [] #assign features_surface_structures [] #assign features_strongholds [] #assign features_underground_ores [] #assign features_underground_decoration [] #assign features_fluid_springs [] #assign features_vegetal_decoration [] #assign features_top_layer_modification []这些数组最终对应生物群系 JSON 中carvers字段与features数组的 12 个槽位。第二步按映射表顺序遍历默认特性模板第 20 行调用generator.sortByMappings(data.defaultFeatures, defaultfeatures)对用户勾选的条目按映射表的键顺序排序。sortByMappings的实现位于 src/main/java/net/mcreator/generator/GeneratorWrapper.java它取出映射表全部键把用户选择的条目按其在映射表中的索引排序并用LinkedHashSet去重public CollectionString sortByMappings(CollectionString input, String mappingTable) { List? mappingkeys new ArrayList(generator.getMappings().getMapping(mappingTable).keySet()); return new LinkedHashSet(input.stream().sorted(Comparator.comparingInt(mappingkeys::indexOf)).toList()); }这样保证无论用户在 GUI 中勾选的顺序如何生成的 JSON 中特征顺序都是确定、稳定的便于对比与复现。第三步Nether 生物群系特殊过滤如果当前生物群系启用了下界生成spawnBiomeNether为 true模板会跳过 6 个不适用于下界的特性模板第 21-29 行#if data.spawnBiomeNether (defaultFeature Caves || defaultFeature ExtraEmeraldOre || defaultFeature ExtraGoldOre || defaultFeature Ores || defaultFeature MonsterRooms || defaultFeature Fossils) #continue /#if原因很直观下界没有常规洞穴雕刻、矿石生成与化石这些特性在下界群系中会产生错误或不符合预期的生成结果。第四步映射并分发到各阶段数组模板第 31 行generator.map(defaultFeature, defaultfeatures)读取映射结果若结果非null则按逗号拆分出单个特征再根据阶段/名称前缀将特征分发到对应数组并统一加上minecraft:命名空间前缀模板第 33-63 行#assign mfeat generator.map(defaultFeature, defaultfeatures) #if mfeat ! null #assign features_array mfeat?split(,) #list features_array as feature #assign feature_stage feature?trim?split(/)[0] #assign feature_name feature?trim?split(/)[1] #if feature_stage carvers #assign features_carvers features_carvers [minecraft: feature_name] #elseif feature_stage vegetal_decoration #assign features_vegetal_decoration features_vegetal_decoration [minecraft: feature_name] #elseif ... ... /#if /#list /#if模板支持的全部阶段前缀包括carvers、raw_generation、lakes、local_modifications、underground_structures、surface_structures、strongholds、underground_ores、underground_decoration、fluid_springs、vegetal_decoration、top_layer_modification。第五步输出生物群系 JSON最后模板将各阶段数组合并进 JSON模板第 123-140 行carvers写入独立的carvers: {air: [...]}字段features则按 Minecraft 规定的固定顺序输出 11 个槽位且每个槽位用thelper.removeDuplicates(...)去重features: [ [/*RAW_GENERATION*/], [/*LAKES*/], [/*LOCAL_MODIFICATIONS*/], [/*UNDERGROUND_STRUCTURES*/], [/*SURFACE_STRUCTURES*/], [/*STRONGHOLDS*/], [/*UNDERGROUND_ORES*/], [/*UNDERGROUND_DECORATION*/], [/*FLUID_SPRINGS*/], [/*VEGETAL_DECORATION*/], [/*TOP_LAYER_MODIFICATION*/] ]最终生成的生物群系 JSON 会由 plugins/generator-1.21.1/neoforge-1.21.1/biome.definition.yaml 中声明的模板写入MODDATAROOT/worldgen/biome/registryname.jsonneoforge-1.21.1 与 datapack-1.21.1 的 biome.json.ftl 共用同一份数据包模板。默认特性与自定义树特征的联动模板在遍历默认特性之前有一段特殊处理模板第 16-18 行若生物群系配置了树木data.hasTrees()为 true会先把 MCreator 为该群系生成的自定义树特征追加到植被阶段#if data.hasTrees() #assign features_vegetal_decoration features_vegetal_decoration [${modid}:${registryname}_tree] /#ifhasTrees()的实现见 src/main/java/net/mcreator/element/types/Biome.java其条件是treesPerChunk 0GUI 中Trees per chunk设为 0 即可禁用树生成。这意味着默认特性中的树木类条目如JungleTreeForest、SavannaTrees、MeadowVegetation的 trees_meadow与你在群系中自定义的树特征会共存于同一个vegetal_decoration槽位生成时都会生效。实战建议保持基础三件套CavesOresFrozenTopLayer是新建群系的默认组合绝大多数地表群系建议保留只有全水下、洞穴内或特殊维度群系才考虑移除。按群系主题组合植被草地类群系可用ForestGrass/PlainsTallGrass/ForestFlowers组合沼泽群系直接选SwampVegetation即可复刻原版沼泽的睡莲、蘑菇与沼泽树洞穴类群系可搭配LushCavesDecoration或Dripstone。下界群系注意过滤规则勾选了spawnBiomeNether的群系Caves、Ores、MonsterRooms、Fossils、ExtraEmeraldOre、ExtraGoldOre会被模板自动忽略无需手动纠结。特性可能重叠例如同时勾选Ores与ExtraEmeraldOre或同时选择含树的默认特性又配置了自定义树会叠加生成最终 JSON 中模板会用removeDuplicates去除完全重复的特征名但语义上重叠的条目仍会共存。多版本差异同一逻辑条目在不同 MCreator 生成器版本下映射到的具体特征名可能不同如TallSeagrassLush在 1.21.1 与 26.3.x 中分别映射seagrass_simple/seagrass_deep切换生成器版本后建议重新检查生成的数据包。小结默认特性是 MCreator 生物群系编辑器中开箱即用的原版生成内容库GUI 层通过 DefaultFeaturesListField 从 defaultfeatures.yaml 加载 28 个可选项模型层在 Biome.java 中存储并预设Caves/Ores/FrozenTopLayer生成层则由映射表 mappings/defaultfeatures.yaml 与模板 biome.json.ftl 协作将逻辑条目翻译为按阶段归类的具体原版特征最终写入生物群系 JSON。理解这条从勾选到生成的完整链路你就能精确预测并控制自定义生物群系在世界生成中的表现。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator 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.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载相关推荐MCreator 生物群系自然生成生物配置指南spawn_entities 详解与底层生成原理MCreator 生物群系自然生成生物配置指南spawn_entities 详解与底层生成原理 本文以 MCreator 帮助文档 spawn_entitie低代码代码生成桌面应用游戏开发Cargo 特性Features选择指南深入理解 --features、--all-features 与 --no-default-featuresCargo 特性Features选择指南深入理解 features 、 all features 与 no default features 导读 本文聚开发工具包管理器CLI构建工具MCreator 生物群系指南海底废墟Ocean Ruins生成配置详解与实现原理MCreator 生物群系指南海底废墟Ocean Ruins生成配置详解与实现原理 导读 本文围绕 MCreator 生物群系Biome编辑器中的生低代码代码生成桌面应用游戏开发上一篇Steam Achievement Manager完整指南免费开源的Steam成就管理神器终极教程下一篇手机号逆向查询QQ号终极指南30秒快速找回账号的完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站