
ORM - OverrideResourceManager
一款Minecraft Fabric 1.21.4模组,无需资源包即可在运行时覆盖物品纹理和3D模型。支持CustomModelData、NBT、动画纹理、Blockbench模型,并通过F3+T进行热重载。
ORM - OverrideResourceManager
一个客户端 Fabric 模组,适用于 Minecraft 1.21.4,允许您在运行时替换物品纹理和模型——无需资源包。覆盖配置存放在 config/orm/ 下的普通文件中,并会随资源堆栈(F3+T)一同重载。
功能特性
| 功能 | 描述 |
|---|---|
| 纹理覆盖 | 用来自 config/orm/textures/ 的任意 .png 文件替换原版物品纹理 |
| 3D 模型覆盖 | 用来自 config/orm/models/ 的 Blockbench 导出的 .json 文件替换物品模型 |
| 动画纹理 | 在纹理旁边放置 .png.mcmeta 文件即可获得 MC 标准帧动画 |
| 按实例匹配 | 按物品名称、CustomModelData 或 NBT 匹配——同类型的不同物品可拥有不同的覆盖 |
| 优先级系统 | 更具体的条目优先:物品 < 物品+名称 < 物品+自定义模型数据 < 物品+自定义模型数据+NBT |
| 快速添加快捷键 | 在任何物品栏界面中键点击物品即可自动生成其配置条目 |
安装方法
- 为 Minecraft 1.21.4 安装 Fabric Loader 和 Fabric API。
- 将 ORM
.jar文件放入您的mods/文件夹。 - 启动游戏——
config/orm/目录会自动创建。
文件结构
config/orm/
├── overrides.json ← 主配置文件(覆盖条目列表)
├── models/
│ └── <name>.json ← 自定义 Blockbench/JSON 模型
└── textures/
└── item/
└── <name>.png ← 纹理文件(+ 可选的 .png.mcmeta 动画文件)
模型和纹理在 overrides.json 中使用 orm: 命名空间引用:
"model": "orm:sword"→config/orm/models/sword.json"texture": "orm:item/texture2d/apple"→config/orm/textures/item/texture2d/apple.png
子目录完全支持,且其结构会被保留:
config/orm/textures/item/sword/anim/animation.png
→ orm:item/sword/anim/animation
overrides.json 参考文档
每个条目是一个 JSON 对象。字段如下:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
item |
字符串 | 是 | Minecraft 物品 ID,例如 "minecraft:netherite_sword" |
name |
字符串 | 否 | 按精确显示名称匹配 |
customModelData |
整数 | 否 | 按 CustomModelData 值匹配 |
nbtCondition |
对象 | 否 | 按 NBT 键/值对匹配 |
texture |
字符串 | 否 | 纹理覆盖路径:"orm:<路径>" |
model |
字符串 | 否 | 模型覆盖 ID:"orm:<名称>" |
target |
字符串 | 否 | 显式目标纹理 ID,来自模组物品模型 |
texture 或 model 至少需要设置其中一个。
使用示例
以下示例取自一个实际可用的配置。它用自定义暗黑风格 3D 模型(每个模型带有一层动画纹理)覆盖了两件工具,并用平面 2D 纹理替换了金苹果。
config/orm/overrides.json
[
{
"item": "minecraft:netherite_sword",
"name": "Netherite Sword",
"model": "orm:sword"
},
{
"item": "minecraft:netherite_pickaxe",
"name": "Netherite Pickaxe",
"model": "orm:pickaxe"
},
{
"item": "minecraft:golden_apple",
"name": "Golden Apple",
"texture": "orm:item/texture2d/apple"
}
]
上述示例对应的文件结构
config/orm/
├── overrides.json
├── models/
│ ├── sword.json
│ └── pickaxe.json
└── textures/
└── item/
├── sword/
│ ├── diablo_texture.png ← 静态基础纹理
│ └── anim/
│ ├── animation.png ← 动画叠加帧
│ └── animation.png.mcmeta ← 帧时序
├── pickaxe/
│ ├── diablo_texture.png
│ └── anim/
│ ├── animation.png
│ └── animation.png.mcmeta
└── texture2d/
└── apple.png ← 平面 2D 替换纹理
每个条目如何工作
下界合金剑/镐 — "model": "orm:sword" 加载 models/sword.json。该模型自身引用两层纹理:
orm:item/sword/diablo_texture— 一张静态的 128×128 精细纹理orm:item/sword/anim/animation— 由animation.png.mcmeta驱动的动画叠加层
两者都通过显示名称("name": "Netherite Sword")匹配,因此只有名称完全一致的物品才会受到影响。若在铁砧中将物品重命名为其他名称,原版模型便会恢复。
金苹果 — "texture": "orm:item/texture2d/apple" 全局替换了原版 golden_apple.png(无名称筛选),因此世界中所有金苹果都会使用 textures/item/texture2d/apple.png。
动画纹理 .mcmeta 格式
{
"animation": {
"frametime": 3,
"frames": [0, 1, 2, 3]
}
}
将 .mcmeta 文件放置在与 .png 文件相同的位置,并命名相同,再加上 .mcmeta 后缀即可。
快捷键:快速添加
打开任意物品栏界面,然后中键点击一个物品槽位。ORM 会读取物品的 ID、显示名称和 CustomModelData,在 overrides.json 中追加一个新条目,并输出聊天确认信息。生成的条目使用 texture 字段,路径由物品 ID 推导而来——请用您的实际文件替换占位纹理值。
默认快捷键:鼠标中键(可在 控制 → 覆盖资源管理器 下重新绑定)。
重载
按 F3+T 可重载资源包。ORM 会重新读取 overrides.json,重新扫描 models/ 和 textures/,并重建覆盖注册表,无需重启游戏。
环境要求
- Minecraft 1.21.4
- Fabric Loader 0.19.2 及以上版本
- Fabric API 0.119.4+1.21.4
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。