MCreator 实体碰撞箱(Bounding Box)参数完全指南:宽度、高度、阴影半径与骑乘挂载点 低代码代码生成桌面应用游戏开发【免费下载链接】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」元素中的碰撞箱Bounding Box参数展开逐一讲解宽度/深度、高度、阴影半径与乘客挂载点 Y 偏移这四个核心选项的含义、取值范围与实战设置方法并结合仓库源码说明这些参数最终如何转化为生成模组的实际代码。读完本文你将能精确控制自定义生物的可碰撞范围、阴影外观与可骑乘实体的乘客位置避免模型看着小、碰撞箱却很大之类的常见体验问题。一、参数总览碰撞箱的四个选项在 MCreator 的生物元素编辑界面LivingEntityGUI中碰撞箱相关设置集中在「物理属性」面板依次排列为四个数值选项默认值分别对应生物体型的常用规格选项控制内容默认值取值范围步进对应源码字段第 1 个选项碰撞箱的宽度与深度水平方向以方块为单位0.60160.1modelWidth第 2 个选项碰撞箱的高度垂直方向以方块为单位1.80160.1modelHeight第 3 个选项阴影半径以方块为单位0.50160.1modelShadowSize第 4 个选项骑乘时乘客挂载点的 Y 偏移0-102410240.1mountedYOffset这四个字段定义于元素数据模型 LivingEntity.java均带有Numeric注解注解中的init、min、max、step即界面上数值微调框JSpinner的初始值、边界与步进值Numeric(init 0.6, min 0, max 16, step 0.1) public double modelWidth; Numeric(init 1.8, min 0, max 16, step 0.1) public double modelHeight; Numeric(init 0.5, min 0, max 16, step 0.1) public double modelShadowSize; Numeric(init 0, min -1024, max 1024, step 0.1) public double mountedYOffset;这四个选项在 LivingEntityGUI.java 中按顺序横向排布在「模型宽度 / 模型高度 / 模型阴影大小 / 挂载偏移量」一行直接输入数值即可生效。二、前两个选项碰撞箱的宽度、深度与高度碰撞箱Collision Box / Hitbox决定了实体在游戏世界中实际占用的物理空间怪物能否通过某个缝隙、箭矢能否命中、玩家能否站在实体头上、实体之间能否互相推挤都取决于它而不是取决于模型的外观大小。宽度与深度由于大多数生物的碰撞箱在水平方向上近似为正方形MCreator 用一个数值同时控制 X 与 Z 两个方向。经典小型生物如鸡约为 0.4普通体型的生物如僵尸、村民约为 0.6大型生物则可达 1.0 以上。高度单独控制 Y 方向。普通站立生物的默认高度为 1.8两格高无法通过一格高的洞口而 0.6 高度以下的生物则可以自由钻入一格空间。值得强调的是这两个数值的语义与「模型外观比例」不同它们只改变可碰撞体积不缩放模型贴图渲染。如果你想让一个体型巨大的 Boss 拥有与视觉相称的碰撞体积应当同时配合调整「模型外观比例」visualScale与这里的宽度/高度或者直接使用「边框比例」boundingBoxScale进行整体倍率缩放三种手段的效果对比如下表参数影响碰撞箱影响模型渲染说明模型宽度/高度本选项是否直接设定绝对尺寸方块数边框比例boundingBoxScale是否对基础尺寸做整体倍率缩放支持流程控制模型外观比例visualScale否是只缩放渲染外观不改变碰撞体积关于「边框比例」与「模型外观比例」的官方说明可分别参考仓库内帮助文档 bounding_box_scale.md 与 visual_scale.md。三、第三个选项阴影半径第三个选项以方块为单位设置实体投射阴影的半径。它不参与碰撞判定只影响游戏内渲染时该实体下方阴影覆盖范围的大小。实际使用中需要注意该值应大致与碰撞箱宽度匹配。若阴影半径远小于碰撞箱如宽 4 格的巨人却只给 0.5 的阴影会出现实体悬空感明显的观感问题反之阴影半径过大如小型生物给了 8 格阴影会造成阴影异常庞大、遮挡感强且在高空俯视视角下显得突兀空中单位/飞行生物可适当调小阴影半径甚至设为 0以表现悬浮效果。阴影半径的默认初始值为 0.5对应普通生物体感阴影可调范围为 016 格。四、第四个选项骑乘挂载点的 Y 偏移第四个选项设置乘客Passenger附着点与该实体自身位置的 Y 轴偏移值即乘客挂载点的 Y 坐标与实体 Y 坐标之差。通俗地说它决定了当另一个实体骑乘在本生物身上时乘客被安放在哪个高度。该参数最常见的应用场景是制作可骑乘坐骑配合「可骑乘Ridable」开关使用若坐骑模型肩背较高如马背、龙背但挂载点默认偏低乘客会陷入坐骑身体内部此时应增大 Y 偏移把乘客抬升到背上若偏移过大乘客会悬浮在坐骑上方半空视觉效果失真该值允许为负可用于特殊场景如让乘客嵌入或低于坐骑模型某部位。在底层生成代码中该偏移量被注入到 NeoForge 实体类对getPassengerAttachmentPoint方法的覆写中见生成模板 livingentity.java.ftlOverride protected Vec3 getPassengerAttachmentPoint(Entity entity, EntityDimensions dimensions, float f) { return super.getPassengerAttachmentPoint(entity, dimensions, f).add(0, ${data.mountedYOffset}f, 0); }即在原版默认挂载点的基础上额外沿 Y 轴平移mountedYOffset个方块从而精细调整乘客的乘坐高度。五、源码层面的实现原理碰撞箱如何生效以上参数并非写死的界面值而是会真正进入生成的模组代码。以 NeoForge 1.21.1 生成器为例其核心逻辑集中在模板 livingentity.java.ftl#if hasProcedure(data.boundingBoxScale) || (data.boundingBoxScale?? data.boundingBoxScale.getFixedValue() ! 1) Override public EntityDimensions getDefaultDimensions(Pose pose) { #if hasProcedure(data.boundingBoxScale) ... return super.getDefaultDimensions(pose).scale((float) procedureOBJToNumberCode data.boundingBoxScale/); #else return super.getDefaultDimensions(pose).scale(${data.boundingBoxScale.getFixedValue()}f); /#if } /#if可以归纳出以下几条由源码确认的事实基础尺寸来自数据模型modelWidth、modelHeight直接参与碰撞箱基础尺寸的计算与实体类型定义type.definition中的尺寸配置共同决定默认EntityDimensions边框比例作为整体倍率当「边框比例」不等于 1 或绑定了流程Procedure时生成类覆写getDefaultDimensions对基础尺寸执行scale(...)整体缩放从而实现碰撞箱的等比放大/缩小若绑定的是数值流程则在baseTick()中每次执行refreshDimensions()以实时刷新尺寸见模板第 681-697 行流程Procedure支持动态尺寸「边框比例」在界面上是一个NumberProcedureSelectorLivingEntityGUI.java这意味着你可以编写流程让碰撞箱随实体状态如血量、生长阶段动态变化——例如幼年体到成年体逐渐长个。六、设置建议与常见问题排查碰撞箱与模型不匹配最常见先确认模型外观比例只影响渲染与模型宽度/高度只影响碰撞是否一致。很多模型看着 2 格高却过不去 1 格洞口的问题根源就是外观放大了而碰撞箱没跟着放大。可骑乘坐骑的乘客陷入模型优先调整第四个选项挂载点 Y 偏移以 0.1 的步进逐步试出最自然的乘坐高度。空中单位阴影突兀将阴影半径第三个选项调小或设为 0。大型 Boss 需要整体缩放同时使用「边框比例」做整体倍率配合「模型外观比例」保持视觉一致比单独逐个调整宽/高更高效。界面控件的位置关系可在 LivingEntityGUI.java 中确认四个数值选项一行排布其下紧邻「模型外观比例visualScale」与「边框比例boundingBoxScale」两个流程选择器这两个流程选择器的界面范围设定为 0.011024 倍默认 1 倍其中「边框比例」同时支持服务端与客户端两侧执行Side.BOTH而「模型外观比例」仅影响客户端渲染Side.CLIENT这与碰撞箱是服务端逻辑、外观是客户端渲染的分工完全对应。七、延伸阅读本指南对应的中文版官方帮助文档bounding_box.md德语原版见 de_DE 版碰撞箱整体倍率说明bounding_box_scale.md模型外观比例说明visual_scale.md数据模型字段定义LivingEntity.java界面布局与流程选择器配置LivingEntityGUI.java生成代码模板livingentity.java.ftl赞分享低代码代码生成桌面应用游戏开发【免费下载链接】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 方块尺寸与包围盒Bounding Box配置全解碰撞箱原理与实战指南MCreator 方块尺寸与包围盒Bounding Box配置全解碰撞箱原理与实战指南 本文围绕 MCreator 开源仓库中的官方帮助文档《方块尺寸与包低代码代码生成桌面应用游戏开发MCreator 中 Block 碰撞框Bounding Box参数的作用范围、取值规则与生成代码实现原理MCreator 中 Block 碰撞框Bounding Box参数的作用范围、取值规则与生成代码实现原理 本文围绕 MCreator 中 Block方块低代码代码生成桌面应用游戏开发Planck.js 圆形碰撞体 CircleShape 完整指南位置、半径与几何查询实战Planck.js 圆形碰撞体 CircleShape 完整指南位置、半径与几何查询实战 本文以 Planck.js 官方文档 docs/pages/shap游戏开发上一篇Windows 11硬件限制终极绕过指南MediaCreationTool.bat完整教程下一篇如何通过TegraRcmGUI实现Nintendo Switch的图形化注入核心价值与技术实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考