网易 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:` 等)
- 保持命名空间在所有文件中一致
- 避免使用中文命名文件名和路径
- 避免使用特殊字符和空格