first commit

This commit is contained in:
boybook
2025-03-17 13:24:39 +08:00
commit 9a0334ee84
6410 changed files with 221907 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
---
front: https://nie.res.netease.com/r/pic/20220408/16639574-e3de-4603-b64d-664b1fa77236.png
hard: 入门
time: 5分钟
selection: true
---
# 模型制作方案
我的世界中国版支持两种模型格式,分别为原版模型与普通的骨骼模型。
| | 原版模型 |骨骼模型 |
| :---: | :---: | :---: |
| 制作工具 | Blockbench等 | 3D Max、CINEMA 4D、Autodesk Maya、Blender等 |
| 资源大小 | 小 | 略大于原版模型 |
| 模型风格 | 方块风格| 可支持各种风格,模型中可有曲面 |
两种模型在游戏中支持不同的使用场景,可根据需求调整模型制作方案。
| 使用场景 | 原版模型 |骨骼模型 |
| :---: | :---: | :---: |
| 生物模型 | 支持 | 支持 |
| 玩家模型 | 支持 | 支持 |
| 玩家第一人称模型 | 不支持 | 支持 |
| 模型骨骼绑定特效 | 不支持 | 支持 |
| 方块模型 | 模型文件格式做一定调整后可用于方块模型 | 不支持 |
| 装备模型 | 模型文件格式做一定调整后可用于装备模型 | 不支持 |
| PaperDoll | 支持模型显示,不支持指定动作播放 | 支持模型显示,也支持指定动作播放 |
| 模型贴图序列帧动画 | 不支持 | 支持 |
两种格式的模型制作请参照后续的文档。

View File

@@ -0,0 +1,225 @@
---
front:
hard: 入门
time: 分钟
---
# 原版模型制作指南
## 1. Blockbench
Blockbench 是由 JannisX11 开发的一款专门用于 Minecraft 3D 建模的免费软件。
使用软件Blockbench 3.4.2
官方网站https://blockbench.net/
因为官网源地址下载太慢依据软件的MIT协议这里提供一个国内的下载备份[地址](https://mcrealms.gdl.netease.com/Blockbench_3.4.2.exe)。
Blockbench有以下优点
* 软件操作简单,上手几乎没有门槛;
* 免费开源软件,任何人都可以自由的使用它
* 支持插件功能,可以方便的添加功能强大的插件;
* 制作的模型可以导出为 OBJ 文件,你可以使用任意现代化的 3D 建模软件渲染它,制作出好看的图片;
* 支持 Minecraft Java 版的方块物品建模Minecraft Java 版实体建模Minecraft 基岩版本的实体建模OptiFine 模组的实体建模等诸多功能。是你制作 Minecraft 模型不可或缺的工具。
![reg2-1](./picture/bbmodel/blockbench.png)
本文档我们将介绍如何使用Blockbench制作生物模型与动作。
**注意**Blockbench 3.x版本默认启用1.12.0版本基岩版模型。
下面,我们以制作“松鼠”模型和动作为例,详细说明如何制作模型和动作,最终输入资源路径为:示例\6-4 资源制作\工具和示例\bbmodel
## 2.模型制作流程
### 2.1 创建工程
![reg2-1](./picture/bbmodel/new_model.png)
### 2.2 参数设置
这里创建一个松鼠的模型文件名为squirrel模型Identifier为netease:squirrel贴图大小为64设置完直接点击“Confirm”进入下一步。
![reg2-1](./picture/bbmodel/setting.png)
### 2.3 导入贴图
在软件界面的左下角中找到贴图界面,导入模型将要使用的贴图,该贴图的大小应该和上一步中设置的参数一致,如下所示:
![reg2-1](./picture/bbmodel/import_texture.png)
### 2.4 创建模型几何
![reg2-1](./picture/bbmodel/edit.png)
如上图所示,在"**Edit**"标签下我们可以编辑几何模型区域1可以编辑模型区域2实时显示模型。
* 创建分组与立方体
在大纲栏Outliner可以通过创建分组来管理立方体。
![reg2-1](./picture/bbmodel/add_group.png)
如上图所示创建一个分组body里面包含两个立方体命名为body
* 编辑立方体
在创建分组与立方体完成之后选中指定的立方体如上图中第二个body便可以编辑其位置Position、大小Size、 轴心点 Pivot Point、旋转角度Rotation等信息。
* 编辑立方体贴图UV
![reg2-1](./picture/bbmodel/uv_texture.png)
如图所示,在左上角可以通过调整**X**和**Y**的值来调整“**当前编辑立方体**”使用的贴图。
### 2.5 导出模型
在完成模型编辑之后我们可以通过导出模型json便可以在游戏中使用。
![reg2-1](./picture/bbmodel/export_model.png)
在本示例中导出名称为squirrel.geo.json内容如下所示
```json
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.netease:squirrel", # 对应参数设置中的模型Identifier
"texture_width": 64, # 对应参数设置中的贴图大小
"texture_height": 64,
"visible_bounds_width": 4,
"visible_bounds_height": 1,
"visible_bounds_offset": [0, 0.5, 0]
},
"bones": [
{
"name": "body",
"pivot": [0, 5, 8],
"rotation": [-20, 0, 0],
"mirror": true,
"cubes": [
{"origin": [-3, 2, -2], "size": [6, 5, 10], "uv": [0, 0], "mirror": false},
{"origin": [-3, 7, 1], "size": [6, 1, 7], "uv": [22, 0], "mirror": false}
]
},
...
]
}
]
}
```
## 3.动作制作流程
首先,有一点我们需要清楚:动作是在模型的基础上,对模型的节点的位置、旋转角度进行调整。
### 3.1 界面说明
我们先来初步了解一下动作制作界面。
![reg2-1](./picture/bbmodel/edit_animate.png)
* 区域1编辑动作需要切换到"**Animate**"标签
* 区域2动作增加、动作删除、动作长度设置、动作预览、动作属性设置是否循环播放等
* 区域3动作关键帧编辑
* 区域4动作编辑管理
* 区域5模型分组大纲栏
* 区域6模型分组对应的骨骼瞄点
### 3.2 新建动作
![reg2-1](./picture/bbmodel/create_animate.png)
步骤如下:
* 点击创建动作按钮,弹出输入框;
* 输入动作名称如animation.squirrel.idle
* 点击确定
### 3.3 编辑动作
![reg2-1](./picture/bbmodel/edit_animate1.png)
* 选中需要编辑的动作
如图选中动作animation.squirrel.idle
* 选中模型立方体
如图选中节点head
* 选中动作时间节点
如图选中时间线上的0.5ms
* 插入关键帧信息
如图点击head下的Rotation右边的“+”按钮增加关键帧
* 编辑关键帧信息
如图编辑关键帧信息Rotation500
### 3.4 导出动作
![reg2-1](./picture/bbmodel/export_animate.png)
输入命名squirrel.animation.json后保存便得到我们需要的动作。
```json
{
"format_version": "1.8.0",
"animations": {
"animation.squirrel.idle": {
"loop": true,
"animation_length": 2,
"bones": {
"rearFootLeft": {
"rotation": {
"0.0": [0, 0, 0],
"0.4833": [15, 0, 0],
"1.6": [10, 0, 0],
"1.8833": [-10, 0, 0],
"2.0": [0, 0, 0]
}
},
...
}
},
"animation.squirrel.move": {
"loop": true,
"animation_length": 0.48,
"bones": {
"rearFootLeft": {
"rotation": {
"0.0": [5, 0, 0],
"0.1667": [125, 0, 0],
"0.4333": [5, 0, 0]
}
},
...
}
}
}
}
```
至此,我们可以将导出的模型和动作用于制作自定义生物了。

View File

@@ -0,0 +1,241 @@
---
front:
hard: 入门
time: 分钟
---
# 骨骼模型制作指南3DMAX)
## 1. 模型制作技术规范
本文档说明了如何使用软件MAX 2014制作符合《我的世界》规范的模型。
### 1.1 模型单位
![reg1-1-1](./picture/model/reg1-1-1.png)
### 1.2 朝向
![reg1-2-1](./picture/model/reg1-2-1.png)
### 1.3 贴图
- 只支持一张贴图,贴图名称必须为英文
- **模型制作当中,避免使用镜像或者对称!**
### 1.4 顶点
- **每个长方体通常是8个顶点整个模型应控制在300个顶点特殊模型可在1000以内**
- **每个顶点只绑定一根骨骼**
- **注意事项:法线检查**
模型制作完成提交前必须完成以下4个步骤
1. 属性中将模型设置为背面消隐,查看模型是否有反面,如果有的话 **flip检查过程当中多尝试**
![reg1-4-1](./picture/model/reg1-4-1.png)
2. Reset Xform **(多点击几次,然后塌陷)**
![reg1-4-2](./picture/model/reg1-4-2.png)
3. Mesh Select **与4一起点击完后不用操作直接塌陷**
![reg1-4-3](./picture/model/reg1-4-3.png)
4. STL Check
并最终转化为Poly模型提交此步骤可避免模型在引擎中显示出错。
如果模型出现法线问题,将法线出错的位置选择并反相 **flip** 即可。
![reg1-4-4](./picture/model/reg1-4-4.png)
### 1.5 动作输出注意事项
#### 1.5.1 关于蒙皮
- 骨骼架设使用纯bone
- 骨骼控制在20根以内最多不能超过50这种是为了做特殊boss用
- 需要添加rootupdown 三根骨骼
- root是质心的父级位移旋转都要归于坐标原点0.0
- up控制上半身质心的子级身体的父级
- down控制下半身质心的子级双脚的父级
- 所有的骨骼都要有链接武器挂件坐骑等都要链接给相应的手质心等位子可使用link
- 蒙皮选项当中的高级参数中,有个**骨骼影响限制,需要调为1**
![reg1-5-1](./picture/model/reg1-5-1.png)
#### 1.5.2 动作输出
- 文件版本为MAX 2014
- 输出文件命名使用拼音如技能_狂气输出spell_kuangqi
- 文件需要输出FBX输出文件夹命名英文
- 输出文件需要塌陷骨骼动画
- root、up、down骨骼不可以有动画
- 缩放动画必须用等比缩放,且不能有单轴向缩放
- 蒙皮与待机pose确认后再进行其余动作制作
**注意事项:模型当中不能有任何的中文**
#### 1.5.3 FBX输出设置
![reg1-5-3-1](./picture/model/reg1-5-3-1.png)
![reg1-5-3-2](./picture/model/reg1-5-3-2.png)
![reg1-5-3-3](./picture/model/reg1-5-3-3.png)
输出为FBX格式的文件后参考[教学中心-编辑器基础-关卡编辑器使用说明-资源管理-资源导入](../../15-资源管理/5-文件导入.md)转化为我的世界中可用的模型格式。
## 2. 制作导出流程
以大天狗制作流程为例
### 2.1 原画概念设计
1. 打开人形式神基础模型基础模型的每个格子单位为1就是像素单位不要改变这个大小
![reg2-1-1](./picture/model/reg2-1-1.png)
2. 利用材质球上色截图或者PS上色均可正面的效果可以比较快地确定颜色分布。
![reg2-1-2](./picture/model/reg2-1-2.png)
3. 增加外轮廓的辨识度突出的部分尽量归纳减少细节这一步使用PS绘制概念图。
![reg2-1-3](./picture/model/reg2-1-3.png)
4. 进一步增加轮廓的辨识度注意角色身上最具有特点的部位一个角色身上只有一到两个特征需要这样强调比如大天狗的翅膀。这一步同样使用PS绘制示意图背面也需要有设计。
因为风格限制不强制侧面的效果但是需要考虑到4分之一侧面的效果。
![reg2-1-4](./picture/model/reg2-1-4.png)
![reg2-1-5](./picture/model/reg2-1-5.png)
参考:《阴阳师》大天狗设计图,在转换为我的世界模型风格时,需要减少没有代表性的琐碎细节。
* 鞋子的造型需要直接归纳到腿部
* 翅膀的3层羽毛层次减少到2层边缘细节概括处理
**注意设计归纳的时候注意估算一下顶点数量小怪在300以下复杂模型在700以下BOSS在1000以下尽量低于最高值以免制作完成后超过难以修改。**
<img src="./picture/model/reg2-1-6.png" alt="reg2-1-6" style="zoom:67%;" />
![reg2-1-7](./picture/model/reg2-1-7.png)
### 2.2 建模附材质
#### 2.2.1 制作模型
根据绘制草图制作模型,建模部分可以在原本的格子上直接挤出来造型。**注意挤出的高度单位也是1**。
建模方法如下:
1. 根据游戏中的规范,用头部放大,然后删去不要的部分来建模(比如大天狗)。
**注意方法1与方法2不能使用在同一个部件上**
2. 如果头发造型过于复杂或者有动作上的可能性,则需要另外建模(比如酒吞童子)。
**注意检查挤出后不要有一些废面藏在模型里。**
![reg2-2-1](./picture/model/reg2-2-1.png)
#### 2.2.2 开始上色
因为我们使用的是一像素单位的像素格,使用为单个面赋予材质球的方式来上色。
**给同一个色相类型的材质球命名好编好号方便管理。比如黄色以Y开头Y-1 、Y-2类似**
区分好固有色后开始细分色阶同样一个固有色细分2~4个色阶不要太多细分太过细腻会削弱像素元素本身的美感。
![reg2-2-2](./picture/model/reg2-2-2.png)
![reg2-2-3](./picture/model/reg2-2-3.png)
### 2.3 材质球(贴图)处理
本步骤是为了方便整理材质,也可以不做
![reg2-3-1](./picture/model/reg2-3-1.png)
在上一步模型以及材质赋予步骤完成之后,参考上图步骤清空材质球选框,依次从左至右吸取头发、头部、身体等材质。(将会得到如上的多维子材质球)
制作中需要注意单个颜色的ID的排序参考上图由浅至深依次排列方便制作以及修改。
1. 按照下图中三个步骤,新建一个材质库
![reg2-3-2](./picture/model/reg2-3-2.png)
2. 保存材质库的命名以角色名称为命名之后材质目录中会出现该材质库下图示例yunv)
![reg2-3-3](./picture/model/reg2-3-3.png)
3. 选择单一材质球,依下图标识将该材质球加入材质库(所有材质球依次制作一遍)
![reg2-3-4](./picture/model/reg2-3-4.png)
注意材质球需要以部件名称为命名
![reg2-3-5](./picture/model/reg2-3-5.png)
4. 再次打开材质库可见所有材质球已经被导入材质库在材质库中右键保存入第一步中创建的mat文件中即可。**这么做的原因是为了方便整理材质球,便于调整颜色。**
![reg2-3-6](./picture/model/reg2-3-6.png)
### 2.4 后处理
#### 2.4.1 分UV
![reg2-4-1](./picture/model/reg2-4-1.png)
- 所有的UV线都必须横平竖直不能有倾斜否则会出现锯齿。
- UV边界需要像素填充通过烘焙可以扩边4个像素
- UV摆放原则身体结构按部位从上到下摆放不能颠倒朝向
- UV格子大小需要基本一致不能有太大的差别
#### 2.4.2 烘焙
**注意烘焙之前上传一版NXN做备份**
![reg2-4-2](./picture/model/reg2-4-2.png)
启用填充,烘焙贴图有扩边效果
![reg2-4-3](./picture/model/reg2-4-3.png)
贴图大小可以烘焙得大一点提高精度然后在PS里面缩小到**512X512**,注意缩小的时候使用邻近(硬边缘),因为都是像素格,这样缩小不会损失任何精度。
#### 2.4.3 减面
只留下必须的点面,多余的点面全部减掉,注意贴上烘焙好的贴图进行减面,**减的时候注意不要出现贴图拉伸变形的情况。**
![reg2-4-4](./picture/model/reg2-4-4.png)
![reg2-4-5](./picture/model/reg2-4-5.png)
### 2.5 完成
制作完的MAX文件贴上烘焙好的贴图的效果截图
![reg2-5-1](./picture/model/reg2-5-1.png)

View File

@@ -0,0 +1,182 @@
---
front:
hard: 入门
time: 分钟
---
# 骨骼模型制作指南Blender
## 1.模型制作技术规范
使用软件blender 2.82
### 1.1 模型单位设置
模型单位设置为:英寸
![unit_set](./picture/unit_set.png)
### 1.2 朝向
背对y轴x轴朝右z轴朝上
![chaoxiang](./picture/blender_chaoxiang.png)
### 1.3 贴图
只支持一张贴图,贴图名称必须为英文
**模型制作当中,避免使用镜像或者对称!**
### 1.4 顶点
每个长方体通常是8个整个模型控制在300个顶点特殊模型可以在1000以内
每个顶点只绑定一根骨骼
注意事项:法线检查
模型制作完成提交前必须完成2个步骤
- 检查法线朝向
![faxiang](./picture/blender_faxiang.png)
- 游标归于模型中心,模型位于场景中心
![notice2](./picture/blender_notice2.png)
### 1.5 关于蒙皮
对于蒙皮,主要注意以下几点:
1骨骼需要有总控root骨骼且每部分只能用一根骨骼骨骼示意以及层级关系如下图
![mengpi1](./picture/blender_mengpi1.png)
2骨骼命名也需要按照肢体去规范名字
- 总控=root
- 身体=body
- 头=head
- 左胳膊=arm_l
- 右胳膊= arm_r
- 左腿=leg_l
- 右腿=leg_r
3骨骼数要控制在20根以内最多不能超50某种特殊boss可能会用到50根以内的骨骼常规要控制在20根以内
4蒙皮需要注意的每个模块只能受一根骨骼影响如下图所示头部只能受“head”骨骼影响。
![mengpi2](./picture/blender_mengpi2.png)
5FBX输出设置
![mengpi3](./picture/blender_mengpi3.png)
## 2.制作流程
下面以大天狗制作流程为例说明骨骼模型的制作过程。
### 2.1 原画概念设计
1打开人形式神基础模型基础模型的每个格子单位为1就是像素单位不要改变这个大小
![make_step1](./picture/blender_make_step1.png)
2利用材质球上色截图或者PS上色均可正面的效果可以比较快的确定颜色分布
![make_step2](./picture/blender_make_step2.png)
3增加外轮廓的辨识度突出的部分尽量归纳减少细节这一步使用PS绘制概念图
![make_step3](./picture/blender_make_step3.png)
4进一步增加轮廓的辨识度注意角色身上最具有特点的部位一个角色身上只有一到两个特征需要这样强调比如大天狗的翅膀。这一步同样使用PS绘制示意图背面也需要有设计因为风格限制不强制侧面的效果但是需要考虑到4分之一侧面的效果
<img src="./picture/blender_make_step4.png" alt="make_step4" style="zoom:80%;" />
<img src="./picture/blender_make_step5.png" alt="make_step5" style="zoom:80%;" />
参考:《阴阳师》大天狗设计图,在转换为我的世界模型风格时,需要减少没有代表性的琐碎细节。
鞋子的造型需要直接归纳到腿部
翅膀的3层羽毛层次减少到2层边缘细节概括处理
**注意设计归纳的时候注意估算一下顶点数量小怪300以下复杂模型700以下BOSS1000以下尽量低于最高值以免制作完成后超过难以修改。**
![make_step6](./picture/blender_make_step6.png)
### 2.2 建模和着色
#### 2.2.1 制作模型
根据原画制作模型建模部分可以在提供的标模的格子上直接挤出来造型。注意挤出的高度单位也是1。
1根据游戏中的规范用头部放大然后删去不要的部分来建模。比如大天狗
2如果头发造型过于复杂或者有动作则需要另外建模。比如酒吞童子
**注意:关节处的模型体块必须分开制作(胳膊,腿,身体的体块都是要分开的,动物类模型尾巴有转折的话,尾巴的转折处也要分开制作)**
#### 2.2.2 开始上色
![make_step7](./picture/blender_make_step7.png)
材质属性面板选中需要着色的面赋予不同颜色的材质球因为颜色会比较多材质球命名上可以用类似green_01,green_02这种方便查找对应的颜色。
### 2.3 后处理
#### 2.3.1 UV拆分
所有的uv必须横平竖直不能有倾斜否则会出现锯齿
每块uv边界之间要留至少两个像素的距离贴图要制作扩边
uv摆放时可以导入一张对应贴图像素大小的棋盘格每一条uv边缘线都必须要和棋盘格的格子对齐
![make_step8](./picture/blender_make_step8.png)
#### 2.3.2 减面
![make_step9](./picture/blender_make_step9.png)
![make_step10](./picture/blender_make_step10.png)
复制一个模型减面或拓扑用拓扑的话就可以拓扑后再拆分uvuv摆放的规则一定要重视只留下轮廓线多余的线全部删掉。
填色的高模备份一个,后面烘焙颜色用。
#### 2.3.3 烘焙颜色
烘焙类型选择漫射烘焙颜色的时候可以提高贴图精度之后再用PS缩小到128像素大小
![make_step11](./picture/blender_make_step11.png)
注意缩小图像大小的时候使用邻近(硬边缘),因为都是像素格,不会损失精度。
![make_step12](./picture/blender_make_step12.png)
### 2.4 完成
贴上烘焙好的贴图效果截图如下:
![make_step13](./picture/blender_make_step13.png)

View File

@@ -0,0 +1,108 @@
---
front:
hard: 入门
time: 分钟
---
# 骨骼模型的使用
骨骼模型、骨骼动画的制作请参考[骨骼模型制作指南(3DMAX)](02-骨骼模型制作指南3DMAX.html)等相关文档。
通过专业的模型制作软件完成模型后导出为FBX格式然后再转换为《我的世界》中的模型格式JSON格式相应的方法请查阅[教学中心-编辑器基础-特效编辑器-入门教程01-模型导入与使用](../9-特效/1-模型导入与使用.md#导入fbx模型)。
在将骨骼模型转换为JSON格式后我们就可以准备在游戏内使用骨骼模型了。以离线文档中 **示例/6-4 资源制作/工具和示例/fbxRes/xuenv** 资源为例先在编辑器中导入这个模型然后按下面的步骤进行。实际上下面的1~3步目前编辑器已经自动完成了需要手动操作文件时可以参考。
## 1. 填入模型路径信息
`mod_resource/models/netease_models.json`里面填入模型的骨骼,网格及动作的文件路径(目前编辑器已经自动做好这一步了),如下图所示:
<img src="./picture/anim/reg4-1.png" alt="reg4-1" style="zoom: 80%;" />
**骨骼模型动画的命名最好使用英文单词/拼音/数字/下划线组成。**
## 2. 将资源放入对应目录
将skeleton、mesh、animation资源放入`mod_resource/models`下对应的文件夹:
![reg4-3](./picture/anim/reg4-3.png)
## 3. 指定贴图
mesh文件中会有指定material如下图所示
名称对应到`mod_resource/textures/models/xuenv.png`,所以需要在此位置放置贴图资源。
<img src="./picture/anim/reg4-4.png" alt="reg4-4" style="zoom: 80%;" />
## 4. 代码调用
采用component的结构来创建模型与控制动画播放
创建模型替换原有模型
```python
modelComp = self.CreateComponent(playerId, 'Minecraft', 'model')
# 'xuenv'即为netease_models.json里配置的骨骼模型名称
modelComp.SetModel('xuenv')
```
播放动画
```python
modelComp = self.GetComponent(playerId, 'Minecraft', 'model')
# 播放动画'prepare'第二个参数设置为True表示循环播放该动画接口详细信息可以查看modAPI接口文档
modelComp.PlayAnim('prepare', True)
```
## 5. 第一人称模型
上面部分完成了第三人称视角的骨骼模型显示及动画播放当我们想在游戏中切换到第一人称也有骨骼模型与动作时需要另外做一套骨骼模型和动作如下图的steve_fp并且使动作的名称与第三人称模型的动作一致。然后把他配置为第三人称模型的“arm_model”例如
<img src="./picture/anim/reg4-2.png" alt="reg4-2" style="zoom: 50%;" />
在上图中我们可以看到steve有骨骼模型动画这些属于第三人称视角的骨骼模型动画steve中的”arm_model”属性可关联第一人称视角的骨骼模型。配置第一人称视角骨骼模型之后当玩家切换到第一人称视角时如果手上无物品或者手上物品不显示则会显示第一人称骨骼模型即这里的“steve_fp”
当播放动作时第一人称视角模型的动作会跟随第三人称模型。例如给本地玩家替换steve模型后播放walk动作那么切换到第一人称视角时显示的steve_fp模型也会播放walk动作。
如果替换的第三人称骨骼模型没配置”arm_model”字段例如上述的”xuenv”模型则在第一人称视角下手上无物品或者手上物品不显示时不会显示任何模型。
## 6. 模型贴图序列帧动画
骨骼模型动画除了支持上述在animation文件夹下放置相应的json文件这一方式外也支持另一种只是单纯贴图变化的序列帧动画
<img src="./picture/frame_anim/xuenv_frames.gif" alt="xuenv_frames" style="zoom: 80%;" />
制作这种贴图序列帧动画需要两个步骤,我们以上述的雪女为例:
1) 用图片处理工具修改`mod_resource/textures/models/xuenv.png` 路径下的这张贴图:
根据动画需要的帧数横竖方向重复铺开此例中我们以6行5列总共30帧进行制作处理每一帧中贴图需要变化的部分序列帧播放的顺序由贴图的左上角先横再竖播放到贴图的右下角。
原图:
<img src="./picture/frame_anim/xuenv.png" alt="xuenv" style="zoom: 10%;" />
处理后:
<img src="./picture/frame_anim/xuenv_frames.png" alt="xuenv_frames" style="zoom: 20%;" />
2) 修改`mod_resource/models/netease_models.json`中雪女的json配置新增frame_anim字段
<img src="./picture/frame_anim/xuenv_json.png" alt="xuenv_json" style="zoom: 100%;" />
字段中各参数意义如下:
row: 贴图动画中分了多少行此例中6行5列即6行所以此处填6
col: 贴图动画中分了多少列此例中6行5列即5列所以此处填5
frames: 帧数此例中为30帧此数字不一定为row乘col的值允许贴图留有空白假如贴图右下角留了一帧的空白区域此处可填29
time: 动画总时长此例中为5秒代表5秒内播放完30帧然后开始循环
注意:
为了节省运行时的内存,建议资源制作时尽量秉持宽高最邻近二次幂数相乘最小原则。
所谓最邻近二次幂数即数字往上寻找最靠近自己的二次幂二次幂就是124816326412825651210242048等等。
比如一张贴图为200 * 200的分辨率200的最邻近二次幂数为256则加载入内存后即占用256 * 256的大小此处为了讲解方便简化了一些计算细节读者可简单理解为内存占用与宽高成正比。
在此例中我们雪女单帧的图片大小256 * 2566行5列排放后为1280 * 1536, 宽高最邻近二次幂数分别为2048和2048所以占用内存为2048 * 2048。
但假如我们调整一下用横4竖8的方式排放宽高即为1024 * 2048此方式最高可支持 4 * 8 = 32帧宽高最邻近二次幂数分别也为1024和2048占用内存即为1024 * 2048内存占用可降低到原来的一半
最后,在代码调用时无须添加额外代码即可生效:
```python
modelComp = self.CreateComponent(playerId, 'Minecraft', 'model')
# 'xuenv'即为netease_models.json里配置的骨骼模型名称
modelComp.SetModel('xuenv')
```

View File

@@ -0,0 +1,3 @@
# 原版模型的使用
##

View File

@@ -0,0 +1,87 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/model_face_config.25817915.png
hard: 入门
time: 15分钟
---
# 我的世界模型导出规范
推荐软件: 3dMax 2014
## 系统单位设置
![模型单位设置](./images/model_unit_config.png)
## 模型朝向
![模型朝向设置](./images/model_face_config.png)
## 贴图
只支持一张贴图,且贴图的名称必须为英文
## 顶点
每个长方体通常是 8 个,整个模型控制在 300 个顶点,特殊复杂模型可以在 1000 以内
## 输出检查
1. 属性中将模型设置为背面消隐查看模型是否有反面如果有的话需要反相flip
![check_notice_1](./images/check_notice_1.png)
![check_notice_2](./images/check_notice_2.png)
2. Reset Xform多点击几次然后塌陷
![check_notice_3](./images/check_notice_3.png)
3. Mesh Select与 4 一起,点击完后,不用操作,直接塌陷)
4. STL Check最终转化为 Poly 模型输出,此步骤可避免模型在游戏中显示出错
![check_notice_4](./images/check_notice_4.png)
## 蒙皮
1. 骨骼架设使用纯bone
2. 骨骼控制在20根以内最多不能超过50
3. 需要添加 rootupdown 3根骨骼
- root是质心的父级位移旋转都要归于坐标原点0.0
- up控制上半身质心的子级身体的父级
- down控制下半身质心的子级双脚的父级
4. 所有的骨骼都要有链接武器挂件坐骑等都要链接给相应的手质心等位子可使用link
5. 蒙皮选项当中的高级参数中,有个骨骼影响限制,需要调为 1如图所示
![coving](./images/notice_cover.png)
## 动作输出
1. 输出文件版本为 MAX2014
2. 输出文件命名为英文文件需要输出FBX。
3. 输出文件需要塌陷骨骼动画
4. rootupdown骨骼不可以有动画
5. 缩放动画必须用等比缩放,且不能有单轴向缩放
## FBX输出设置
输出设置如下图所示:
![fbx_output_1](./images/fbx_output_1.png)
![fbx_output_2](./images/fbx_output_2.png)
![fbx_output_3](./images/fbx_output_3.png)
## 注意事项
1. 模型制作中,避免使用镜像或者对称!
2. 如果模型出现法线问题将法线出错的位置选择并反相flip即可。
3. 模型当中不能有任何的中文!

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Some files were not shown because too many files have changed in this diff Show More