Skip to content

美术资源制作 ​

中国版支持丰富的美术资源自定义,包括模型、贴图、动画、特效和材质。本页介绍各类美术资源的制作方案、工具选择和规范要求。

概述 ​

中国版支持两种模型体系,你需要根据项目需求选择合适的方案:

维度原版模型骨骼模型
制作工具Blockbench(免费)3ds Max / Blender / Maya
资源大小小略大
模型风格方块像素风格支持曲面,风格自由
格式.geo.json(format_version 1.12.0).model.json

如何选择

保持原版风格、制作方块变体 → 原版模型。高精度角色、复杂骨骼动画 → 骨骼模型。

原版模型 ​

原版模型由立方体(Cube)组合而成,使用 Blockbench 制作。

适用场景 ​

场景支持情况
自定义生物支持
玩家皮肤支持
方块模型支持(需调整格式)
装备模型支持(需调整格式)
玩家第一人称模型不支持
PaperDoll支持显示,不支持指定动作播放

基本格式 ​

原版模型使用 format_version: "1.12.0" 的 .geo.json 格式:

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 导出

导入工作流 ​

  1. 在 3D 软件中完成建模和骨骼绑定
  2. 使用对应导出插件导出为 .model.json
  3. 将模型文件放入资源包的 models/ 目录
  4. 在实体定义 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],对应四边间距。

json
{
  "nineslice_size": [4, 4, 4, 4]
}

建议使用微软原版九宫格

中国版自行实现的九宫格在 UI 缩放后可能出现四角显示异常。推荐使用微软原版九宫格实现拉伸。

设计技巧:避免将不可拉伸的元素(如对话框尖角)放在 2/4/6/8 区域。将尖角偏移到四角区域,通过代码控制位置。

动画 ​

中国版使用 JSON 定义动画和动画控制器。

动画文件 ​

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通过脚本动态控制材质参数
json
{
  "materials": {
    "version": "1.0.0",
    "my_entity_material:entity": {
      "defines": ["USE_EMISSIVE"],
      "+states": ["DisableCulling"]
    }
  }
}

着色器开发门槛较高

材质和着色器开发需要图形学基础。建议先熟悉 GLSL 语言和渲染管线概念后再深入。

模型规范总结 ​

  • 命名规范:英文、数字、下划线,不使用中文或特殊字符
  • 贴图尺寸为 2 的幂次方
  • 导出前检查骨骼命名和层级结构
  • 纯色资源无需出图,程序可通过 JSON 配置 color 和 alpha 实现