Compare commits
33 Commits
Issue_sdk
...
ec2c7f60b9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec2c7f60b9 | ||
|
|
439216893d | ||
|
|
074cf234bd | ||
|
|
64282118f6 | ||
|
|
688a85ffff | ||
|
|
521e187767 | ||
|
|
d458ef7ec7 | ||
|
|
77bdd38c05 | ||
|
|
0f012cde17 | ||
|
|
58189c3d48 | ||
|
|
d778ffb81c | ||
|
|
e74c284815 | ||
|
|
8c8ae31c08 | ||
|
|
31dea08de7 | ||
|
|
c51b5bb73c | ||
|
|
da08f15ac2 | ||
|
|
a510d13f2b | ||
|
|
5ee48218b8 | ||
|
|
3a2cf90fa9 | ||
|
|
667aa53bc5 | ||
|
|
7797f0e939 | ||
|
|
93e56894f7 | ||
|
|
719cee30f0 | ||
|
|
4ac57df199 | ||
|
|
bf866fd56e | ||
|
|
915e1dcf98 | ||
|
|
7d7a7fbfa3 | ||
|
|
99128414ab | ||
|
|
f8027b4b19 | ||
|
|
bcde4dc33a | ||
|
|
5f219a7e26 | ||
|
|
dd3d05715c | ||
|
|
680b621604 |
39
.all-contributorsrc
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"projectName": "netease-bedrock-wiki",
|
||||
"projectOwner": "MCNeteaseDevs",
|
||||
"files": [
|
||||
"README.md"
|
||||
],
|
||||
"commitType": "docs",
|
||||
"commitConvention": "angular",
|
||||
"contributorsPerLine": 7,
|
||||
"contributors": [
|
||||
{
|
||||
"login": "MCNeteaseDevs",
|
||||
"name": "MCNeteaseDevs",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/186891705?v=4",
|
||||
"profile": "https://github.com/MCNeteaseDevs",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "sevenstars0",
|
||||
"name": "sevenstars",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/148792757?v=4",
|
||||
"profile": "https://github.com/sevenstars0",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "LiangJi23333",
|
||||
"name": "LiangJi23333",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/102958768?v=4",
|
||||
"profile": "https://github.com/LiangJi23333",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
18
.github/ISSUE_TEMPLATE/issue-template-sdk.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: SDK修改
|
||||
name: SDK文档修改
|
||||
description: 一条SDK修改对应一条Issue,可以修改参数描述、接口备注等
|
||||
title: "[sdk] "
|
||||
labels: [sdk]
|
||||
@@ -6,8 +6,8 @@ body:
|
||||
- type: textarea
|
||||
id: sdk_name
|
||||
attributes:
|
||||
label: 接口名称
|
||||
description: 请填写接口的名称
|
||||
label: 接口名称/链接
|
||||
description: 请填写接口的名称或链接
|
||||
placeholder: |
|
||||
例如: CreateUI
|
||||
validations:
|
||||
@@ -16,8 +16,8 @@ body:
|
||||
- type: dropdown
|
||||
id: sdk_type
|
||||
attributes:
|
||||
label: 选择接口类型
|
||||
description:
|
||||
label: 接口类型
|
||||
description: 接口的类型
|
||||
options:
|
||||
- 服务端
|
||||
- 客户端
|
||||
@@ -47,3 +47,11 @@ body:
|
||||
description: 如有其他补充信息请填写在这里
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: developer_info
|
||||
attributes:
|
||||
label: 开发者名称/联系方式
|
||||
description: 请填写您的开发者名称或联系方式(QQ),将会用于奖励发放等
|
||||
validations:
|
||||
required: false
|
||||
|
||||
37
README.md
@@ -18,6 +18,22 @@
|
||||
|
||||
## 贡献指南
|
||||
|
||||
**开发指南/教学课程文档**与**Mod SDK文档**修改流程不一致,接下来将会分别介绍
|
||||
|
||||
### Mod SDK文档修改
|
||||
1. 点击仓库中**Issues** - 点击**New Issue** - 选择**SDK文档修改**
|
||||
|
||||
2. 按照模版依次填写以下内容:
|
||||
- 标题:为了方便其他开发者查找相同修改,请写明**接口名称与修改部分**。例如:StopCustomMusicById添加备注
|
||||
- 接口名称:填写需要修改的接口名称或链接
|
||||
- 接口类型:选择接口的类型,共有服务端、客户端、双端三种选项
|
||||
- 修改内容:详细描述修改的接口文档内容
|
||||
- 其他补充信息:如有其他信息可以补充在这里
|
||||
- 开发者信息:将会用于贡献致谢展示与奖品发放
|
||||
|
||||
3. 完成后点击Create。修改内容会由官方进行审核,审核通过后会在**两周之内**同步至官网
|
||||
|
||||
### 开发指南/教学课程修改
|
||||
1. Fork 本项目。点击 Fork 按钮,创建一个新的派生项目到自己的工作区(Create a new fork)
|
||||
|
||||
2. 克隆派生
|
||||
@@ -61,3 +77,24 @@ git push --set-upstream origin your-branch-name
|
||||
|
||||
|
||||
|
||||
## 致谢
|
||||
|
||||
在此感谢以下开发者作出的贡献(以下排名不分先后)
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MCNeteaseDevs"><img src="https://avatars.githubusercontent.com/u/186891705?v=4?s=100" width="100px;" alt="MCNeteaseDevs"/><br /><sub><b>MCNeteaseDevs</b></sub></a><br /><a href="#doc-MCNeteaseDevs" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sevenstars0"><img src="https://avatars.githubusercontent.com/u/148792757?v=4?s=100" width="100px;" alt="sevenstars"/><br /><sub><b>sevenstars</b></sub></a><br /><a href="#doc-sevenstars0" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/LiangJi23333"><img src="https://avatars.githubusercontent.com/u/102958768?v=4?s=100" width="100px;" alt="LiangJi23333"/><br /><sub><b>LiangJi23333</b></sub></a><br /><a href="#doc-LiangJi23333" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
@@ -44,6 +44,7 @@ selection: true
|
||||
- 建议穿戴史诗及以上多关节官方4d皮肤,在模组对皮肤兼容度较差的前提下,不进行玩家模型修改
|
||||
- 其余情况开发者也可以使用接口判断更换模型的必要性
|
||||
- [IsOfficialSkin](../../../mcdocs/1-ModAPI/接口/玩家/属性.md#isofficialskin) —— 获取玩家穿戴的皮肤是否为官方4d皮肤
|
||||
- [IsMultiJointOfficialSkin](../../../mcdocs/1-ModAPI/接口/玩家/属性.md#ismultijointofficialskin) —— 获取玩家穿戴的皮肤是否为多关节官方4d皮肤
|
||||
- [IsHighLevelOfficialSkin](../../../mcdocs/1-ModAPI/接口/玩家/属性.md#ishighlevelofficialskin) —— 获取玩家穿戴的皮肤是否为史诗及以上的官方4d皮肤
|
||||
- [IsHighLevelMultiJointOfficialSkin](../../../mcdocs/1-ModAPI/接口/玩家/属性.md#ishighlevelmultijointofficialskin) —— 获取玩家穿戴的皮肤是否为史诗及以上的多关节官方4d皮肤
|
||||
4. 动画制作:人形角色,必须修改bb模型的,建议使用官方模型并用其进行动画制作
|
||||
@@ -156,7 +157,11 @@ def onUpdatePlayerSkinClient(self,args):
|
||||
|
||||
为方便开发者测试4D皮肤与模组本身的兼容性,官方在**开发者测试服(手机自测)**提供了测试用4D皮肤,可通过邮件领取
|
||||
|
||||
**注意:** 请各位开发者更新到3.5测试服,3.4该测试皮肤不会生效
|
||||
**注意:**
|
||||
|
||||
- 请各位开发者更新到3.5测试服,3.4该测试皮肤不会生效
|
||||
|
||||
- 自3.7版本之后,渲染龙包体无法使用4D皮肤。开发者请勿在游戏内视频设置中切换为渲染龙,这将导致断言报错
|
||||
|
||||
#### MC Studio
|
||||
|
||||
|
||||
@@ -1759,6 +1759,8 @@ PC和IOS平台没有这个问题
|
||||
|
||||
而对于scrolling_content的绝对路径,一共有以下两种,可以通过UI-API<a href="../../mcdocs/1-ModAPI/接口/自定义UI/UI界面.html#getallchildrenpath">GetAllChildrenPath</a>清楚的看到。
|
||||
|
||||
#### 特别注意
|
||||
|
||||
```python
|
||||
scroll_view_path = "/scroll_view0"
|
||||
touch_path = scroll_view_path + "/scroll_touch/scroll_view/panel/background_and_viewport/scrolling_view_port/scrolling_content"
|
||||
|
||||
257
mcguide/20-玩法开发/13-模组SDK编程/2-Python脚本开发/103-3.7版本物品id变更.md
Normal file
@@ -0,0 +1,257 @@
|
||||
# 3.7版本物品id变更
|
||||
|
||||
## 简介
|
||||
|
||||
微软在1.21.50继续修改了部分方块ID,取消了附加值,相关链接请参阅[基岩版扁平化](https://zh.minecraft.wiki/w/%E5%AE%98%E6%96%B9%E9%A1%B5%E9%9D%A2/%E5%9F%BA%E5%B2%A9%E7%89%88%E6%89%81%E5%B9%B3%E5%8C%96),请开发者注意适配。
|
||||
|
||||
## 处理方法
|
||||
|
||||
在ModSDK的接口与事件中,我们针对上述情况做了以下处理:
|
||||
|
||||
1. 对于返回物品信息字典的接口与事件:
|
||||
|
||||
newItemName及newAuxValue返回新版名称与附加值。
|
||||
|
||||
原字段itemName及auxValue返回旧版名称与附加值。
|
||||
|
||||
2. 对于接受物品信息字典的接口与事件:
|
||||
|
||||
当字典存在newItemName及newAuxValue时,使用这两个字段。
|
||||
|
||||
不存在时,使用旧字段itemName及auxValue。
|
||||
|
||||
## 注意事项
|
||||
|
||||
* 通过附加值获取获取方块状态接口没有做兼容,例如GetBlockAuxValueFromStates、GetBlockStatesFromAuxValue、GetBlockStates、SetBlockStates,如果您的组件对此有依赖,则需要对这次的改动自行做兼容处理。
|
||||
|
||||
* **开发完成或正在开发的组件,建议统一采用newItemName及newAuxValue字段,也不要新旧字段混用。**
|
||||
|
||||
* 某些写法可能会失效,例如
|
||||
|
||||
```python
|
||||
# 获取itemDict,然后在他基础上修改itemName或auxValue后再用来生成
|
||||
itemdict = GetPlayerItem()
|
||||
itemdict['itemName'] = 'xxx'
|
||||
itemdict['auxValue'] = itemdict['auxValue']+1
|
||||
SpawnItemToPlayerInv(itemdict)
|
||||
```
|
||||
|
||||
因为GetPlayerItem返回的itemDict含有新字段,再传入SpawnItemToPlayerInv时,会读取新字段生成物品,因此对原字段的修改无效。
|
||||
|
||||
## 版本变更方块数据
|
||||
|
||||
以下为3.7版本变更了id、名称等的物品列表,表格内的名称省略了minecraft命名空间。
|
||||
|
||||
## 统计信息
|
||||
|
||||
- 变更项数量: 89
|
||||
- 仅名称变更: 12
|
||||
- 新增项数量: 69
|
||||
- 移除项数量: 17
|
||||
|
||||
### 变更项
|
||||
|
||||
| 新中文名 | 旧中文名 | 旧命名 | 旧附加值 | 新命名 | 新附加值 |
|
||||
| :------ | ------ | ------ | ------ | ------ | ------ |
|
||||
| 蒲公英 | 蒲公英 | yellow_flower | 0 | dandelion | 0
|
||||
| 虫蚀石头 | 虫蚀石头 | monster_egg | 0 | infested_stone | 0
|
||||
| 石砖 | 石砖 | stonebrick | 0 | stone_bricks | 0
|
||||
| 蘑菇柄 | 蘑菇柄 | brown_mushroom_block | 15 | mushroom_stem | 0
|
||||
| 双红砂岩台阶 | 红砂岩双层台阶 | double_stone_block_slab2 | 0 | red_sandstone_double_slab | 0
|
||||
| 红砂岩台阶 | 红砂岩台阶 | stone_block_slab2 | 0 | red_sandstone_slab | 0
|
||||
| 末地石砖台阶 | 末地石砖台阶 | stone_block_slab3 | 0 | end_stone_brick_slab | 0
|
||||
| 苔石砖台阶 | 苔石砖台阶 | stone_block_slab4 | 0 | mossy_stone_brick_slab | 0
|
||||
| 光源方块-亮度0 | 光源方块 | light_block | 0 | light_block_0 | 0
|
||||
| 虫蚀圆石 | 虫蚀圆石 | monster_egg | 1 | infested_cobblestone | 0
|
||||
| 虫蚀石砖 | 虫蚀石砖 | monster_egg | 2 | infested_stone_bricks | 0
|
||||
| 虫蚀苔石砖 | 虫蚀苔石砖 | monster_egg | 3 | infested_mossy_stone_bricks | 0
|
||||
| 虫蚀裂纹石砖 | 虫蚀裂纹石砖 | monster_egg | 4 | infested_cracked_stone_bricks | 0
|
||||
| 虫蚀雕纹石砖 | 虫蚀雕纹石砖 | monster_egg | 5 | infested_chiseled_stone_bricks | 0
|
||||
| 苔石砖 | 苔石砖 | stonebrick | 1 | mossy_stone_bricks | 0
|
||||
| 裂纹石砖 | 裂纹石砖 | stonebrick | 2 | cracked_stone_bricks | 0
|
||||
| 雕纹石砖 | 雕纹石砖 | stonebrick | 3 | chiseled_stone_bricks | 0
|
||||
| 双砂岩台阶 | 砂岩双层台阶 | double_stone_block_slab | 1 | sandstone_double_slab | 0
|
||||
| 双圆石台阶 | 圆石双层台阶 | double_stone_block_slab | 3 | cobblestone_double_slab | 0
|
||||
| 双红砖台阶 | 红砖双层台阶 | double_stone_block_slab | 4 | brick_double_slab | 0
|
||||
| 双石砖台阶 | 石砖双层台阶 | double_stone_block_slab | 5 | stone_brick_double_slab | 0
|
||||
| 双石英台阶 | 石英双层台阶 | double_stone_block_slab | 6 | quartz_double_slab | 0
|
||||
| 双下界砖台阶 | 下界砖双层台阶 | double_stone_block_slab | 7 | nether_brick_double_slab | 0
|
||||
| 紫珀台阶 | 紫珀台阶 | stone_block_slab2 | 1 | purpur_slab | 0
|
||||
| 海晶石台阶 | 海晶石台阶 | stone_block_slab2 | 2 | prismarine_slab | 0
|
||||
| 暗海晶石台阶 | 暗海晶石台阶 | stone_block_slab2 | 3 | dark_prismarine_slab | 0
|
||||
| 海晶石砖台阶 | 海晶石砖台阶 | stone_block_slab2 | 4 | prismarine_brick_slab | 0
|
||||
| 苔石台阶 | 苔石台阶 | stone_block_slab2 | 5 | mossy_cobblestone_slab | 0
|
||||
| 平滑砂岩台阶 | 平滑砂岩台阶 | stone_block_slab2 | 6 | smooth_sandstone_slab | 0
|
||||
| 红色下界砖台阶 | 红色下界砖台阶 | stone_block_slab2 | 7 | red_nether_brick_slab | 0
|
||||
| 平滑红砂岩台阶 | 平滑红砂岩台阶 | stone_block_slab3 | 1 | smooth_red_sandstone_slab | 0
|
||||
| 磨制安山岩台阶 | 磨制安山岩台阶 | stone_block_slab3 | 2 | polished_andesite_slab | 0
|
||||
| 安山岩台阶 | 安山岩台阶 | stone_block_slab3 | 3 | andesite_slab | 0
|
||||
| 闪长岩台阶 | 闪长岩台阶 | stone_block_slab3 | 4 | diorite_slab | 0
|
||||
| 磨制闪长岩台阶 | 磨制闪长岩台阶 | stone_block_slab3 | 5 | polished_diorite_slab | 0
|
||||
| 花岗岩台阶 | 花岗岩台阶 | stone_block_slab3 | 6 | granite_slab | 0
|
||||
| 磨制花岗岩台阶 | 磨制花岗岩台阶 | stone_block_slab3 | 7 | polished_granite_slab | 0
|
||||
| 平滑石英台阶 | 平滑石英台阶 | stone_block_slab4 | 1 | smooth_quartz_slab | 0
|
||||
| 石头台阶 | 石头台阶 | stone_block_slab4 | 2 | normal_stone_slab | 0
|
||||
| 切制砂岩台阶 | 切制砂岩台阶 | stone_block_slab4 | 3 | cut_sandstone_slab | 0
|
||||
| 切制红砂岩台阶 | 切制红砂岩台阶 | stone_block_slab4 | 4 | cut_red_sandstone_slab | 0
|
||||
| 双石化橡木台阶 | 石化橡木双层台阶 | double_stone_block_slab | 2 | petrified_oak_double_slab | 0
|
||||
| 双紫珀台阶 | 双紫珀台阶 | double_stone_block_slab2 | 1 | purpur_double_slab | 0
|
||||
| 双海晶石台阶 | 双海晶石台阶 | double_stone_block_slab2 | 2 | prismarine_double_slab | 0
|
||||
| 双暗海晶石台阶 | 双暗海晶石台阶 | double_stone_block_slab2 | 3 | dark_prismarine_double_slab | 0
|
||||
| 双海晶石砖台阶 | 双海晶石砖台阶 | double_stone_block_slab2 | 4 | prismarine_brick_double_slab | 0
|
||||
| 双苔石台阶 | 双苔石台阶 | double_stone_block_slab2 | 5 | mossy_cobblestone_double_slab | 0
|
||||
| 双平滑砂岩台阶 | 双平滑砂岩台阶 | double_stone_block_slab2 | 6 | smooth_sandstone_double_slab | 0
|
||||
| 双红色下界砖台阶 | 双红色下界砖台阶 | double_stone_block_slab2 | 7 | red_nether_brick_double_slab | 0
|
||||
| 双平滑红砂岩台阶 | 双平滑红砂岩台阶 | double_stone_block_slab3 | 1 | smooth_red_sandstone_double_slab | 0
|
||||
| 双磨制安山岩台阶 | 双磨制安山岩台阶 | double_stone_block_slab3 | 2 | polished_andesite_double_slab | 0
|
||||
| 双安山岩台阶 | 双安山岩台阶 | double_stone_block_slab3 | 3 | andesite_double_slab | 0
|
||||
| 双闪长岩台阶 | 双闪长岩台阶 | double_stone_block_slab3 | 4 | diorite_double_slab | 0
|
||||
| 双磨制闪长岩台阶 | 双磨制闪长岩台阶 | double_stone_block_slab3 | 5 | polished_diorite_double_slab | 0
|
||||
| 双花岗岩台阶 | 双花岗岩台阶 | double_stone_block_slab3 | 6 | granite_double_slab | 0
|
||||
| 双磨制花岗岩台阶 | 双磨制花岗岩台阶 | double_stone_block_slab3 | 7 | polished_granite_double_slab | 0
|
||||
| 双平滑石英台阶 | 双平滑石英台阶 | double_stone_block_slab4 | 1 | smooth_quartz_double_slab | 0
|
||||
| 双石台阶 | 双石台阶 | double_stone_block_slab4 | 2 | normal_stone_double_slab | 0
|
||||
| 双切制砂岩台阶 | 双切制砂岩台阶 | double_stone_block_slab4 | 3 | cut_sandstone_double_slab | 0
|
||||
| 双切制红砂岩台阶 | 双切制红砂岩台阶 | double_stone_block_slab4 | 4 | cut_red_sandstone_double_slab | 0
|
||||
| 雕纹砂岩 | 雕纹砂岩 | sandstone | 1 | chiseled_sandstone | 0
|
||||
| 切制砂岩 | 切制砂岩 | sandstone | 2 | cut_sandstone | 0
|
||||
| 平滑砂岩 | 平滑砂岩 | sandstone | 3 | smooth_sandstone | 0
|
||||
| 暗海晶石 | 暗海晶石 | prismarine | 1 | dark_prismarine | 0
|
||||
| 海晶石砖 | 海晶石砖 | prismarine | 2 | prismarine_bricks | 0
|
||||
| 红沙 | 红沙 | sand | 1 | red_sand | 0
|
||||
| 雕纹石英块 | 雕纹石英块 | quartz_block | 1 | chiseled_quartz_block | 0
|
||||
| 石英柱 | 石英柱 | quartz_block | 2 | quartz_pillar | 0
|
||||
| 平滑石英块 | 平滑石英块 | quartz_block | 3 | smooth_quartz | 0
|
||||
| 雕纹红砂岩 | 雕纹红砂岩 | red_sandstone | 1 | chiseled_red_sandstone | 0
|
||||
| 切制红砂岩 | 切制红砂岩 | red_sandstone | 2 | cut_red_sandstone | 0
|
||||
| 平滑红砂岩 | 平滑红砂岩 | red_sandstone | 3 | smooth_red_sandstone | 0
|
||||
| 开裂的铁砧 | 开裂的铁砧 | anvil | 4 | chipped_anvil | 0
|
||||
| 损坏的铁砧 | 损坏的铁砧 | anvil | 8 | damaged_anvil | 0
|
||||
| 砂土 | 砂土 | dirt | 1 | coarse_dirt | 0
|
||||
| 苔石墙 | 苔石墙 | cobblestone_wall | 1 | mossy_cobblestone_wall | 0
|
||||
| 花岗岩墙 | 花岗岩墙 | cobblestone_wall | 2 | granite_wall | 0
|
||||
| 闪长岩墙 | 闪长岩墙 | cobblestone_wall | 3 | diorite_wall | 0
|
||||
| 安山岩墙 | 安山岩墙 | cobblestone_wall | 4 | andesite_wall | 0
|
||||
| 砂岩墙 | 砂岩墙 | cobblestone_wall | 5 | sandstone_wall | 0
|
||||
| 红砖墙 | 红砖墙 | cobblestone_wall | 6 | brick_wall | 0
|
||||
| 石砖墙 | 石砖墙 | cobblestone_wall | 7 | stone_brick_wall | 0
|
||||
| 苔石砖墙 | 苔石砖墙 | cobblestone_wall | 8 | mossy_stone_brick_wall | 0
|
||||
| 下界砖墙 | 下界砖墙 | cobblestone_wall | 9 | nether_brick_wall | 0
|
||||
| 末地石砖墙 | 末地石砖墙 | cobblestone_wall | 10 | end_stone_brick_wall | 0
|
||||
| 海晶石墙 | 海晶石墙 | cobblestone_wall | 11 | prismarine_wall | 0
|
||||
| 红砂岩墙 | 红砂岩墙 | cobblestone_wall | 12 | red_sandstone_wall | 0
|
||||
| 红色下界砖墙 | 红色下界砖墙 | cobblestone_wall | 13 | red_nether_brick_wall | 0
|
||||
| 湿海绵 | 湿海绵 | sponge | 1 | wet_sponge | 0
|
||||
|
||||
### 仅名称变更(内容不变)
|
||||
|
||||
| 新中文名 | 旧中文名 | 英文命名 | 附加值 |
|
||||
| :------ | ------ | ------ | ------ |
|
||||
| 橡木门 | 木门 | wooden_door | 0 |
|
||||
| 双绯红木台阶 | 绯红木双层台阶 | crimson_double_slab | 0 |
|
||||
| 双诡异木台阶 | 诡异木双层台阶 | warped_double_slab | 0 |
|
||||
| 双深板岩圆石台阶 | 深板岩圆石双层台阶 | cobbled_deepslate_double_slab | 0 |
|
||||
| 双磨制深板岩台阶 | 磨制深板岩双层台阶 | polished_deepslate_double_slab | 0 |
|
||||
| 双深板岩瓦台阶 | 深板岩瓦双层台阶 | deepslate_tile_double_slab | 0 |
|
||||
| 双深板岩砖台阶 | 深板岩砖双层台阶 | deepslate_brick_double_slab | 0 |
|
||||
| 悬挂式云杉木告示牌 | 云杉木悬挂告示牌 | spruce_hanging_sign | 0 |
|
||||
| 悬挂式白桦木告示牌 | 白桦木悬挂告示牌 | birch_hanging_sign | 0 |
|
||||
| 悬挂式金合欢木告示牌 | 金合欢木悬挂告示牌 | acacia_hanging_sign | 0 |
|
||||
| 悬挂式深色橡木告示牌 | 深色橡木悬挂告示牌 | dark_oak_hanging_sign | 0 |
|
||||
| 双樱花木台阶 | 樱花木双层台阶 | cherry_double_slab | 0 |
|
||||
|
||||
### 新增项
|
||||
|
||||
| 中文名称 | 英文命名 | 附加值 |
|
||||
| :------ | ------ | ------ |
|
||||
| 双平滑石头台阶 | smooth_stone_double_slab | 0 |
|
||||
| 下界砖 | nether_brick | 0 |
|
||||
| 骷髅模型 | skeleton_skull | 0 |
|
||||
| 潜声感测器 | sculk_sensor | 0 |
|
||||
| 荧光物品展示框 | glow_frame | 0 |
|
||||
| 潜声 | sculk | 0 |
|
||||
| 红树木门 | mangrove_door | 0 |
|
||||
| 红树木告示牌 | mangrove_standing_sign | 0 |
|
||||
| 双红树木台阶 | mangrove_double_slab | 0 |
|
||||
| 悬挂式橡木告示牌 | oak_hanging_sign | 0 |
|
||||
| 悬挂式丛林木告示牌 | jungle_hanging_sign | 0 |
|
||||
| 悬挂式绯红木告示牌 | crimson_hanging_sign | 0 |
|
||||
| 悬挂式诡异木告示牌 | warped_hanging_sign | 0 |
|
||||
| 悬挂式红树木告示牌 | mangrove_hanging_sign | 0 |
|
||||
| 悬挂式竹告示牌 | bamboo_hanging_sign | 0 |
|
||||
| 悬挂式樱花木告示牌 | cherry_hanging_sign | 0 |
|
||||
| 光源方块-亮度1 | light_block_1 | 0 |
|
||||
| 光源方块-亮度2 | light_block_2 | 0 |
|
||||
| 光源方块-亮度3 | light_block_3 | 0 |
|
||||
| 光源方块-亮度4 | light_block_4 | 0 |
|
||||
| 光源方块-亮度5 | light_block_5 | 0 |
|
||||
| 光源方块-亮度6 | light_block_6 | 0 |
|
||||
| 光源方块-亮度7 | light_block_7 | 0 |
|
||||
| 光源方块-亮度8 | light_block_8 | 0 |
|
||||
| 光源方块-亮度9 | light_block_9 | 0 |
|
||||
| 光源方块-亮度10 | light_block_10 | 0 |
|
||||
| 光源方块-亮度11 | light_block_11 | 0 |
|
||||
| 光源方块-亮度12 | light_block_12 | 0 |
|
||||
| 光源方块-亮度13 | light_block_13 | 0 |
|
||||
| 光源方块-亮度14 | light_block_14 | 0 |
|
||||
| 光源方块-亮度15 | light_block_15 | 0 |
|
||||
| 紫珀柱 | purpur_pillar | 0 |
|
||||
| 凋灵骷髅模型 | wither_skeleton_skull | 0 |
|
||||
| 僵尸模型 | zombie_head | 0 |
|
||||
| 模型 | player_head | 0 |
|
||||
| 苦力怕模型 | creeper_head | 0 |
|
||||
| 龙的模型 | dragon_head | 0 |
|
||||
| 猪灵模型 | piglin_head | 0 |
|
||||
| 苍白橡木按钮 | pale_oak_button | 0 |
|
||||
| 苍白橡木门 | pale_oak_door | 0 |
|
||||
| 苍白橡木栅栏 | pale_oak_fence | 0 |
|
||||
| 苍白橡木栅栏大门 | pale_oak_fence_gate | 0 |
|
||||
| 苍白橡木悬挂告示牌 | pale_oak_hanging_sign | 0 |
|
||||
| 去皮苍白橡树原木 | stripped_pale_oak_log | 0 |
|
||||
| 苍白橡树原木 | pale_oak_log | 0 |
|
||||
| 苍白橡木木板 | pale_oak_planks | 0 |
|
||||
| 苍白橡木压力板 | pale_oak_pressure_plate | 0 |
|
||||
| 苍白橡木台阶 | pale_oak_slab | 0 |
|
||||
| 苍白橡木双台阶 | pale_oak_double_slab | 0 |
|
||||
| 苍白橡木楼梯 | pale_oak_stairs | 0 |
|
||||
| 苍白橡木活板门 | pale_oak_trapdoor | 0 |
|
||||
| 去皮苍白橡木 | stripped_pale_oak_wood | 0 |
|
||||
| 苍白橡木 | pale_oak_wood | 0 |
|
||||
| 苍白橡木树苗 | pale_oak_sapling | 0 |
|
||||
| 苍白橡木树叶 | pale_oak_leaves | 0 |
|
||||
| 苍白苔藓块 | pale_moss_block | 0 |
|
||||
| 苍白苔藓地毯 | pale_moss_carpet | 0 |
|
||||
| 苍白垂须 | pale_hanging_moss | 0 |
|
||||
| 嘎枝之心 | creaking_heart | 0 |
|
||||
| 树脂砖块 | resin_bricks | 0 |
|
||||
| 树脂砖台阶 | resin_brick_slab | 0 |
|
||||
| 双树脂砖台阶 | resin_brick_double_slab | 0 |
|
||||
| 树脂砖楼梯 | resin_brick_stairs | 0 |
|
||||
| 树脂砖墙 | resin_brick_wall | 0 |
|
||||
| 张开的眼眸花 | open_eyeblossom | 0 |
|
||||
| 闭合的眼眸花 | closed_eyeblossom | 0 |
|
||||
| 雕纹树脂砖块 | chiseled_resin_bricks | 0 |
|
||||
| 树脂块 | resin_block | 0 |
|
||||
| 树脂团 | resin_clump | 0 |
|
||||
|
||||
### 移除项
|
||||
|
||||
| 中文名称 | 英文命名 | 附加值 |
|
||||
| :------ | ------ | ------ |
|
||||
| 石头双层台阶 | double_stone_block_slab | 0 |
|
||||
| 蘑菇 | brown_mushroom_block | 0 |
|
||||
| 下界砖块 | nether_brick | 0 |
|
||||
| 生物头颅 | skull | 0 |
|
||||
| 紫珀柱子 | purpur_block | 2 |
|
||||
| 幽匿感测体 | sculk_sensor | 0 |
|
||||
| 幽匿块 | sculk | 0 |
|
||||
| 红树林门 | mangrove_door | 0 |
|
||||
| 红树林告示牌 | mangrove_standing_sign | 0 |
|
||||
| 双红树林台阶 | mangrove_double_slab | 0 |
|
||||
| 橡树悬挂告示牌 | oak_hanging_sign | 0 |
|
||||
| 丛林悬挂告示牌 | jungle_hanging_sign | 0 |
|
||||
| 绯红悬挂告示牌 | crimson_hanging_sign | 0 |
|
||||
| 翘曲悬挂告示牌 | warped_hanging_sign | 0 |
|
||||
| 红树林悬挂告示牌 | mangrove_hanging_sign | 0 |
|
||||
| 竹制悬挂告示牌 | bamboo_hanging_sign | 0 |
|
||||
| 樱花悬挂告示牌 | cherry_hanging_sign | 0 |
|
||||
@@ -196,7 +196,7 @@ time: 分钟
|
||||
| type | string | | 必须设置,用于控制生成的生物类型 |
|
||||
|
||||
- 原生生物type为"minecraft:Namespaced ID",如"minecraft:parrot",Namespaced ID可参考[官方wiki](https://zh.minecraft.wiki/w/%E5%9F%BA%E5%B2%A9%E7%89%88%E6%95%B0%E6%8D%AE%E5%80%BC/%E5%AE%9E%E4%BD%93ID)中各Mob的详细信息。
|
||||
- 微软自定义生物type为"minecraft:entity"中"description"的"identifier"项,可参考[自定义生物文档](../../3-自定义生物/01-自定义基础生物.md)及[CustomBlocksMod](../../../13-模组SDK编程/60-Demo示例.md#CustomBlocksMod)中的customblocks_test_mobspawner1.json。
|
||||
- 微软自定义生物type为"minecraft:entity"中"description"的"identifier"项,可参考[自定义生物文档](../3-自定义生物/01-自定义基础生物.md)及[CustomBlocksMod](../../13-模组SDK编程/60-Demo示例.md#CustomBlocksMod)中的customblocks_test_mobspawner1.json。
|
||||
- 自定义刷怪箱方块的base_block需要设为mob_spawner。
|
||||
|
||||
|
||||
|
||||
242
mcguide/20-玩法开发/20-物理玩法开发/1-物理的使用指南.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# 物理的使用指南
|
||||
|
||||
## 使用准则与免责声明
|
||||
|
||||
### 使用准则
|
||||
|
||||
1. 仅限第三方用户生成内容(UGC)使用
|
||||
2. 只有创作者创建的自定义实体才能与物理刚体绑定,原版实体无法与PhysX创建的刚体绑定
|
||||
3. 物理身件可以与其他游戏物件(包括原生游戏物件)产生互动,但是原生游戏物件与其他原生游戏物件之间的互动方式及物理碰撞不会被改变
|
||||
4. 当两个碰撞同时发生时,核心游戏的物理引擎具有最高优先级
|
||||
|
||||
只有满足上述条件,您的模组才能符合要求进行上架
|
||||
|
||||
### 免责声明
|
||||
|
||||
物理相关api与特性,可能会在将来调整并且不向前兼容。请随时做好调整的准备
|
||||
|
||||
但是,每次调整都会做出充分的预告和调整内容公告,方便你对您的模组进行最新内容的兼容。
|
||||
|
||||
## 准备工作
|
||||
|
||||
由于我们的物理引擎是用的 NVIDIA PhysX,您可以先前往NVIDIA官网下载PhysX Visual Debugger,方便后续调试。
|
||||
[https://developer.nvidia.com/physx-visual-debugger](https://developer.nvidia.com/physx-visual-debugger)
|
||||

|
||||
## 全局配置
|
||||
|
||||
在使用物理引擎之前,您需要在模组的 behavior_packs 行为包中新增 physx_setting.json 全局配置文件
|
||||

|
||||
文件里面需要设置成
|
||||
```json
|
||||
{
|
||||
"enable": true
|
||||
}
|
||||
```
|
||||
保存后,您的模组可以正常使用 PhysX 物理引擎了。
|
||||
|
||||
## 开始创作
|
||||
|
||||
现在我会通过demo,来向你介绍physx能做的内容
|
||||
|
||||
### 创建自定义刚体
|
||||
|
||||
使用物理内容的之前,您首先需要创建一个新的物理刚体,物理刚体**必须**绑定在`自定义实体`上,且创建刚体的方法只能在 `AddEntityServerEvent` 事件中使用
|
||||
|
||||
```python
|
||||
# 创建一个自定义刚体
|
||||
comp = serverApi.GetEngineCompFactory().CreatePhysx(entityId)
|
||||
comp.CreatePxActor()
|
||||
```
|
||||
现在你已经为这个 entityId 的实体添加了一个物理刚体
|
||||
|
||||
> 注意: 刚体创建数量不得大于 8192, 虽然Physx限制是31767,但是我们需要预留一些刚体阈值给到其他实体和客户端内容
|
||||
> 注意:必须要在 AddEntityServerEvent 事件中创建刚体,否则会报错
|
||||
> 注意:实体必须绑定在 自定义实体上,不得绑定在原版实体上
|
||||
|
||||
### 添加包围盒
|
||||
|
||||
目前这个刚体暂时没有任何功能和属性,为了让它能够正常工作,我们需要给刚体添加一些属性
|
||||
|
||||
首先需要添加包围盒,包围盒是刚体的基本属性,你只有添加了包围盒,才能让刚体与世界实体进行交互
|
||||
|
||||
添加包围盒的方法是 AddBoxGeometry ,参数方法如下
|
||||
```python
|
||||
# localTransform tuple(float,float,float) 盒子中心相对实体原点的偏移
|
||||
# halfX float 表示盒子长度的一半
|
||||
# halfY float 表示盒子高度的一半
|
||||
# halfZ float 表示盒子宽度的一半
|
||||
# staticFriction float 静摩擦系数
|
||||
# dynamicFriction float 动摩擦系数,默认为e 注意:此摩擦力设置为0,并不代表刚体与原生游戏交互也是 0 摩擦力
|
||||
# restitution float 弹性恢复系数,默认为0
|
||||
# eventMask int PxEventMask枚举,用于监听碰撞事件,默认为PxRigidBodyFlag.Null,即不需要碰撞事件
|
||||
# userData None或str 可记录自定义数据,长度不超过20,默认为None
|
||||
comp.AddBoxGeometry((0, 0.9, 0), 0.3, 0.9, 0.3, 0.05, 0.05, 0, PxEventMask.Server | PxEventMask.Found, None)
|
||||
```
|
||||
|
||||
PxEventMask 枚举目前有六个
|
||||
1. PxEventMask.Server 服务端事件
|
||||
2. PxEventMask.Client 客户端事件
|
||||
3. PxEventMask.Lost 结束碰撞事件
|
||||
4. PxEventMask.Found 开始碰撞事件
|
||||
5. PxEventMask.Found_Detail 碰撞事件的详细信息
|
||||
6. PxEventMask.Null 该刚体不附加任何事件
|
||||
|
||||
此时你已经成功为你的刚体创建好了包围盒
|
||||
|
||||
当你启动游戏时,如果你此时提前打开了 PhysX Visual Debugger,那么刚体的包围盒就会显示出来了
|
||||
|
||||

|
||||
|
||||
红色代表世界的原生方块、绿色和黄色代表刚体的包围盒
|
||||

|
||||
|
||||
### 添加约束和运动
|
||||
|
||||
如果你想给刚体添加一些约束,比如刚体的运动锁定某个轴体,您需要添加动态约束
|
||||
|
||||
```python
|
||||
# 下面的方法是规定此刚体只会沿着 X Y Z 轴运动
|
||||
comp.SetRigidDynamicLockFlags(PxRigidDynamicLockFlag.eLOCK_ANGULAR_X | PxRigidDynamicLockFlag.eLOCK_ANGULAR_Y | PxRigidDynamicLockFlag.eLOCK_ANGULAR_Z)
|
||||
```
|
||||
PxRigidDynamicLockFlag 枚举目前有六个
|
||||
1. PxRigidDynamicLockFlag.eLOCK_ANGULAR_X 锁定沿着 X 轴运动
|
||||
2. PxRigidDynamicLockFlag.eLOCK_ANGULAR_Y 锁定沿着 Y 轴运动
|
||||
3. PxRigidDynamicLockFlag.eLOCK_ANGULAR_Z 锁定沿着 Z 轴运动
|
||||
4. PxRigidDynamicLockFlag.eLOCK_LINEAR_X 锁定沿着 X 轴旋转
|
||||
5. PxRigidDynamicLockFlag.eLOCK_LINEAR_Y 锁定沿着 Y 轴旋转
|
||||
6. PxRigidDynamicLockFlag.eLOCK_LINEAR_Z 锁定沿着 Z 轴旋转
|
||||
|
||||
|
||||
如果你希望您的刚体具有运动的属性,你需要将刚体设置为运动学刚体
|
||||
|
||||
那什么叫做有运动的属性?
|
||||
比如你想要手动控制刚体的运动,那么你需要将刚体设置为运动学刚体
|
||||
包括做成刚体风车、刚体传送带等行为
|
||||
|
||||
```python
|
||||
# 目前PxRigdiBodyFlag 仅支持PxRigidBodyFlag.eKINEMATIC
|
||||
comp.SetRigidBodyFlag(PxRigidBodyFlag.eKINEMATIC, True)
|
||||
```
|
||||
|
||||
### AI控制
|
||||
|
||||
利用实体创建刚体,您需要对AI进行调整
|
||||
否则在客户端会出现悬空的情况
|
||||
|
||||
```python
|
||||
comp = serverApi.GetEngineCompFactory().CreateControlAi(entityId)
|
||||
comp.SetBlockControlAi(False)
|
||||
```
|
||||
|
||||
### 做一个简单的风车
|
||||
|
||||
对此我们可以通过上述内容做一个简单的风车,我们计划是配合方块调色板 + 物理引擎来做一个简单的风车
|
||||
|
||||
机械动力的风车是一个比较不错的参考对象
|
||||
|
||||
我们仿照机械动力的风车,来做一个中国版物理引擎的风车
|
||||
|
||||
首先根据上面介绍的内容,我们依次创建刚体,设置包围盒
|
||||
|
||||
但是原版Java版机械动力的风车,可以自由组合方块,所以我们需要一个刚体对应一个方块。目前规划是创建一个长度5格的刚体
|
||||
|
||||
可以做一个for循环
|
||||
|
||||
```python
|
||||
for i in range(2):
|
||||
for j in range(-2,3):
|
||||
comp.AddBoxGeometry((j, 0.5 + i, 0), 0.5, 0.5, 0.5, 0.05, 0.05, 0,
|
||||
PxEventMask.Server | PxEventMask.Client | PxEventMask.Found | PxEventMask.Found_Detail | PxEventMask.Lost,
|
||||
%s,%s,0'%(j, i))
|
||||
```
|
||||
|
||||
此时就会创建一个总长度 5 格的刚体包围盒,并且每个刚体对应一个方块
|
||||
|
||||
因为这个刚体会有旋转的效果,所以我们需要给刚体添加一个运动属性
|
||||
|
||||
```python
|
||||
# 目前PxRigdiBodyFlag 仅支持PxRigidBodyFlag.eKINEMATIC
|
||||
comp.SetRigidBodyFlag(PxRigidBodyFlag.eKINEMATIC, True)
|
||||
```
|
||||
|
||||
因为刚体旋转是通过传入一个四元数并对四元数调整来达到目标的
|
||||
|
||||
所以我们需要创建一个四元数组
|
||||
|
||||
```python
|
||||
# 这里建议用一个成员变量来做存储,方便删除实体后对数据进行调整和删除
|
||||
self.mSkeletons[entityId] = Quaternion(0, 0, 0, 1)
|
||||
```
|
||||
|
||||
因为旋转是一个连续的过程,所以我们需要重写Update方法,以达到每tick刷新我们的旋转数据
|
||||
|
||||
```python
|
||||
# 这里我们对 self.mSkeletons 进行遍历,获取刚刚存储好的四元数,修改的同时传入刚体运动方法
|
||||
for entityId, v in self.mSkeletons.iteritems():
|
||||
# 旋转
|
||||
q = v * Quaternion.AngleAxis(1, Vector3.Up())
|
||||
# 修改变量值
|
||||
self.mSkeletons[entityId] = q
|
||||
# 设置为运动学目标
|
||||
comp = serverApi.GetEngineCompFactory().CreatePhysx(entityId)
|
||||
# 运动
|
||||
comp.SetKinematicTarget(None, q.ToTuple())
|
||||
```
|
||||
|
||||
此时刚体就会每tick旋转角度
|
||||
|
||||
但是目前做的内容仅仅只是对刚体进行了旋转,客户端没有表现,我们还需要用方块调色板对客户端进行调试
|
||||
|
||||
首先创建一个调色板
|
||||
```python
|
||||
dataDict = {'extra': {}, 'void': False, 'actor': {}, 'volume': (1, 5, 2), 'common': {('minecraft:grass_block', 0): [4, 9], ('minecraft:glass', 0): [1, 6], ('minecraft:quartz_block', 0): [3, 8], ('minecraft:white_wool', 0): [0, 5], ('minecraft:oak_planks', 0): [2, 7]}, 'eliminateAir': True}
|
||||
comp = compFactory.CreateBlock(levelId)
|
||||
palette = comp.GetBlankBlockPalette()
|
||||
palette.DeserializeBlockPalette(dataDict)
|
||||
blockGeometryComp = compFactory.CreateBlockGeometry(levelId)
|
||||
geometryName = blockGeometryComp.CombineBlockPaletteToGeometry(palette,"my_block_geometry")
|
||||
```
|
||||
|
||||
然后需要将调色板绑定在实体上,但是绑定刚体是欧拉角,也就是说我们还需要将四元数转成欧拉角
|
||||
|
||||
好在,ModSDK提供了这个简单的方法,物理引擎也有获取客户端刚体的四元数数据
|
||||
|
||||
```python
|
||||
actorRenderComp = compFactory.CreateActorRender(entityId)
|
||||
comp = compFactory.CreatePhysx(entityId)
|
||||
q = Quaternion(comp.GetQuaternion())
|
||||
# AddActorBlockGeometry 在 3.7 新增了一个参数, 会控制先旋转后偏移,还是先偏移后旋转。默认是False
|
||||
# 为了做风车,我们设置为 True,也就是先旋转再偏移
|
||||
actorRenderComp.AddActorBlockGeometry(geometryName, (-2, 0, 0), q.EulerAngles().ToTuple(), 0True)
|
||||
self.mSkeletons.add(entityId)
|
||||
```
|
||||
|
||||
此时刚体的方块调色板就已经绑定在实体上了,但是这个我们查看 PhysX Visual Debugger 时,发现刚体变动了,但是调色板方块没有变化
|
||||
|
||||
所以我们也要对客户端表现进行调整
|
||||
|
||||
同样需要重写 Update 方法,每tick修改方块调色板的旋转角度
|
||||
|
||||
```python
|
||||
def Update(self):
|
||||
for entityId in self.mSkeletons:
|
||||
comp = compFactory.CreatePhysx(entityId)
|
||||
q = comp.GetQuaternion()
|
||||
if q:
|
||||
q = Quaternion(q)
|
||||
actorRenderComp = compFactory.CreateActorRender(entityId)
|
||||
actorRenderComp.SetActorBlockGeometryRotation("my_block_geometry", q.EulerAngles().ToTuple())
|
||||
```
|
||||
|
||||
当全部完成后,就可以做到风车围绕着一个自定义实体进行旋转,然后推动实体进行移动了
|
||||
|
||||
并且你也可以站在这个刚体上,但是站在刚体上,刚体并不会带着玩家一起移动,开发者们可以自行思考解决办法来处理这个问题!
|
||||

|
||||
|
||||
### 思考
|
||||
|
||||
虽然我们现在是在用 Update 的方式去动态的调整刚体旋转和外观旋转
|
||||
|
||||
但是进入游戏后会发现,用此方法来旋转会有一点的顿挫感,虽然影响不是很大,但如果你需要追求细致,可能还不算太完美
|
||||
|
||||
或许还可以通过 `GameRenderTickEvent` 来调整,但是这个方法笔者并没有使用过,所以需要开发者们自行思考研究
|
||||
BIN
mcguide/20-玩法开发/20-物理玩法开发/picture/img.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
mcguide/20-玩法开发/20-物理玩法开发/picture/img_1.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
mcguide/20-玩法开发/20-物理玩法开发/picture/img_2.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
mcguide/20-玩法开发/20-物理玩法开发/picture/img_3.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
mcguide/20-玩法开发/20-物理玩法开发/picture/img_4.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
mcguide/20-玩法开发/20-物理玩法开发/picture/img_5.png
Normal file
|
After Width: | Height: | Size: 642 KiB |
@@ -1,6 +1,12 @@
|
||||
---
|
||||
front:
|
||||
hard: 入门
|
||||
time: 60分钟
|
||||
---
|
||||
|
||||
# 通过MCSM面板管理服务器
|
||||
|
||||

|
||||

|
||||
|
||||
## 准备阶段
|
||||
|
||||
@@ -24,31 +30,33 @@
|
||||
|
||||
* 网易机器禁止私自把机器交付时开放的业务端口用于其他用途,如数据库或自建服务等
|
||||
|
||||

|
||||

|
||||
|
||||
## 原理说明
|
||||
|
||||
在网易机器部署mcsm daemon守护进程,通过自备机器协议转发SSH隧道与网易机器通信,从而达到使用mcsm面板管理网易机器。
|
||||
|
||||

|
||||

|
||||
|
||||
## 操作步骤
|
||||
|
||||
### (一)在网易机器
|
||||
### (一)在网易机器
|
||||
|
||||
#### 1. 无root安装node.js
|
||||
|
||||
**强制要求安装node16+的版本,不然守护进程跑不起来**
|
||||
|
||||
```bash
|
||||
# 下载nodejs
|
||||
cd ~/downloads
|
||||
wget https://nodejs.org/dist/v15.7.0/node-v15.7.0-linux-x64.tar.xz
|
||||
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz
|
||||
|
||||
# 创建工作目录并解压
|
||||
mkdir -p ~/apps/node-v15.7.0
|
||||
tar -xJf node-v15.7.0-linux-x64.tar.xz --no-wildcards-match-slash --anchored --exclude */CHANGELOG.md --exclude */LICENSE --exclude */README.md --strip 1 -C ~/apps/node-v15.7.0
|
||||
mkdir -p ~/apps/node-v16.20.2
|
||||
tar -xJf node-v16.20.2-linux-x64.tar.xz --no-wildcards-match-slash --anchored --exclude */CHANGELOG.md --exclude */LICENSE --exclude */README.md --strip 1 -C ~/apps/node-v16.20.2
|
||||
|
||||
# 添加path变量
|
||||
export PATH=~/apps/node-v15.7.0/bin:$PATH
|
||||
export PATH=~/apps/node-v16.20.2/bin:$PATH
|
||||
source ~/.bashrc
|
||||
|
||||
# 检查nodejs版本
|
||||
@@ -62,7 +70,7 @@ npm -v
|
||||
|
||||
从github下载压缩包(内容库也已上传)
|
||||
|
||||
<https://gitee.com/mcsmanager/MCSManager-Daemon-Production>
|
||||
<https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_daemon_only_release.tar.gz>
|
||||
|
||||
```bash
|
||||
# 创建mcsm daemon工作目录
|
||||
@@ -73,8 +81,8 @@ mkdir -p ~/mcsm
|
||||
|
||||
# 解压
|
||||
cd ~/mcsm
|
||||
unzip MCSManager-Daemon-Production-master.zip
|
||||
cd ~/mcsm/MCSManager-Daemon-Production-master
|
||||
tar -zxvf mcsmanager_linux_daemon_only_release.tar.gz
|
||||
cd ~/mcsm/mcsmanager
|
||||
|
||||
# 设置 npm 镜像源为国内淘宝源
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
@@ -84,8 +92,7 @@ npm config get registry
|
||||
screen -S mcsm
|
||||
|
||||
# 安装依赖后部署
|
||||
npm install --production
|
||||
node app.js
|
||||
sh start-daemon.sh
|
||||
```
|
||||
|
||||
#### 3. 检查24444端口和秘钥
|
||||
@@ -175,9 +182,9 @@ netstat -tunlp | grep 24445
|
||||
|
||||
#### 3. 配置mcsm节点
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
这里的“远程节点秘钥”请替换为网易机器守护进程输出的key秘钥。
|
||||
|
||||
@@ -205,6 +212,12 @@ netstat -tunlp | grep 24445
|
||||
|
||||
按照此方法,在不同机器上配置mcsm daemon守护进程,配置多个SSH隧道协议转发,然后新增节点即可。
|
||||
|
||||
③ mcsm面板传输文件出现错误
|
||||
|
||||
显示network error
|
||||
|
||||
解决方法:升级daemon为最新版,不要使用3.x的版本
|
||||
|
||||
## 特别鸣谢
|
||||
|
||||
|
||||
@@ -220,7 +233,6 @@ MCSM常见问题解答:混合、封神、MuFeng、西瓜、星汉
|
||||
|
||||
调试与测试:千阙云庭服务器团队、初云杯服务器团队、风之谷服务器团队
|
||||
|
||||
<br />
|
||||
|
||||
如您在操作过程中有困难,欢迎您随时联系我们\~
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 189 KiB |
@@ -6,33 +6,63 @@ time: 5分钟
|
||||
|
||||
# 组件打包发布
|
||||
|
||||
## 前言
|
||||
|
||||
本文将从MC Studio工具快捷打包 和 手动打包 两个方面介绍组件的打包发布
|
||||
|
||||
## 组件配置
|
||||
|
||||
在组件的右键菜单,选择配置,可以对作品的UUID与版本号进行修改
|
||||
### 配置介绍
|
||||
|
||||
UUID: 代表模组的内容的全局唯一标识符,如果有相同的UUID的组件,会在组件上传审核机审时候报错
|
||||
|
||||
版本号:对应模组内容的迭代版本
|
||||
|
||||
### UUID更新
|
||||
|
||||
在组件的右键菜单,选择配置。可以对作品的UUID与版本号进行修改
|
||||
|
||||

|
||||
|
||||
点击随机UUID,将会自动对所有资源包和行为包的UUID进行随机
|
||||
|
||||
**点击随机UUID,将会自动对所有资源包和行为包的UUID进行随机**
|
||||
选中对应的资源包,右键可以复制其UUID
|
||||
|
||||

|
||||
|
||||
在开发测试阶段,并不需要关注版本号,而当你的组件需要发布到平台,为了让组件上线后能顺利更新,每次发布前需要提升组件版本号,这里你既可以单独升级个别资源包,也可以全选升级所有资源包。
|
||||
### 版本号
|
||||
|
||||
## 组件发布
|
||||

|
||||
|
||||
当你的组件一切准备就绪,就可以在组件的右键菜单里,点击进行发布。
|
||||
在开发测试阶段,并不需要关注版本号,其不会影响你的开发
|
||||
|
||||
发布时会自动选中平台已有的同名组件,并自动勾选更新已有作品,因此请尽量保持作品与平台名称一致。
|
||||
当你的组件需要发布到平台,如果你是第一次发布组件时,会以资源包与行为包**默认的0.0.1版本**进行发布。而之后的每次更新发布前,需要提升组件版本号,根据你更新的内容决定,这里你可以单独升级个别资源包,也可以全选升级所有资源包。
|
||||
|
||||

|
||||
## MC Studio进行快捷打包发布
|
||||
|
||||
点击确定后,我们会对作品进行自检,然后导出必要的文件,并压缩成<名称_时间.zip>的命名格式,上传到开发者平台,并打开浏览器对应链接,你可以在这个页面进一步编辑器组件的详情,最后点击保存。
|
||||
|
||||
## 组件转换
|
||||
|
||||
同时我们还提供了组件间的转换功能,你可以在右键菜单里找到它,将AddOn方便的转换为地图或服务器Mod
|
||||
1. MC Studio提供了组件间的转换功能,你可以在右键菜单里找到它,将AddOn方便的转换为地图或服务器Mod
|
||||
|
||||

|
||||
|
||||
|
||||
2. 当你的组件一切准备就绪,就可以在组件的右键菜单里,点击进行发布,随后会有一个选择界面。
|
||||
|
||||

|
||||
|
||||
- 新建作品:你的开发者平台中没有该作品,这时会创建一个全新的组件
|
||||
|
||||
- 更新已有作品:此时会自动选中平台已有的同名组件,并自动勾选更新已有作品。**当然也可以手动选择其他组件,但是这代表着其他组件的内容将会被本次发布的组件内容覆盖,因此请尽量保持作品与平台中作品名称一致,避免组件上传错误** (可以看到上图中和首页第一张图的组件名称都是叫lobbyGoodsMod2.0)
|
||||
|
||||
3. 点击确定后,MC Studio会对作品进行自检,然后导出必要的文件,并压缩成<名称_时间.zip>的命名格式,上传到开发者平台,并打开浏览器对应链接,你可以在这个页面进一步编辑器组件的详情,最后点击保存。
|
||||
|
||||
## 手动打包发布
|
||||
|
||||
### 检查包体的文件结构与导出
|
||||
|
||||
[课程01.包体的结构和导入](https://mc.163.com/dev/mcmanual/mc-dev/mconline/10-addon%E6%95%99%E7%A8%8B/%E7%AC%AC18%E7%AB%A0%EF%BC%9A%E6%89%93%E5%8C%85%E5%AF%BC%E5%87%BA%E4%BD%A0%E7%9A%84%E4%BD%9C%E5%93%81/%E8%AF%BE%E7%A8%8B01.%E5%8C%85%E4%BD%93%E7%9A%84%E7%BB%93%E6%9E%84%E5%92%8C%E5%AF%BC%E5%85%A5.html?catalog=1)介绍了PC PE中所有组件类型的文件结构与打包,开发者可以进行参考检查自己的文件
|
||||
|
||||
### 发布
|
||||
|
||||
[课程03-组件上架的规范及过审攻略](https://mc.163.com/dev/mcmanual/mc-dev/mcguide/35-%E4%B8%8A%E6%9E%B6%E4%B8%8E%E5%85%A5%E9%A9%BB/%E8%AF%BE%E7%A8%8B04-%E8%AE%A4%E8%AF%86%E4%BD%9C%E5%93%81%E7%AE%A1%E7%90%86%E6%A8%A1%E5%9D%97.html?catalog=1)介绍了如何将打包后组件上传发布,开发者可以进行流程参考
|
||||
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 213 KiB After Width: | Height: | Size: 154 KiB |
BIN
mcguide/30-测试/new_images/zujiandabao/0_1.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
@@ -45,7 +45,7 @@ time: 10分钟
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{“type”: "item", "name": "minecraft:wool","function": [{"function": "set_data","data":15}]}
|
||||
{"type": "item", "name": "minecraft:wool", "function": [{"function": "set_data", "data":15}]}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -8,397 +8,265 @@ time: 20分钟
|
||||
|
||||
|
||||
|
||||
#### 作者:境界
|
||||
### 作者:
|
||||
|
||||
境界
|
||||
|
||||
## 前言
|
||||
|
||||
包体也被称为Package,它是由开发者将本地的JAVA版资源内容和基岩版资源内容进行压缩打包后的档案。在中国版开发者平台拿到上传的包体后,通过机器审核和人工审核后,包体最终会被推送至公共下载服务器。最后再由玩家下载后压缩包后,经客户端解压才能玩到组件资源。
|
||||
|
||||
在上传至平台前,开发者应确保在本地开发的内容达到了预期的运行效果。并遵照本章的打包方式进行压缩打包,降低机器审核的打回概率或审核时间。
|
||||
在上传至平台前,开发者应确保在**本地开发的内容达到了预期的运行效果。并遵照本章的打包方式进行压缩打包,降低机器审核的打回概率或审核时间**。
|
||||
|
||||
## 认识JAVA包体结构
|
||||
|
||||
### PC地图
|
||||
|
||||
### 认识JAVA包体结构
|
||||
<img src="./images/1_1.jpg" style="zoom:40%; display:block; margin:0 auto;" />
|
||||
|
||||
#### PC地图
|
||||
1. 截图截选了我的世界JAVA版1.12.2游戏客户端生成的世界存档的内容。test文件夹下存放着名为test的世界信息。
|
||||
|
||||
<img src="./images/1_2.jpg" style="zoom:40%; display:block; margin:0 auto;" />
|
||||
|
||||
2. 打开这个客户端可以看到test存档。
|
||||
|
||||

|
||||
<img src="./images/1_3.jpg" style="zoom:40%; display:block; margin:0 auto;" />
|
||||
|
||||
3. 返回到目录的上一级,saves文件夹下则会存放着这个客户端可以启动的所有存档文件夹,其中就有前面提到的test存档。
|
||||
|
||||
<img src="./images/1_4.jpg" style="zoom:40%; display:block; margin:0 auto;" />
|
||||
|
||||
1) 截图截选了我的世界JAVA版1.12.2游戏客户端生成的世界存档的内容。test文件夹下存放着名为test的世界信息。
|
||||
4. 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择地图。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||

|
||||
<img src="./images/1_5.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
5. 点击导入窗体内的+号按钮,直接选择test文件夹后点击选择文件夹。
|
||||
|
||||
<img src="./images/1_6.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2) 打开这个客户端可以看到test存档。
|
||||
6. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的存档文件夹。
|
||||
|
||||

|
||||
<img src="./images/1_7.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
7. 开发者不通过MCSTUDIO而选择自行打包时,请将存档文件夹使用7Z压缩工具打包成一个后缀为7z的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||
### PC MOD
|
||||
|
||||
3) 返回到目录的上一级,saves文件夹下则会存放着这个客户端可以启动的所有存档文件夹,其中就有前面提到的test存档。
|
||||
<img src="./images/1_8.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
1. 上传平台的MOD文件必须以jar格式作为分发给玩家游玩的标准文件格式。
|
||||
|
||||
<img src="./images/1_9.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择Mod。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||
4) 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择地图。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
5) 点击导入窗体内的+号按钮,直接选择test文件夹后点击选择文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
6) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的存档文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
7) 开发者不通过MCSTUDIO而选择自行打包时,请将存档文件夹使用7Z压缩工具打包成一个后缀为7z的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
#### PC MOD
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 上传平台的MOD文件必须以jar格式作为分发给玩家游玩的标准文件格式。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择Mod。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||

|
||||
|
||||
|
||||
<img src="./images/1_10.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
3)点击导入窗体内的+号按钮,直接双击或选择jar文件后选打开。
|
||||
|
||||

|
||||
<img src="./images/1_11.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的jar文件。
|
||||
|
||||
<img src="./images/1_12.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的jar文件。
|
||||
<img src="./images/1_13.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
5. 开发者不通过MCSTUDIO而选择自行打包时,请将jar文件放入一个文件夹内,将文件夹用7z压缩工具压缩成7z后缀格式的压缩包。再通过开发者平台上传组件资源源文档。
|
||||
|
||||

|
||||
### PC 材质
|
||||
|
||||
<img src="./images/1_14.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1. 截图主要展示JAVA版材质的目录和文件结构。
|
||||
|
||||
5) 开发者不通过MCSTUDIO而选择自行打包时,请将jar文件放入一个文件夹内,将文件夹用7z压缩工具压缩成7z后缀格式的压缩包。再通过开发者平台上传组件资源源文档。
|
||||
<img src="./images/1_15.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 直接将材质文件夹内的内容全部选取后右键保存成zip压缩文档。
|
||||
|
||||
<img src="./images/1_16.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
#### PC 材质
|
||||
3. 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择材质。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||

|
||||
<img src="./images/1_17.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4. 点击导入窗体内的+号按钮,直接双击或选择zip文档后选打开。
|
||||
|
||||
<img src="./images/1_18.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1) 截图主要展示JAVA版材质的目录和文件结构。
|
||||
5. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的材质压缩档。
|
||||
|
||||

|
||||
<img src="./images/1_19.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
6. 开发者不通过MCSTUDIO而选择自行打包时,请将材质压缩文档放入一个文件夹内,将文件夹用7z压缩工具压缩成7z后缀格式的压缩包。再通过开发者平台上传组件资源源文档。
|
||||
|
||||
### PC 光影
|
||||
|
||||
2) 直接将材质文件夹内的内容全部选取后右键保存成zip压缩文档。
|
||||
<img src="./images/1_20.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
1. 截图主要展示JAVA版光影的内容目录和文件结构。
|
||||
|
||||
<img src="./images/1_21.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 直接将文件夹内的所有文件全部选取后右键保存成zip压缩文档。
|
||||
|
||||
3) 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择材质。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
<img src="./images/1_22.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
3. 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择光影。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||
<img src="./images/1_23.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4. 点击导入窗体内的+号按钮,直接双击或选择zip文档后选打开。
|
||||
|
||||
4) 点击导入窗体内的+号按钮,直接双击或选择zip文档后选打开。
|
||||
<img src="./images/1_24.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
5. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的光影压缩档。
|
||||
|
||||
6. 开发者不通过MCSTUDIO而选择自行打包时,请将光影压缩文档放入一个文件夹内,将文件夹用7z压缩工具压缩成7z后缀格式的压缩包。再通过开发者平台上传组件资源源文档。
|
||||
|
||||
### PC 皮肤
|
||||
|
||||
5) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的材质压缩档。
|
||||
<img src="./images/1_25.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
1. 截图主要展示PC皮肤资源支持的文件格式,为结尾png的图片文档。该格式的图片保存着一道透明通道。
|
||||
|
||||
<img src="./images/1_26.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择皮肤。【适用MC版本】选择默认选择全版本即可。
|
||||
|
||||
6) 开发者不通过MCSTUDIO而选择自行打包时,请将材质压缩文档放入一个文件夹内,将文件夹用7z压缩工具压缩成7z后缀格式的压缩包。再通过开发者平台上传组件资源源文档。
|
||||
<img src="./images/1_27.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
3. 点击导入窗体内的+号按钮,直接双击或选择png文档后选打开。
|
||||
|
||||
<img src="./images/1_28.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
#### PC 光影
|
||||
4. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的图片文档。
|
||||
|
||||

|
||||
5. 开发者不通过MCSTUDIO而选择自行打包时,请直接通过开发者平台上传皮肤组件源图片文档。
|
||||
|
||||
### PC 玩法
|
||||
|
||||
<img src="./images/1_29.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1) 截图主要展示JAVA版光影的内容目录和文件结构。
|
||||
1. 截图截选了我的世界JAVA版1.12.2游戏客户端生成的地图的内容。test文件夹下存放着名为test的世界信息。命令方块玩法、数据包等是用我的世界JAVA版地图作为承载。
|
||||
|
||||

|
||||
<img src="./images/1_30.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开这个客户端可以看到test存档。
|
||||
|
||||
<img src="./images/1_31.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2) 直接将文件夹内的所有文件全部选取后右键保存成zip压缩文档。
|
||||
3. 返回到目录的上一级,saves文件夹下则会存放着这个客户端可以启动的所有存档文件夹,其中就有前面提到的test存档。
|
||||
|
||||

|
||||
<img src="./images/1_32.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4. 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择玩法。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
|
||||
<img src="./images/1_33.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
3) 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择光影。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
5. 点击导入窗体内的+号按钮,直接选择test文件夹后点击选择文件夹。
|
||||
|
||||

|
||||
<img src="./images/1_34.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
6. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的存档文件夹。
|
||||
|
||||
<img src="./images/1_35.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4) 点击导入窗体内的+号按钮,直接双击或选择zip文档后选打开。
|
||||
7. 开发者不通过MCSTUDIO而选择自行打包时,请将存档文件夹使用7Z压缩工具打包成一个后缀为7z的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||

|
||||
## 认识基岩版包体结构
|
||||
|
||||
### PE地图
|
||||
|
||||
<img src="./images/1_36.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
5) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的光影压缩档。
|
||||
1. 截图截选了我的世界基岩版1.16.12游戏客户端生成的世界存档的内容。英文数字组合名称的文件夹下存放着该存档的世界信息。
|
||||
|
||||
6) 开发者不通过MCSTUDIO而选择自行打包时,请将光影压缩文档放入一个文件夹内,将文件夹用7z压缩工具压缩成7z后缀格式的压缩包。再通过开发者平台上传组件资源源文档。
|
||||
<img src="./images/1_38.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开MCSTUDIO,点击作品库后再点击基岩版版组件,分类选择【地图】。若勾选【复制文件到默认文件夹】,MCSTUDIO会将地图完整拷贝一份至C:/MCStudioDownload/work/开发者ID/Cpp/Map下。若不勾选,则不会做出此操作。
|
||||
|
||||
<img src="./images/1_37.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
#### PC 皮肤
|
||||
3. 勾选选项时,点击窗体内的+号。不勾选选项时,点击窗体内的选择按钮。双击存档文件夹或选择文件夹后点击【选择文件夹】按钮。
|
||||
|
||||

|
||||
<img src="./images/1_39.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4. 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品并且作品勾选【复制文件到默认文件夹】,则会系统会将C:/MCStudioDownload/work/开发者ID/Cpp/Map下相应的拷贝文件夹删除。
|
||||
|
||||
<img src="./images/1_40.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1) 截图主要展示PC皮肤资源支持的文件格式,为结尾png的图片文档。该格式的图片保存着一道透明通道。
|
||||
5. 开发者不通过MCSTUDIO而选择自行打包时,请将整个存档文件夹使用任意压缩工具打包成一个后缀为zip的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||

|
||||
### PE 联机地图
|
||||
|
||||
<img src="./images/1_41.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1. 截图截选了我的世界基岩版1.16.12游戏客户端生成的世界存档的内容。英文数字组合名称的文件夹下存放着该存档的世界信息。联机地图指代可以同时在本地、本地联机、联机大厅上使用的地图资源。
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择皮肤。【适用MC版本】选择默认选择全版本即可。
|
||||
<img src="./images/1_42.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
<img src="./images/1_43.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 若世界存档携带附加包玩法,请确保存档文件夹目录下存有world_behavior_packs.json和world_resource_packs.json文件。其中pack_id对应材质包或行为包manifest内,header下的uuid。version对应manifest内header下的version。若只携带材质包或行为包,可以在world_behavior_packs.json内或world_resource_packs.json将第一个方括号内的内容全部清除。若不携带附加包,则则不需要在存档文件夹下携带此类文件。
|
||||
|
||||
<img src="./images/1_44.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
3) 点击导入窗体内的+号按钮,直接双击或选择png文档后选打开。
|
||||
3. 开发者可以在存档中放置一个server.properties,指定玩家的游戏模式。这样在联机大厅玩这个联机地图时,玩家每次进入都是server.properties文件中设置的游戏模式。更多基岩版多人联机地图的配置设定,请参考网址[https://zh.minecraft.wiki/w/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F](https://zh.minecraft.wiki/w/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F)
|
||||
|
||||

|
||||
4. 当前MCSTUDIO暂不支持导入联机大厅地图,请将整个存档文件夹使用任意压缩工具打包成一个后缀为zip的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||
### PE Addon
|
||||
|
||||
<img src="./images/1_45.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
4) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的图片文档。
|
||||
1. 截图截选了我的世界基岩版Addon的内容。Addon又被称作附加包,它由材质包和行为包组成。因此开发者在上架完整的附加包内容(包含附加包和行为包),需依照接下来的规范进行打包上传即可。请注意:上架至中国版平台的附加包中,行为包内必须携带entities文件夹,材质包内必须携带textures文件夹。
|
||||
|
||||
5) 开发者不通过MCSTUDIO而选择自行打包时,请直接通过开发者平台上传皮肤组件源图片文档。
|
||||
<img src="./images/1_46.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
<img src="./images/1_47.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开MCSTUDIO,点击作品库后再点击基岩版版组件。若勾选【复制文件到默认文件夹】,请将行为包、材质包全部选取后右键使用压缩工具压缩成zip文档,MCSTUDIO会在导入zip文档后,将一份完整拷贝放至C:/MCStudioDownload/work/开发者ID/Cpp/AddOn下。若不勾选,则直接选择带有行为包或材质包的文件夹即可。最后点击导入即可,之后开发者可以在MCSTUDIO进行后续的测试、发布、配置等操作。
|
||||
|
||||
#### PC 玩法
|
||||
3. 若开发者不通过MCSTUDIO而选择自行打包时,请将行为包、材质包全部选取后右键使用压缩工具压缩成zip文档。再通过开发者平台进行上传操作。
|
||||
|
||||

|
||||
### PE 材质
|
||||
|
||||
<img src="./images/1_48.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1. 附加包是行为包和材质包的统称,因此材质包被算入附加包的一种类型。因此开发者在上架完整的材质包内容前,需依照接下来的规范进行打包上传。请注意:上架至中国版平台的材质包内必须携带textures文件夹。
|
||||
|
||||
1) 截图截选了我的世界JAVA版1.12.2游戏客户端生成的地图的内容。test文件夹下存放着名为test的世界信息。命令方块玩法、数据包等是用我的世界JAVA版地图作为承载。
|
||||
<img src="./images/1_49.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
<img src="./images/1_50.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开MCSTUDIO,点击作品库后再点击基岩版版组件,在右上角点击本地导入,分区选择【基岩版作品】,分类选择【皮肤】。若勾选【复制文件到默认文件夹】,请将材质包文件夹右键使用压缩工具压缩成zip文档,MCSTUDIO会在导入zip文档后,将一份完整拷贝放至C:/MCStudioDownload/work/开发者ID/Cpp/Material下。若不勾选,则直接选择带有材质包的文件夹即可。最后点击导入即可,之后开发者可以在MCSTUDIO进行后续的测试、发布、配置等操作。
|
||||
|
||||
3. 若开发者不通过MCSTUDIO而选择自行打包时,请将材质包文件夹右键使用压缩工具压缩成zip文档。再通过开发者平台进行上传操作。
|
||||
|
||||
2) 打开这个客户端可以看到test存档。
|
||||
### PE 光影
|
||||
|
||||

|
||||
<img src="./images/1_51.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
1. 光影的内容都被保存在材质包文件夹中,因此在运行机制与打包机制上与材质包类似。因此开发者在上架完整的光影内容前,需依照接下来的规范进行打包上传。请注意:上架至中国版平台的材质包内必须携带textures文件夹。
|
||||
|
||||
<img src="./images/1_52.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
3) 返回到目录的上一级,saves文件夹下则会存放着这个客户端可以启动的所有存档文件夹,其中就有前面提到的test存档。
|
||||
<img src="./images/1_53.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
2. 打开MCSTUDIO,点击作品库后再点击基岩版版组件,在右上角点击本地导入,分区选择【基岩版作品】,分类选择【光影】。若勾选【复制文件到默认文件夹】,请将光影材质包文件夹右键使用压缩工具压缩成zip文档,MCSTUDIO会在导入zip文档后,将一份完整拷贝放至C:/MCStudioDownload/work/开发者ID/Cpp/Light下。若不勾选,则直接选择带有光影的材质包文件夹即可。最后点击导入即可,之后开发者可以在MCSTUDIO进行后续的测试、发布、配置等操作。
|
||||
|
||||
3. 若开发者不通过MCSTUDIO而选择自行打包时,请将带有光影的材质包文件夹右键使用压缩工具压缩成zip文档。再通过开发者平台进行上传操作。
|
||||
|
||||
### PE 皮肤
|
||||
|
||||
4) 打开MCSTUDIO,点击作品库后再点击Java版组件。在右上角点击本地导入,【作品分区】选择Java版作品。【作品分类】中选择玩法。【适用MC版本】选择对应存档本版。若支持多个版本可以选择多个相应版本。
|
||||
<img src="./images/1_54.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||

|
||||
1. 截图主要展示PE皮肤资源支持的文件格式,为结尾png的图片文档。该格式的图片保存着一道透明通道。
|
||||
|
||||
<img src="./images/1_55.jpg" style="zoom:40%; display:block; margin:0 auto;"/>
|
||||
|
||||
2. 打开MCSTUDIO,点击作品库后再点击基岩版版组件,在右上角点击本地导入,分区选择【基岩版作品】,分类选择【皮肤】。直接点击+号选择png结尾的皮肤图片即可。
|
||||
|
||||
5) 点击导入窗体内的+号按钮,直接选择test文件夹后点击选择文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
6) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品,也不会影响到最原先的存档文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
7) 开发者不通过MCSTUDIO而选择自行打包时,请将存档文件夹使用7Z压缩工具打包成一个后缀为7z的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
### 认识基岩版包体结构
|
||||
|
||||
#### PE地图
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 截图截选了我的世界基岩版1.16.12游戏客户端生成的世界存档的内容。英文数字组合名称的文件夹下存放着该存档的世界信息。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击基岩版版组件,分类选择【地图】。若勾选【复制文件到默认文件夹】,MCSTUDIO会将地图完整拷贝一份至C:/MCStudioDownload/work/开发者ID/Cpp/Map下。若不勾选,则不会做出此操作。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
3) 勾选选项时,点击窗体内的+号。不勾选选项时,点击窗体内的选择按钮。双击存档文件夹或选择文件夹后点击【选择文件夹】按钮。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
4) 最后点击导入按钮,即可由MCSTUDIO拷贝作品后导入进作品库内,进行后续的测试、发布、配置等操作。若开发者选择删除作品并且作品勾选【复制文件到默认文件夹】,则会系统会将C:/MCStudioDownload/work/开发者ID/Cpp/Map下相应的拷贝文件夹删除。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
5) 开发者不通过MCSTUDIO而选择自行打包时,请将整个存档文件夹使用任意压缩工具打包成一个后缀为zip的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
#### PE 联机地图
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 截图截选了我的世界基岩版1.16.12游戏客户端生成的世界存档的内容。英文数字组合名称的文件夹下存放着该存档的世界信息。联机地图指代可以同时在本地、本地联机、联机大厅上使用的地图资源。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 若世界存档携带附加包玩法,请确保存档文件夹目录下存有world_behavior_packs.json和world_resource_packs.json文件。其中pack_id对应材质包或行为包manifest内,header下的uuid。version对应manifest内header下的version。若只携带材质包或行为包,可以在world_behavior_packs.json内或world_resource_packs.json将第一个方括号内的内容全部清除。若不携带附加包,则则不需要在存档文件夹下携带此类文件。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
3) 开发者可以在存档中放置一个server.properties,指定玩家的游戏模式。这样在联机大厅玩这个联机地图时,玩家每次进入都是server.properties文件中设置的游戏模式。更多基岩版多人联机地图的配置设定,请参考网址[https://zh.minecraft.wiki/w/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F](https://zh.minecraft.wiki/w/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F)
|
||||
|
||||
4) 当前MCSTUDIO暂不支持导入联机大厅地图,请将整个存档文件夹使用任意压缩工具打包成一个后缀为zip的压缩文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
#### PE Addon
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 截图截选了我的世界基岩版Addon的内容。Addon又被称作附加包,它由材质包和行为包组成。因此开发者在上架完整的附加包内容(包含附加包和行为包),需依照接下来的规范进行打包上传即可。请注意:上架至中国版平台的附加包中,行为包内必须携带entities文件夹,材质包内必须携带textures文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击基岩版版组件。若勾选【复制文件到默认文件夹】,请将行为包、材质包全部选取后右键使用压缩工具压缩成zip文档,MCSTUDIO会在导入zip文档后,将一份完整拷贝放至C:/MCStudioDownload/work/开发者ID/Cpp/AddOn下。若不勾选,则直接选择带有行为包或材质包的文件夹即可。最后点击导入即可,之后开发者可以在MCSTUDIO进行后续的测试、发布、配置等操作。
|
||||
|
||||
3) 若开发者不通过MCSTUDIO而选择自行打包时,请将行为包、材质包全部选取后右键使用压缩工具压缩成zip文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
#### PE 材质
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 附加包是行为包和材质包的统称,因此材质包被算入附加包的一种类型。因此开发者在上架完整的材质包内容前,需依照接下来的规范进行打包上传。请注意:上架至中国版平台的材质包内必须携带textures文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击基岩版版组件,在右上角点击本地导入,分区选择【基岩版作品】,分类选择【皮肤】。若勾选【复制文件到默认文件夹】,请将材质包文件夹右键使用压缩工具压缩成zip文档,MCSTUDIO会在导入zip文档后,将一份完整拷贝放至C:/MCStudioDownload/work/开发者ID/Cpp/Material下。若不勾选,则直接选择带有材质包的文件夹即可。最后点击导入即可,之后开发者可以在MCSTUDIO进行后续的测试、发布、配置等操作。
|
||||
|
||||
3) 若开发者不通过MCSTUDIO而选择自行打包时,请将材质包文件夹右键使用压缩工具压缩成zip文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
#### PE 光影
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 光影的内容都被保存在材质包文件夹中,因此在运行机制与打包机制上与材质包类似。因此开发者在上架完整的光影内容前,需依照接下来的规范进行打包上传。请注意:上架至中国版平台的材质包内必须携带textures文件夹。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击基岩版版组件,在右上角点击本地导入,分区选择【基岩版作品】,分类选择【光影】。若勾选【复制文件到默认文件夹】,请将光影材质包文件夹右键使用压缩工具压缩成zip文档,MCSTUDIO会在导入zip文档后,将一份完整拷贝放至C:/MCStudioDownload/work/开发者ID/Cpp/Light下。若不勾选,则直接选择带有光影的材质包文件夹即可。最后点击导入即可,之后开发者可以在MCSTUDIO进行后续的测试、发布、配置等操作。
|
||||
|
||||
3) 若开发者不通过MCSTUDIO而选择自行打包时,请将带有光影的材质包文件夹右键使用压缩工具压缩成zip文档。再通过开发者平台进行上传操作。
|
||||
|
||||
|
||||
|
||||
#### PE 皮肤
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
1) 截图主要展示PE皮肤资源支持的文件格式,为结尾png的图片文档。该格式的图片保存着一道透明通道。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
2) 打开MCSTUDIO,点击作品库后再点击基岩版版组件,在右上角点击本地导入,分区选择【基岩版作品】,分类选择【皮肤】。直接点击+号选择png结尾的皮肤图片即可。
|
||||
|
||||
3) 若开发者不通过MCSTUDIO而选择自行打包时,请将带有皮肤文件直接通过开发者平台进行上传操作。
|
||||
3. 若开发者不通过MCSTUDIO而选择自行打包时,请将带有皮肤文件直接通过开发者平台进行上传操作。
|
||||
|
||||
|
||||