网易 Minecraft 中国版物品与方块注册及贴图连接教程

Author
玄易同志
作者
2026-03-04
发布时间
MC杂谈
分类

网易 Minecraft 中国版物品与方块注册及贴图连接教程

一、整体结构概览


网易 Minecraft 中国版 Addon 需要两个核心包:
- 行为包 (Behavior Pack) - 位于 `behavior_pack_XXX/` 目录,包含物品和方块的逻辑定义
- 资源包 (Resource Pack) - 位于 `resource_pack_XXX/` 目录,包含贴图、模型、音效等资源

---

二、manifest.json 配置要求

行为包 manifest.json 示例


JSON
{
    "format_version": 1,
    "header": {
        "min_engine_version": [1, 18, 0],
        "uuid": "97ded5e0-0ee6-4000-9402-9e8e19184158",
        "version": [0, 0, 1]
    },
    "modules": [
        {
            "type": "data",
            "uuid": "c6d6adda-b1ae-40be-8d3f-1b7fd0597048",
            "version": [0, 0, 1]
        }
    ]
}

资源包 manifest.json 示例


JSON
{
    "format_version": 1,
    "header": {
        "min_engine_version": [1, 18, 0],
        "uuid": "5feeb096-dbe8-4f04-828b-11426b026862",
        "version": [0, 0, 1]
    },
    "modules": [
        {
            "type": "resources",
            "uuid": "ebf4e110-7d1a-41fa-9793-7c6cc37cb672",
            "version": [0, 0, 1]
        }
    ]
}


关键要求
- 必须设置 `min_engine_version` 为 `[1, 18, 0]` 或更高
- UUID 必须唯一,不能与平台现有作品重复
- 版本号格式为 `[主版本, 次版本, 补丁版本]`

---

三、物品注册完整流程

步骤 1:创建行为包物品定义文件


在 `behavior_pack_XXX/netease_items_beh/` 目录下创建 JSON 文件,例如 `cbc_my_sword.json`:

JSON
{
    "format_version": "1.10",
    "minecraft:item": {
        "components": {
            "minecraft:max_damage": 100,
            "netease:weapon": {
                "attack_damage": 5,
                "enchantment": 10,
                "level": 2,
                "speed": 5,
                "type": "sword"
            }
        },
        "description": {
            "category": "equipment",
            "custom_item_type": "weapon",
            "identifier": "cbc:my_sword"
        }
    }
}


关键字段说明
- `identifier`:物品唯一标识符,格式为 `命名空间:物品名`
- `category`:物品分类(equipment、food、tools 等)
- `netease:weapon`:网易版武器组件,可定义攻击力、攻速、附魔等级等

步骤 2:创建资源包物品定义文件


在 `resource_pack_XXX/netease_items_res/` 目录下创建同名 JSON 文件 `cbc_my_sword.json`:

JSON
{
    "format_version": "1.10",
    "minecraft:item": {
        "components": {
            "minecraft:icon": "cbc:my_sword"
        },
        "description": {
            "identifier": "cbc:my_sword"
        }
    }
}

步骤 3:配置物品贴图映射


编辑 `resource_pack_XXX/textures/item_texture.json`,添加纹理映射:

JSON
{
    "resource_pack_name": "vanilla",
    "texture_data": {
        "cbc:my_sword": {
            "textures": "textures/my_sword"
        }
    },
    "texture_name": "atlas.items"
}


路径说明
- 纹理文件应放置在 `resource_pack_XXX/textures/` 目录下
- 不需要包含文件扩展名 `.png`

步骤 4:准备物品贴图文件


将物品图片放置在 `resource_pack_XXX/textures/my_sword.png`

贴图要求
- 建议尺寸:16x16、32x32、64x64 等
- 格式:PNG
- 必须包含 Alpha 通道

---

四、方块注册完整流程

步骤 1:创建行为包方块定义文件


在 `behavior_pack_XXX/blocks/` 目录下创建 JSON 文件,例如 `cbc_my_block.json`:

JSON
{
    "format_version": "1.19.70",
    "minecraft:block": {
        "description": {
            "identifier": "cbc:my_block",
            "register_to_creative_menu": true
        },
        "components": {
            "minecraft:geometry": "geometry.my_block",
            "minecraft:material_instances": {
                "*": {
                    "texture": "my_block_texture",
                    "render_method": "blend"
                }
            }
        }
    }
}


关键字段说明
- `identifier`:方块唯一标识符
- `register_to_creative_menu`:是否在创造模式物品栏显示
- `minecraft:geometry`:引用的几何模型
- `minecraft:material_instances`:材质实例,配置纹理映射

步骤 2:创建方块模型文件


在 `resource_pack_XXX/models/blocks/` 目录下创建模型文件 `my_block.json`:

JSON
{
    "format_version": "1.12.0",
    "minecraft:geometry": [
        {
            "description": {
                "identifier": "geometry.my_block",
                "texture_width": 16,
                "texture_height": 16
            },
            "bones": [
                {
                    "name": "root",
                    "pivot": [0, 0, 0],
                    "cubes": [
                        {
                            "origin": [-8, 0, -8],
                            "size": [16, 16, 16],
                            "uv": {
                                "north": {"uv": [0, 0], "uv_size": [16, 16]},
                                "east": {"uv": [0, 0], "uv_size": [16, 16]},
                                "south": {"uv": [0, 0], "uv_size": [16, 16]},
                                "west": {"uv": [0, 0], "uv_size": [16, 16]},
                                "up": {"uv": [0, 0], "uv_size": [16, 16]},
                                "down": {"uv": [0, 0], "uv_size": [16, 16]}
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

步骤 3:配置方块贴图映射


编辑 `resource_pack_XXX/textures/terrain_texture.json`,添加纹理映射:

JSON
{
    "resource_pack_name": "vanilla",
    "texture_data": {
        "my_block_texture": {
            "textures": "textures/blocks/my_block"
        }
    },
    "texture_name": "atlas.terrain"
}

步骤 4:准备方块贴图文件


将方块贴图放置在 `resource_pack_XXX/textures/blocks/my_block.png`

---

五、常见打包错误及解决方案

错误代码 37 - ManifestJsonError

- 原因:manifest.json 缺少 min_engine_version 或版本低于 1.18.0
- 解决:添加 `"min_engine_version": [1, 18, 0]`

错误代码 25 - TexturesListLoadError

- 原因:JSON 文件编码错误或格式错误
- 解决:确保 JSON 文件使用 UTF-8 编码,使用 JSON 格式化工具检查

错误代码 33 - AudioReviewError

- 原因:音效格式非 .ogg 或码率大于 128
- 解决:将音效转换为 .ogg 格式并设置码率不大于 128

错误代码 27 - NameOverSizeError

- 原因:文件名过长
- 解决:缩短文件名长度

错误代码 35 - CodeExceptionError

- 原因:变量名、文件名、函数名存在超过 5 个连续相同字符
- 解决:修改相关命名,避免连续相同字符

---

六、目录结构总结


PLAINTEXT
addon项目/
├── behavior_pack_XXX/
│   ├── manifest.json
│   ├── blocks/
│   │   └── cbc_my_block.json          # 方块定义
│   └── netease_items_beh/
│       └── cbc_my_sword.json          # 物品定义(行为包部分)
│
└── resource_pack_XXX/
    ├── manifest.json
    ├── models/
    │   └── blocks/
    │       └── my_block.json          # 方块模型
    ├── netease_items_res/
    │       └── cbc_my_sword.json      # 物品定义(资源包部分)
    └── textures/
        ├── item_texture.json          # 物品纹理映射
        ├── terrain_texture.json       # 方块纹理映射
        ├── my_sword.png               # 物品贴图
        └── blocks/
            └── my_block.png           # 方块贴图


---

七、命名空间使用建议


- 使用有意义的命名空间前缀(如 `cbc:`、`mymod:`、`custom:` 等)
- 保持命名空间在所有文件中一致
- 避免使用中文命名文件名和路径
- 避免使用特殊字符和空格