详解:Terrain_Matching 与 Rigid 的选择与应用)
低代码代码生成桌面应用游戏开发【免费下载链接】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 结构元素Structure中的Projection结构高度适应方式参数展开讲解该参数如何控制结构对地形的适应方式以及两种取值——rigid刚性放置与terrain_matching地形匹配——在结构生成中的行为差异与选择依据。读完本文你将理解该参数在 MCreator 数据包模板template_pool.json中的映射关系、在源码中的数据结构定义以及如何在结构 GUI 与 Jigsaw 拼图池中配置它从而让结构像村庄道路一样贴合地表或以原样平放生成。一、参数定位它出现在哪里Projection to the terrain中文界面显示为“结构高度适应高度方式”是 MCreator 结构Structure元素生成配置中的一个下拉选项位于结构元素 GUI 的生成参数区域。它同时出现在两类编辑场景中普通结构生成结构元素主配置中直接提供该选项Jigsaw 拼图池条目在“拼图Jigsaw”页面添加池条目时每个条目也带有独立的投影设置。从源码看该参数在两个位置被定义且可选值完全一致结构主体src/main/java/net/mcreator/element/types/Structure.java中LimitedOptions({ rigid, terrain_matching }) public String projection;拼图池条目同文件JigsawPool.JigsawPart内部类中的LimitedOptions({ rigid, terrain_matching }) public String projection;LimitedOptions注解限定了参数只能取rigid与terrain_matching两个值ComponentFromAnnotation.options(...)会根据该注解自动生成对应的下拉框见 StructureGUI.java 与 JJigsawPart.java。二、两种模式的行为差异本参数的核心作用是控制结构如何适应地形具体而言1. Terrain_Matching地形匹配使用terrain_matching时结构会贴合地形起伏就像村庄的土路village paths一样随地面高低变化。生成时结构不同部分的高度会被按需上下偏移使结构底部尽量贴合所在位置的地表轮廓适合道路、桥梁、依山而建或需要与地形融为一体的建筑。2. Rigid刚性使用rigid时结构会以原样平放生成不做任何高度适配整体保持在一个固定的水平面上。适合塔楼、城堡、石柱等强调几何规整、不应随地形扭曲的建筑物。三、源码与数据包模板中的映射1. 数据结构定义结构主体与拼图池条目的projection字段定义如下Structure.javaLimitedOptions({ rigid, terrain_matching }) public String projection;当结构主体配置了投影模式后MCreator 会将其写入内部生成的拼图池条目中。在getPoolParts()方法中可以看到这条传递链Structure.javapublic ListJigsawPool.JigsawPart getPoolParts() { JigsawPool.JigsawPart part new JigsawPool.JigsawPart(); part.weight 1; part.structure structure; part.projection projection; part.ignoredBlocks ignoredBlocks; return Collections.singletonList(part); }2. 模板映射写入 template_pool.json该参数最终被渲染进数据包的世界生成模板池文件template_pool.json。生成器模板中对应的渲染语句为datapack-1.21.1 模板datapack-26.3.x 模板element: { element_type: minecraft:single_pool_element, location: ${modid}:${part.structure}, projection: ${part.projection}, processors: { ... } }也就是说MCreator 选择的rigid/terrain_matching会直接作为 Minecraft 原版 Jigsaw 结构池中minecraft:single_pool_element的projection字段写入生成文件与 Minecraft 原版结构放置机制完全对应。该模板的生成入口在生成器的定义文件structure.definition.yaml中声明neoforge-1.21.1/structure.definition.yaml结构主体生成的模板池文件路径为MODDATAROOT/worldgen/template_pool/registryname.json而 Jigsaw 拼图池列表则会为每个池分别生成registryname_[item.poolName].json对应list_templates部分。3. GUI 中的读写闭环在结构元素 GUI 中投影下拉框的创建、读取与回写过程如下StructureGUI.java创建ComponentFromAnnotation.options(Structure.class, projection)依据注解自动生成下拉框帮助入口HelpUtils.wrapWithHelpButton(this.withEntry(structure/projection), L10N.label(elementgui.structuregen.projection))挂载了本帮助文档structure/projection读取structure.projection (String) projection.getSelectedItem();回写projection.setSelectedItem(structure.projection);界面标签文本elementgui.structuregen.projection在 texts_zh_CN.properties 中翻译为“结构高度适应高度方式”。四、与相邻参数的分工在结构生成配置中projection与另外两个参数经常被一并考虑需要区分它们的作用范围参数作用层级作用projection本参数单个结构/拼图池条目的放置姿态控制结构块是否随地形起伏偏移terrain_matching或保持平放rigidterrain_adaptation地形适应类型整个 jigsaw 结构的生成适配取值为none/beard_thin/beard_box/bury/encapsulate控制结构基座与地形的贴合处理方式surface_detection_type地面检测类型结构起始高度的定位决定以哪种高度图如WORLD_SURFACE、OCEAN_FLOOR定位结构起点terrain_adaptation与projection在模板中分别渲染到不同位置terrain_adaptation写入结构设置文件structure.json见 structure.json.ftl而projection写入模板池文件template_pool.json。二者一个作用于整体生成策略一个作用于单个结构块的放置姿态理解这一点有助于避免混淆。五、选择建议与注意事项道路、路径、栈桥类结构选择terrain_matching让结构随地形起伏避免悬空或陷入地表建筑、塔楼、规则几何结构选择rigid保持结构整体水平避免因地形起伏导致墙体错位结合地形适配使用对使用rigid的大型建筑可配合terrain_adaptation的beard_box/bury等方式处理基座与地形的衔接Jigsaw 拼图池条目独立配置当使用拼图池组织复杂结构时各条目的projection是独立的可以在一个池内混用两种模式例如主体建筑用rigid、连接道路用terrain_matching。六、小结Projection参数以两个简洁取值控制 MCreator 结构生成时对地形的适应姿态。它在源码中由LimitedOptions限定为rigid与terrain_matching在数据包生成阶段被原样映射进template_pool.json的minecraft:single_pool_element字段实现与 Minecraft 原版 Jigsaw 机制完全一致的行为。理解该参数并与terrain_adaptation、surface_detection_type分工配合即可精确控制结构在任意地形上的生成效果。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】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点击查看免费下载相关推荐Zerolang 投影Projection机制详解.0 文本与 zero.graph 的显式同步模型Zerolang 投影Projection机制详解 .0 文本与 zero.graph 的显式同步模型 .0 文件是 Zerolang 仓库图中面向人类的如何快速部署Fusion RSS阅读器5种简单方案全面对比如何快速部署Fusion RSS阅读器5种简单方案全面对比 你是否厌倦了复杂的RSS阅读器设置想要一个轻量级、自托管的解决方案来管理你的所有订阅内容FusVega 投影画廊实战用 Sphere 裁剪与 vega-projection-extended 构建多投影世界地图Vega 投影画廊实战用 Sphere 裁剪与 vega projection extended 构建多投影世界地图 docs/examples/projec数据可视化上一篇MobileAgent内存管理优化从问题诊断到架构演进的实践指南下一篇Windows系统界面定制工具与系统优化实践指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考