低代码代码生成桌面应用游戏开发【免费下载链接】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 的生物实体Living Entity制作器中每个模型层Model Layer都对应一个Disable hurt overlay禁用受伤叠加层开关。本指南围绕该选项展开先说明它位于哪一页签、勾选与否各自产生什么渲染效果再深入 UI 代码、数据模型与代码生成模板解释红色受伤闪烁从选项到最终生成模组代码的完整实现链路最后给出适合禁用该叠加层的实战场景与相邻配置项说明。读完本文你将能精准控制自定义生物模型层在受击时的红晕表现并可对照仓库源码验证其行为。1. 选项出处与作用概述该帮助条目对应的英文原文为Unless checked, the red overlay will be shown on this layer when the entity is hurt.来源help/default/entity/model_layer_hurt_animation.md德语原文为Sofern nicht aktiviert, wird das rote Overlay auf dieser Ebene angezeigt, wenn die Entität verletzt wird.来源help/de_DE/entity/model_layer_hurt_animation.md两段文字含义一致可以归纳为该选项的核心语义默认未勾选当生物实体受到伤害时该模型层上会显示标准的红色受伤叠加层red hurt overlay——即 Minecraft 中生物受击瞬间模型泛红的那层贴图勾选Disable hurt overlay该模型层在受击时不再显示红色叠加层保持原有贴图颜色不变。该复选框位于生物实体Living Entity制作器的Model Layers模型层页签中与模型Model纹理Texture发光Glow显示条件Display condition等控件并列出现在同一个模型层条目行内是每个模型层各自独立的开关。相关页签与条目的帮助文档可参见 model_layers.md 与 glow_texture.md。2. UI 中的具体位置与控件定义在 LivingEntityGUI.java 中模型层列表JModelLayerList被挂载在Model Layers页签下modelLayers new JModelLayerList(mcreator, this); // L431 ... HelpUtils.wrapWithHelpButton(this.withEntry(entity/model_layers), L10N.label(elementgui.living_entity.model_layers)), modelLayers); // L715-716每个模型层条目的行 UI 在 JModelLayerListEntry.java 中构建。其中受伤叠加层开关的定义位于第 54 行private final JCheckBox disableHurtOverlay L10N.checkbox(elementgui.living_entity.layer_disable_hurt_overlay);第 88 行将该复选框与本文所述帮助条目绑定line.add(HelpUtils.wrapWithHelpButton(gui.withEntry(entity/model_layer_hurt_animation), disableHurtOverlay));界面文本来自本地化资源文件例如 texts.properties 中elementgui.living_entity.layer_disable_hurt_overlayDisable hurt overlay德语版本见 texts_de_DE.properties 的Deaktiviere Verletzungs-Overlay。因此勾选该复选框后条目数据中的disableHurtOverlay字段会被置为true见getEntry()第 117 行反向加载时则通过setEntry()第 129 行恢复勾选状态。3. 数据模型字段如何持久化模型层条目对应的数据结构是 LivingEntity.java 中的内部类ModelLayerEntry第 332-354 行public static class ModelLayerEntry implements IWorkspaceDependent { public String model; TextureReference(TextureType.ENTITY) public String texture; public boolean disableHurtOverlay; public boolean glow; public Procedure condition; ... }其中disableHurtOverlay即为本次讨论的布尔字段位于LivingEntity.modelLayers列表第 93 行中ModElementReference TextureReference(TextureType.ENTITY) ResourceReference(model) public ListModelLayerEntry modelLayers;从数据结构可以推断该开关是按模型层独立存储的因此同一生物的不同模型层如主体模型层与额外装饰层可以拥有不同的受击表现——这正是本层不显示红晕、其他层仍显示红晕得以实现的基础。值得一提的是从源码结构看模型层列表中还可能包含一个模型名为Default的条目对应实体主模型因此该选项同样作用于主模型层勾选后即可整体关闭该实体的受击红晕效果。4. 代码生成从选项到渲染调用的完整链路勾选结果最终会体现在生成模组源码的渲染器类中。MCreator 通过 FreeMarker 模板生成实体渲染器模板位于各生成器的templates/livingentity/livingentity_renderer.java.ftl。以新版本生成器 livingentity_renderer.java.ftl 为例每个模型层提交渲染时的关键代码为submitNodeCollector.submitModel(LAYER_MODEL, state, poseStack, RENDER_TYPE, light, #if layer.disableHurtOverlayOverlayTexture.NO_OVERLAY#elseLivingEntityRenderer.getOverlayCoords(state, 0)/#if, state.outlineColor);对应 1.21.1 生成器 livingentity_renderer.java.ftl 中生成的是LAYER_MODEL.renderToBuffer(poseStack, vertexConsumer, light, #if layer.disableHurtOverlayOverlayTexture.NO_OVERLAY#elseLivingEntityRenderer.getOverlayCoords(entity, 0)/#if);该条件表达式的含义非常直观未勾选时生成LivingEntityRenderer.getOverlayCoords(entity/state, 0)这是 Minecraft 原版计算受击白/红闪烁叠加坐标的方法实体的受击闪烁效果红晕由此而来勾选后生成OverlayTexture.NO_OVERLAY这是一个恒定的白色叠加坐标表示不叠加任何受击着色模型层在受击时不再泛红。因此红色受伤叠加层本质上是LivingEntityRenderer.getOverlayCoords(...)依据实体受伤计时器计算出的 UV 叠加值而勾选该选项相当于在代码生成层面直接替换为NO_OVERLAY从渲染管线中移除这一层的受击着色。该行为同时覆盖两种模型层分支自定义模型LAYER_MODEL与默认主模型this.getParentModel()说明该开关对两种模型来源同样生效。5. 多版本生成器的一致性上述渲染逻辑并非某一版本独有。在当前仓库中disableHurtOverlay的条件分支同时存在于plugins/generator-1.21.1/neoforge-1.21.1/templates/livingentity/livingentity_renderer.java.ftlNeoForge 1.21.1基于旧式render方法签名plugins/generator-26.3.x/neoforge-26.3/templates/livingentity/livingentity_renderer.java.ftl新版 26.3 生成器基于submit/LivingEntityRenderState的新渲染架构。两套模板以几乎相同的OverlayTexture.NO_OVERLAY与LivingEntityRenderer.getOverlayCoords(...)分支实现该选项说明这是一个跨版本稳定支持的配置项只是随 Minecraft 渲染 API 的演进在方法签名与渲染状态传递方式上有所差异旧版直接传entity新版传入封装了实体渲染数据的state。此外仓库中的版本迁移转换器 EntityGlowLayerConverter.java 显示旧版本实体中的发光层GlowLayer在新版本中被迁移合并进统一的modelLayers列表其中也包含disableHurtOverlay字段这进一步印证了模型层条目是当前版本中纹理、发光、受伤叠加、显示条件等渲染选项的统一载体。6. 实战建议哪些情况适合勾选该选项结合该选项的渲染语义与模型层条目的其他控件以下场景通常建议勾选Disable hurt overlay发光/半透明层若某层使用Glow开启发光渲染RenderTypes.eyes见模板中RenderType RENDER_TYPE RenderTypes.#if layer.gloweyes#elseentityCutout/#if(LAYER_TEXTURE);受击红晕叠加在发光纹理上会显得突兀关闭后可让发光层保持稳定的观感不随本体受击的装饰层如果某个附加层表现的是外骨骼、护盾、光环等不应随本体受伤变红的部件可单独为该层关闭叠加层实现主体变红、护甲不红的分层表现追求原版自定义生物一致性的场合当实体主体模型层Default层也勾选时实体受击时将完全没有红色闪烁适合需要完全自定义受击反馈如通过 when_hurt.md 触发程序自行表现受伤效果的生物设计。需要注意该选项只影响视觉叠加层与实体的受伤判定、伤害数值、hurt_sound.md 受伤音效等逻辑无关受伤事件本身仍由实体主类中的hurtServer(...)处理见 livingentity.java.ftl 的覆写实现。7. 同一行内的相邻控件与延伸阅读每个模型层条目除本选项外还包含以下同排控件定义见 JModelLayerListEntry.java控件字段作用模型Modelmodel选择该层使用的模型Default表示跟随实体主模型纹理Texturetexture指定该层渲染使用的实体纹理贴图必填发光Glowglow开启后该层以eyes渲染类型发光显示参见 glow_texture.md显示条件Display conditioncondition客户端侧逻辑条件满足时才渲染该层参见 condition_display_model_layer.mdDisable hurt overlaydisableHurtOverlay本文主题关闭该层受击时的红色叠加层值得强调的是显示条件condition在代码模板中会包裹整个层渲染逻辑#if hasProcedure(layer.condition) ... /#if而受伤叠加层开关只作用于顶点叠加坐标两者互不影响、可以自由组合。例如可以实现仅当某条件成立时显示该层且该层永不显示受击红晕的组合效果。若要进一步查看模型层列表的整体管理逻辑增删条目、校验、数据加载可继续阅读 JModelLayerList.java若想了解实体整体而非单层的其他受击相关帮助条目可对照 hurt_sound.md 与 when_hurt.md。结语Disable hurt overlay是 MCreator 生物实体模型层配置中一个看似微小、实则精确控制渲染表现的关键开关。它从 UI 复选框出发经由LivingEntity.ModelLayerEntry.disableHurtOverlay字段持久化最终在渲染器代码生成阶段把受击叠加坐标从LivingEntityRenderer.getOverlayCoords(...)替换为OverlayTexture.NO_OVERLAY从而按层独立关闭红色受伤闪烁。掌握这一选项再配合模型、纹理、发光与显示条件即可对自定义生物的受击视觉反馈实现细粒度的分层控制。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】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 伤害类型Damage Type效果参数全解析声音效果配置与底层原理MCreator 伤害类型Damage Type效果参数全解析声音效果配置与底层原理 本文是 MCreator 伤害类型Damage Type编辑器中低代码代码生成桌面应用游戏开发MCreator 实体「抖动模型」条件详解从配置到源码级渲染原理MCreator 实体「抖动模型」条件详解从配置到源码级渲染原理 导读 本文围绕 MCreator 生物实体Living Entity配置面板中的「实体模低代码代码生成桌面应用游戏开发input-overlay 预设实战GameSir G7 Pro 手柄输入叠加层Overlay配置指南与源码解析input overlay 预设实战GameSir G7 Pro 手柄输入叠加层Overlay配置指南与源码解析 导读 本文围绕开源 OBS 插件 in直播音视频上一篇Diablo Edit2完全指南打造你的专属暗黑破坏神2角色编辑器下一篇Adobe-GenP 3.0完整教程如何快速破解Adobe Creative Cloud全系列软件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考