
装甲模型回溯移植
让资源包替换已穿戴盔甲的3D模型——EMF的逐件盔甲模型,回移植到1.21.1版本。
让资源包能够替换穿戴盔甲的3D模型。将EMF的分件盔甲模型移植回Minecraft 1.21.1。
功能
Minecraft 1.21.1将穿戴的盔甲锁定为固定形状。资源包只能更改纹理——而且纹理还被限制在64×32的布局中。
此模组移除了这两个限制。资源包可以使用OptiFine CEM格式定义盔甲几何体,且纹理尺寸任意。
存在原因
3D盔甲资源包由分件CEM模型构建——helmet.jem、chestplate.jem、leggings.jem、boots.jem。EMF对这些文件的支持仅限1.21.2+,因此1.21.1没有替代方案。
在1.21.1上启用3D盔甲资源包会导致盔甲渲染错乱:资源包的64×64纹理被一个假设为64×32的模型采样,导致只有上半部分被拉伸到整个部件上。此模组填补了这一缺失。
1.21.4新增的原版装备系统(
equipment/*.json)仅定义纹理层,不定义几何体。这不是本模组所替代的内容。
使用方法
1. 将jar文件放入mods文件夹。仅客户端需要——服务器端无需安装。
2. 将3D盔甲资源包放入resourcepacks文件夹并在游戏中启用。无需编辑——为1.21.4及更高版本构建的资源包可直接使用。
3. 穿上盔甲。日志中应显示:
[armorcem] loaded 4 armor models [HEAD, CHEST, LEGS, FEET] (json 0 / jem 4)
如果加载了0个模型,说明资源包没有盔甲模型或未被启用。
配套模组
以下模组覆盖同一资源包的其他部分。盔甲功能无需它们也可正常工作。
| 模组 | 覆盖内容 |
|---|---|
| Modefite | 手中和物品栏中的物品外观 |
| EMF | 实体模型——马铠、三叉戟、盔甲架 |
读取内容
它会在资源包中查找以下文件。如果都不存在,则不做任何操作,原版盔甲正常渲染。
assets/minecraft/optifine/cem/helmet.jem
assets/minecraft/optifine/cem/chestplate.jem
assets/minecraft/optifine/cem/leggings.jem
assets/minecraft/optifine/cem/boots.jem
它还会桥接纹理路径。新版资源包使用textures/entity/equipment/humanoid/<material>.png,而1.21.1查找的是textures/models/armor/<material>_layer_1.png。模组会检查新版路径并在存在时使用,旧版资源包不受影响。
资源包不显示时
新版资源包通常声明min_format/max_format而不带pack_format。1.21.1的解析器要求pack_format,因此解析失败,资源包根本不会出现在列表中——这是3D盔甲资源包无法启用的最常见原因。
模组会为您补全此项。副作用是资源包会被视为1.21.1资源包,因此新版本的overlay不再匹配并保持不活动——其核心着色器永远不会被编译,也就不会破坏资源重载。
给资源包作者——手写模型
如果jem解析结果不正确,可以在assets/minecraft/armorcem/humanoid.json中提供预转换的定义来覆盖。它优先于任何.jem文件。
{
"helmet": {
"textureSize": [64, 64],
"parts": [
{
"part": "head",
"pivot": [0, 0, 0],
"mirror": false,
"boxes": [
{ "origin": [-4, -8, -4], "size": [8, 8, 8], "inflate": 1.0, "uv": [0, 0] }
]
}
]
}
}
| 字段 | 含义 |
|---|---|
| 顶层键 | helmet、chestplate、leggings、boots |
textureSize |
UV坐标以此值进行除法——64×32限制已不存在 |
part |
head、hat、body、right_arm、left_arm、right_leg、left_leg |
pivot |
部件原点,使用原版实体模型空间(y轴向下,原点靠近颈部) |
mirror |
水平翻转纹理 |
origin/size |
盒体角点和尺寸,相对于pivot定义 |
inflate |
使盒体每侧向外扩展——与原版盔甲变形效果相同 |
uv |
纹理偏移,与原版模型约定一致 |
部件和分件都是可选的。任何未定义的部分保持原版状态。
不包含的功能
- 无按材质区分的几何体。每个部件一个模型;材质仅通过纹理区分。
- 仅支持原版盔甲物品。模组盔甲不受影响。
- 手持和物品栏中的物品模型不在范围内——那是Modefite的职责。
- 马铠和实体模型由EMF负责。
- 仅客户端。
兼容性
NeoForge 1.21.1。
模型替换使用NeoForge官方的IClientItemExtensions钩子。仅纹理路径和资源包格式回退使用mixins,且两者都是单返回值调整,因此冲突可能性很低。
如果另一个模组为相同的原版盔甲物品注册了客户端扩展,则只会应用其中一个。
权限
您可以自由将此模组包含在任何整合包中——无论是公开还是私有,任何平台——无需询问。欢迎提供指向本页面的链接,但并非必需。
您不得将此模组本身作为独立项目重新上传。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。