同步官网文档8m_25d

This commit is contained in:
kwiilh
2025-08-25 18:36:29 +08:00
parent 4dc0ecf18d
commit 9e8855eeb4
5089 changed files with 8798 additions and 4799 deletions

View File

@@ -1,90 +1,108 @@
---
front: 进阶
time: 15分钟
---[2-地图编辑器使用说明.md](../../14-%E5%9C%B0%E5%9B%BE%E5%88%B6%E4%BD%9C/2-%E5%9C%B0%E5%9B%BE%E7%BC%96%E8%BE%91%E5%99%A8%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md)
---
# 模型规范指南
## 前言
在当前模组开发实践中,部分开发者所采用的 Blockbench.
在当前模组开发实践中,部分开发者所采用的 Blockbench模型与官方标准模型存在差异。
模型与官方标准模型存在差异,因此换了BlockBench模型的Mod会导致官方皮肤时出现贴图错位、模型消失等兼容性问题影响了玩家的视觉体验.
因此我们现已开放官方模型规范开发者们请参考并遵循。新作品通过规范指南进行UV、动画等的制作已有作品则可以通过API判断是否需要修改Blockbench
模型,确保模组能够与官方皮肤良好配合,为玩家带来更加一致、流畅的游戏体验
因此换了BlockBench模型的Mod会导致官方皮肤时出现贴图错位、模型消失等兼容性问题影响了玩家的视觉体验
现已开放官方模型规范开发者们请参考并遵循。新作品通过规范指南进行UV、动画等的制作。已有作品则可以通过SDK判断是否需要修改Blockbench模型确保模组能够与官方皮肤良好配合为玩家带来更加一致、流畅的游戏体验判断是否需要修改Blockbench模型,确保模组能够与官方皮肤良好配合,为玩家带来更加一致、流畅的游戏体验
## 模型模板下载
当前官方提供的“多关节”结构Blockbench模型已经能满足大部分的模组开发者请开发者下载[官方规范player模型文件](https://g79.gdl.netease.com/official_steve_model.zip)
## 兼容分类
根据模组与官方皮肤的兼容程度,分为:
1. **完全兼容**未更换bb模型。表现为皮肤模型贴图以及穿戴外观模组动画等表现都正常。
2. **部分兼容**更换了bb模型但按照官方规范制作。表现为皮肤挂件以及穿戴外观正常但是模型样式改变及贴图错乱。
3. **不兼容**更换了bb模型且未按照官方规范制作。表现为模型样式改变皮肤挂件错乱穿戴外观错乱以及动作异常。
## 规范概要
1. 玩法模组非必要不改bb模型
2. 动作优化类模组:`人形角色非必要不修改bb结构即无需使用AddPlayerGeometry的Api`
* 未增加关节:仅增加和优化动画的 不替换bb模型属于“完全兼容”
* 增加关节:
- 中高级别多关节官方皮肤:不替换模型与贴图,动画按照官方骨骼层级制作进而保证皮肤表现正常(属于“完全兼容”)
- 其他官方皮肤可根据各模组对动画的修改程度选择是否替换bb模型。如果选择替换bb模型则需按官方规范制作属于“部分兼容”
3. 人形角色涉及“动作优化”等必须修改bb模型的遵守以下规范即可可参考 官方人物模型.json 模板)
4. 不建议直接修改 player.entity.json 和 player.render_controllers.json如果改了请务必在官方的规范下进行拓展
1. 玩法模组非必要不改bb模型如需修改bb模型需遵循动作优化类模组规范
2. 动作优化类模组:
- 人形角色非必要不修改bb结构即无需使用AddPlayerGeometry的Api
- 如需修改修改bb结构则应该按以下优先级进行美术制作
- 不修改玩家模型为多关节
- **按规范**修改四肢为多关节模型但是不修改Body为多关节模型
- **按规范**砍四肢与body为多关节模型
- **按规范**命名骨骼/层级,但是玩家骨骼层级随意修改 *(极不推荐)*
3. SDK使用
- 开发者可以结合以下Mod SDK判断是否需要更换模型
- 建议穿戴史诗及以上多关节官方4d皮肤在模组对皮肤兼容度较差的前提下不进行玩家模型修改
- 其余情况开发者也可以使用接口判断更换模型的必要性
- [IsOfficialSkin](../../../mcdocs/1-ModAPI-beta/接口/玩家/属性.md#isofficialskin) —— 获取玩家穿戴的皮肤是否为官方4d皮肤
- [IsHighLevelOfficialSkin](../../../mcdocs/1-ModAPI-beta/接口/玩家/属性.md#ishighlevelofficialskin) —— 获取玩家穿戴的皮肤是否为史诗及以上的官方4d皮肤
- [IsHighLevelMultiJointOfficialSkin](../../../mcdocs/1-ModAPI-beta/接口/玩家/属性.md#ishighlevelmultijointofficialskin) —— 获取玩家穿戴的皮肤是否为史诗及以上的多关节官方4d皮肤
4. 动画制作人形角色必须修改bb模型的建议使用官方模型并用其进行动画制作
5. 其他:不建议直接修改 player.entity.json 和 player.render_controllers.json如果改了请务必在官方的规范下进行拓展
## 美术制作规范
## 多关节美术制作参考
### 必要骨骼
1. 常规骨骼常作为挂件的挂点
> root, waist, body, leftArm, leftArmDown, rightArm, rightArmDown, head, bodyDown, leftLeg, leftLegDown, rightLeg, rightLegDown, rightLeg, cape
1. 常规骨骼常作为挂件的挂点
- root, waist, body, leftArm, **leftArmDown**, rightArm, **rightArmDown**, head, **bodyDown**, leftLeg, **leftLegDown**, rightLeg, **rightLegDown**, rightLeg, cape
2. 会员盔甲挂点:
> hat, jacket, jacketDown, leftSleeve, leftSleeveDown, rightSleeve, rightSleeveDown, leftPants, leftPantsDown, rightPants, rightPantsDown
- hat, jacket, **jacketDown**, leftSleeve, leftSleeveDown, rightSleeve, **rightSleeveDown**, leftPants, **leftPantsDown**, rightPants, **rightPantsDown**
**【注意】**
共计26个骨骼开发者请不要随意删除
必要骨骼中,红色字体的骨骼为相比原版Steve新增的关节
* 共计26个骨骼开发者请不要随意删除
* 必要骨骼中,加粗字体的骨骼为相比原版Steve新增的关节
### 骨骼层级一览
| 节点名称 | 枢纽点 | 备注 |
|---------------------------|----------------| --- |
| root | (0,0,0) | |
| —waist | (0, 12, 0) | |
| ——body | (0, 24, 0) | |
| ———head | (0, 24, 0) | |
| —————hat | (0, 24, 0) | |
| ———cape | (0, 24, 3) | |
| ———leftArm | (-5, 22, 0) | |
| **—————leftArmDown** | (-5, 18, 0) | 新增必要骨骼 |
| **———————leftSleeveDown** | (-5, 18.25, 0) | 新增盔甲骨骼 |
| ———————leftItem | (-6, 15, 0) | |
| —————leftSleeve | (-5, 22, 0) | |
| ———rightArm | (5, 22, 0) | |
| **—————rightArmDown** | (5, 18, 0) | 新增必要骨骼 |
| **———————rightSleeveDown** | (5, 18.25, 0) | 新增盔甲骨骼 |
| ———————rightItem | (6, 15, 0) | |
| —————rightSleeve | (5, 22, 0) | |
| ———jacket | (0, 24, 0) | |
| **——bodyDown** | (0, 16, 0) | 新增必要骨骼 |
| **———jacketDown** | (0, 16.25, 0) | 新增盔甲骨骼 |
| —leftLeg | (-1.9, 12, 0) | |
| ——leftPants | (-1.9, 12, 0) | |
| **——leftLegDown** | (-1.9, 6, 0) | 新增必要骨骼 |
| **————leftPantsDown** | (-1.9, 6.25, 0) | 新增盔甲骨骼 |
| —rightLeg | (1.9, 12, 0) | |
| ——rightPants | (1.9, 12, 0) | |
| **——rightLegDown** | (1.9, 6, 0) | 新增必要骨骼 |
| **————rightPantsDown** | (1.9, 6.25, 0) | 新增盔甲骨骼 |
| 节点名称 | | 枢轴点 | 备注 |
|---------------------------|---|----------------| --- |
| root | | (0,0,0) | |
| —waist | | (0, 12, 0) | |
| ——body | | (0, 24, 0) | |
| ———head | | (0, 24, 0) | |
| —————hat | | (0, 24, 0) | |
| ———cape | | (0, 24, 3) | |
| ———leftArm | | (-5, 22, 0) | |
| **—————leftArmDown** | | (-5, 18, 0) | 新增必要骨骼 |
| **———————leftSleeveDown** | | (-5, 18.25, 0) | 新增盔甲骨骼 |
| ———————leftItem | | (-6, 15, 1) | |
| —————leftSleeve | | (-5, 22, 0) | |
| ———rightArm | | (5, 22, 0) | |
| **—————rightArmDown** | | (5, 18, 0) | 新增必要骨骼 |
| **———————rightSleeveDown** | | (5, 18.25, 0) | 新增盔甲骨骼 |
| ———————rightItem | | (6, 15, 1) | |
| —————rightSleeve | | (5, 22, 0) | |
| ———jacket | | (0, 24, 0) | |
| **——bodyDown** | | (0, 16, 0) | 新增必要骨骼 |
| **———jacketDown** | | (0, 16.25, 0) | 新增盔甲骨骼 |
| —leftLeg | | (-1.9, 12, 0) | |
| ——leftPants | | (-1.9, 12, 0) | |
| **——leftLegDown** | | (-1.9, 6, 0) | 新增必要骨骼 |
| **————leftPantsDown** | | (-1.9, 6.25, 0) | 新增盔甲骨骼 |
| —rightLeg | | (1.9, 12, 0) | |
| ——rightPants | | (1.9, 12, 0) | |
| **——rightLegDown** | | (1.9, 6, 0) | 新增必要骨骼 |
| **————rightPantsDown** | | (1.9, 6.25, 0) | 新增盔甲骨骼 |
**【注意】**
* 骨骼层级:影响官方动画兼容
* 骨骼命名:影响官方挂件兼容
* 枢轴点影响。比如body枢轴点24非16的原因是考虑原生鞘翅和胸甲的绑定位置
### 骨骼层级说明
* body 和 bodyDown 层级并列
* 新增的切分关节
- 5个骨骼节点`leftArmDown, rightArmDown, bodyDown, leftLegDown, rightLegDown `
- 5个骨骼节点`jacketDown, leftSleeveDown, rightSleeveDown, leftPantsDown, [12-动作优化规范.md](12-%E5%8A%A8%E4%BD%9C%E4%BC%98%E5%8C%96%E8%A7%84%E8%8C%83.md)rightPantsDown`
- 5个骨骼节点`jacketDown, leftSleeveDown, rightSleeveDown, leftPantsDown, rightPantsDown`
### UV贴图制作
如下图所示需要按照Steve规范进行制作
@@ -126,18 +144,7 @@ def onUpdatePlayerSkinClient(self,args):
comp.IsHighLevelMultiJointOfficialSkin(args['playerId']) # 返回bool为官方史诗级以上的多关节皮肤
```
### 模型模板下载
当前官方提供的“多关节”结构已经能满足大部分的模组开发者,请开发者下载官方规范模型文件
[standard_steve.geo.json](./resources/standard_steve.geo.json)
[standard_steve.png](./resources/standard_steve.png)
### 测试服测试
为方便开发者测试4D皮肤与模组本身的兼容性官方在开发者测试服提供了测试用4D皮肤可通过邮件领取