美术资源制作
中国版支持丰富的美术资源自定义,包括模型、贴图、动画、特效和材质。本页介绍各类美术资源的制作方案、工具选择和规范要求。
概述
中国版支持两种模型体系,你需要根据项目需求选择合适的方案:
| 维度 | 原版模型 | 骨骼模型 |
|---|---|---|
| 制作工具 | Blockbench(免费) | 3ds Max / Blender / Maya |
| 资源大小 | 小 | 略大 |
| 模型风格 | 方块像素风格 | 支持曲面,风格自由 |
| 格式 | .geo.json(format_version 1.12.0) | .model.json |
如何选择
保持原版风格、制作方块变体 → 原版模型。高精度角色、复杂骨骼动画 → 骨骼模型。
原版模型
原版模型由立方体(Cube)组合而成,使用 Blockbench 制作。
适用场景
| 场景 | 支持情况 |
|---|---|
| 自定义生物 | 支持 |
| 玩家皮肤 | 支持 |
| 方块模型 | 支持(需调整格式) |
| 装备模型 | 支持(需调整格式) |
| 玩家第一人称模型 | 不支持 |
| PaperDoll | 支持显示,不支持指定动作播放 |
基本格式
原版模型使用 format_version: "1.12.0" 的 .geo.json 格式:
{
"format_version": "1.12.0",
"minecraft:geometry": [{
"description": {
"identifier": "geometry.my_entity",
"texture_width": 64,
"texture_height": 64
},
"bones": [{
"name": "body",
"pivot": [0, 24, 0],
"cubes": [{ "origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16] }]
}]
}]
}特点:文件体积小,兼容性好,与原版视觉风格一致。
骨骼模型
骨骼模型使用专业 3D 软件制作,支持更精细的建模和骨骼动画,导出为 .model.json 格式。
适用场景
| 场景 | 支持情况 |
|---|---|
| 自定义生物 | 支持 |
| 玩家替换模型 | 支持 |
| 玩家第一人称模型 | 支持 |
| 模型骨骼绑定特效 | 支持 |
| PaperDoll | 支持显示和指定动作播放 |
| 贴图序列帧动画 | 支持 |
推荐工具
- Blender(免费)— 推荐使用 Mcblend 插件导入导出
- 3ds Max — 使用官方提供的导出插件
- Maya — 支持 FBX 导出
导入工作流
- 在 3D 软件中完成建模和骨骼绑定
- 使用对应导出插件导出为
.model.json - 将模型文件放入资源包的
models/目录 - 在实体定义 JSON 中引用模型
注意面数
移动端建议单模型不超过 5000 面。贴图尺寸使用 2 的幂次方(64x64、128x128、256x256)。
贴图规范
贴图质量直接影响内存占用和游戏性能。请遵循以下规范:
基本规则
- 图片必须使用 RGB 模式(不能是灰度模式)
- 皮肤贴图需要 32 位 4 通道(含 Alpha 通道)
- 加载的图片总内存不超过 100 MB
- 内存计算公式:
宽 × 高 × 4 字节 = 单张内存
尺寸建议
| 用途 | 推荐尺寸 |
|---|---|
| 模型/特效贴图 | 最大 128x128,超出需严格限制 |
| 物品图标 | 16x16(原版风格) |
| 动作图标 | 128x128 |
| 成长指引图标 | 64x64 |
| 小按钮 | 32x32 |
贴图长宽建议选择 2 的幂次方(2, 4, 8, 16, 32, 64, 128, 256, 512)。如果一张图完成后大小为 30x130,应裁剪为 32x128,否则会占用 32x256 的内存空间。
内存换算
一张 256x256 的图占用内存 = 4 张 128x128。一张 1024x1024 = 64 张 128x128。控制大尺寸贴图数量至关重要。
九宫格
九宫格(Nine-Slice)用于 UI 图片的自适应缩放。将一张图分为 9 个区域:
┌───┬───────┬───┐
│ 1 │ 2 │ 3 │ ← 四角不拉伸
├───┼───────┼───┤
│ 4 │ 5 │ 6 │ ← 2/8 横向拉伸,4/6 纵向拉伸
├───┼───────┼───┤
│ 7 │ 8 │ 9 │ ← 5 区域双向拉伸
└───┴───────┴───┘在 JSON 中配置九宫格参数 [left, top, right, bottom],对应四边间距。
{
"nineslice_size": [4, 4, 4, 4]
}建议使用微软原版九宫格
中国版自行实现的九宫格在 UI 缩放后可能出现四角显示异常。推荐使用微软原版九宫格实现拉伸。
设计技巧:避免将不可拉伸的元素(如对话框尖角)放在 2/4/6/8 区域。将尖角偏移到四角区域,通过代码控制位置。
动画
中国版使用 JSON 定义动画和动画控制器。
动画文件
{
"format_version": "1.8.0",
"animations": {
"animation.my_entity.walk": {
"loop": true,
"animation_length": 1.0,
"bones": {
"left_leg": {
"rotation": {
"0.0": [0, 0, 0],
"0.5": [30, 0, 0],
"1.0": [0, 0, 0]
}
}
}
}
}
}动画控制器
动画控制器用状态机管理动画切换逻辑,定义状态之间的转换条件(如 query.is_moving)和每个状态播放的动画列表。格式版本为 1.10.0。
特效
MC Studio 内置特效编辑器,支持两种特效体系:
原版特效(微软粒子)
基于 Bedrock Edition 粒子系统,也可使用 Snowstorm 在线制作。
中国版特效(网易特效)
扩展的特效系统,支持更丰富的粒子效果、序列帧动画和文字面板。
特效编辑器功能
| 功能 | 说明 |
|---|---|
| 粒子编辑 | 发射器参数、生命周期、运动轨迹 |
| 序列帧 | 帧动画序列,适合火焰/烟雾等效果 |
| 模型导入 | 将 3D 模型用于特效 |
| 模型挂接 | 将特效绑定到模型骨骼节点 |
| 时间轴 | 控制特效播放时序 |
| 预览 | 实时预览特效效果 |
材质与着色器
材质系统控制游戏对象的渲染方式,基于 GLSL 着色器。
核心概念
| 主题 | 说明 |
|---|---|
| 材质文件 | .material 文件定义渲染状态和着色器引用 |
| 内置材质 | entity.material 等原版材质,可直接使用 |
| 着色器 | GLSL 顶点/片段着色器,控制渲染效果 |
| 材质 API | 通过脚本动态控制材质参数 |
{
"materials": {
"version": "1.0.0",
"my_entity_material:entity": {
"defines": ["USE_EMISSIVE"],
"+states": ["DisableCulling"]
}
}
}着色器开发门槛较高
材质和着色器开发需要图形学基础。建议先熟悉 GLSL 语言和渲染管线概念后再深入。
模型规范总结
- 命名规范:英文、数字、下划线,不使用中文或特殊字符
- 贴图尺寸为 2 的幂次方
- 导出前检查骨骼命名和层级结构
- 纯色资源无需出图,程序可通过 JSON 配置
color和alpha实现
