Files
netease-bedrock-wiki/mcguide/20-玩法开发/13-模组SDK编程/20-制作规范.md
2025-08-25 18:36:29 +08:00

93 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
front:
hard: 入门
time: 分钟
---
# 制作规范
## 命名
为了与我们开发的其他mod区分以及其他开发者的mod区分以免同时使用时发生冲突行为包与资源包文件夹的命名应该有足够的区分度。
使用studio创建的AddOn添加了随机字符串的后缀而如果开发者打算手动构造mod或者拷贝官方示例来创作mod这里给出一些命名建议
这里采用驼峰命名法,开发者也可以结合个人习惯采用下划线命名法。
1. Mod命名建议采用`[团队名称][Mod名称](Mod)`格式即以团队名称开头中间为mod的游戏内容或者具有辨析度的命名。
例如上一篇自定义方块mod的命名为“SDKTeamTest”
2. 行为包命名建议采用`[团队名称][Mod名称][BehaviorPack]`格式,以`BehaviorPack`结尾使该文件夹更具辨析度。
3. 行为包中的python脚本文件夹命名建议采用`[团队名称][Mod名称][Scripts]`
4. 资源包命名建议采用`[团队名称][Mod名称][ResourcePack]`格式。
简而言之在命名时带上团队名和游戏内容基本可以让该mod的命名独具一格了。
## 命名空间
### 什么是命名空间
在后续的学习过程中,我们经常会看到“命名空间”这一概念,例如在自定义物品,自定义方块等。
命名空间同样也是为了使我们的mod区分于其他的mod避免冲突。
原版数据包的命名空间为minecraft例如泥土的方块名为“minecraft:dirt”。
命名空间的建议为:`[团队名称][下划线][Mod名称]`
### 如何修改命名空间
我们选择上一篇新建的作品并打开编辑器→在顶部菜单找到作品→命名空间
![image-20200426095310453](./picture/brief_intro/31.png)
会看到编辑器帮我们随机生成了一个命名空间这个命名空间与我们自定义方块的json中的一致。
<img src="./picture/brief_intro/32.png" alt="image-20200426095812122" style="zoom:67%;" />
<img src="./picture/brief_intro/30.png" alt="image-20200426094538540" style="zoom:67%;" />
然后我们把它修改为“sdkteam_test”然后保存。再次打开自定义方块的json发现命名空间已经修改。
<img src="./picture/brief_intro/33.png" alt="image-20200426100057925" style="zoom:67%;" />
## manifest.json
在旧版的MCStudio创建的AddOn里又叫pack_manifest.json其实是一样的东西。
这个文件包含了mod的标识符uuid版本号version等关键信息。通过studio来创建的AddOn都会自动生成这个文件如果开发者想要手动创建这个文件可以参考[官方wiki](https://zh.minecraft.wiki/w/教程/制作资源附加包#.E5.88.9B.E5.BB.BA.E4.B8.80.E4.B8.AA.E8.B5.84.E6.BA.90.E9.99.84.E5.8A.A0.E5.8C.85)。
这个文件里一般有两个uuid字段。这两个字段一旦生成后续请勿修改。
里面的两个version是mod的版本玩家之间联机时会检查本地的mod是否与房主相同。因此<font color="red">发布新版本时,记得提升这两个版本号</font>例如把最后一位加一否则可能导致拥有新旧mod的玩家互相联机出现bug。
如果开发者通过拷贝官方示例的基础上来创作mod记得修改uuid
<img src="./picture/brief_intro/29.png" alt="image-20200425224437867" style="zoom:50%;" />
除了手动修改也可以在启动器选择作品→更多菜单→配置在此进行版本号升级和UUID的更换。
<img src="./picture/brief_intro/37.png" alt="image-20200425224437867" style="zoom:100%;" />
## entities与textures文件夹
虽然在上面的文件结构已经提到过但这里再说一遍。我的世界中国版要求行为包中必须有entities文件夹资源包中必须有textures文件夹。通过studio来创建的AddOn会自带这两个文件夹如果开发者通过手动创建目录的话这点需要注意。
## 图片资源
### 图像模式
mc目前不支持灰度模式的贴图请统一使用RGB模式
![image-20200803172023312](./picture/brief_intro/36.png)
### 通道数
皮肤的贴图只允许使用32位四通道贴图需要包含alpha通道。mod中使用的贴图没有该限制。
### 内存规范
图片资源主要有UI模型贴图特效贴图。图片资源加载后占用总内存不能超过100M。图片资源占用内存的计算方法以分辨率(1024 x 1024)的32位png图片为例1024 x 1024 x 32 / 8 = 4194304Bytes = 4M
可参考:[图片在内存中的占用的空间大小](https://blog.csdn.net/w1144054497/article/details/50903285)