查看: 177|回复: 3

附加包教程:10.方块(一) - 教程中心 - Minecraft(我的世界)苦力怕论坛

[复制链接]
查看: 177|回复: 3

附加包教程:10.方块(一) - 教程中心 - Minecraft(我的世界)苦力怕论坛

[复制链接]
查看: 177|回复: 3

30

主题

188

回帖

448

积分

中级会员

积分
448
暴风湛娟

30

主题

188

回帖

448

积分

中级会员

积分
448
2023-1-12 10:54:40 | 显示全部楼层 |阅读模式 IP:美国 来自 美国


前言

前面4期,我们已经学完了有关物品的知识。这次,我们就来学习如何添加一个方块。这是一个很复杂的内容,它的难度比物品要大得多。然而,如果只需要一个简单的方块,那么方块和物品就大同小异了。接下来,我们将花若干期的时间学习关于方块的所有内容。
准备

学习方块是一个由简到难的过程。
在行为包根目录下打开blocks文件夹,新建一个文件。命名就是你的方块的英文名,这样比较好管理。你也可以新建一个文件夹,把它命名英文名,把所有相关的文件都放进去,方便管理。
方块的文档结构和物品大同小异,具体格式见下。但是,方块的命名分化十分严重。比如你可能可以在一篇文档里看到minecraft:aim_collision,在另一篇文档里看到minecraft:selection_box,在其他文档里看到minecraft:pick_collision。这看起来是3个不同的组件,实际上其实作用相同,都是指定了方块的判定框,只是它们在不同的版本里有不同的命名。上面三个,minecraft:pick_collision是1.17.0的写法,minecraft:aim_collision是1.18.0的写法,而minecraft:selection_box则是1.19.40的写法。你也有可能在一边看见minecraft:destroy_time,另一边看到minecraft:destructible_by_mining。你发现这两个不一样,一个是直接赋值,另一个接的是一个对象。你可能会问,这两个总不是一个组件了吧!不,然而,它们还是起同样作用的组件,只不过前者是1.16.100的写法,后者是1.19.40的写法。
说了这么多,你一定觉得这命名也太乱了吧!没错,确实就是这么乱。目前的版本有1.16.0、1.16.100、1.17.0、1.18.0、1.19.0、1.20.0等等,但我在这篇文档里一律运用1.21.0版本。
这个版本是格式版本,一般来说,如果1.20的第一个测试版发布了,那么那个测试版里就会有1.20.0的格式版本。但也有例外,比如1.21.0的第一个测试版中确实有1.21.0的方块格式版本,却没有物品的。
格式版本控制着这个方块可以访问的特性,目的是防止旧内容遭到破坏。比如以前是minecraft:destroy_time这个名字的组件现在是minecraft:destructible_by_mining这个名字了,但由于它们对应不同格式版本,旧语法在新版本仍有效。由于新的格式版本能访问新版特性,方块的格式版本应该保持最新。
第一个方块

现在就可以开始了。在你新建的文件里写以下代码。
  1. {
  2.   "format_version": "1.21.0", //这个是代码的版本号。
  3.   "minecraft:block": {
  4.     "description": {
  5.       "identifier": "namespace:identifier", //命名空间ID
  6.       "menu_category": {
  7.         "category": "items", //这里是你要放在创造模式物品栏和工作台屏幕的哪个选项卡。可以填construction(建材)、nature(自然)、equipment(装备)、items(物品)或none(无)。如果省略或填none,这个方块将不会出现在创造模式物品栏或工作台屏幕上。
  8.         "group": "", //指定这个物品被放在哪个组里。如果省略、不填或名称不匹配任何现有物品组,那么这个方块将独立在选项卡里。要填本地化字符串。
  9.         "is_hidden_in_commands": false //指定这个方块是否不会出现在命令列表中,如果是false,那么会出现。如果是true,那么不会出现在列表中,而且命令不能使用这个方块作为参数(相当于方块被隐藏了)。
  10.       }
  11.     },
  12.     "components": {
  13.       "minecraft:loot": "loot_tables/example_block_loot.json", //这个是掉落物组件,挖掉方块时会按照这个战利品表掉落物品。
  14.       "minecraft:friction": 0.4, //方块表面的摩擦力。
  15.       "minecraft:map_color": "#00ff00" //方块在地图上的颜色。
  16.     }
  17.   }
  18. }

上面我给出的示例文档里描述了一个基本的方块,有三个组件,分别指定了掉落物、摩擦力和地图颜色。如果想要创造功能更丰富的方块,就必须借助更多组件的帮助。如果想要方块在特定情形作出反应,就需要借助触发器组件的帮助。(触发器组件是普通组件的一种特殊情形。)所以,以后我将列出所有可用的组件。使用时,直接复制,粘贴到与示例组件同级的位置就好了。

渲染

这一期,我们还要给方块赋予一个纹理。最常见的方法是打开资源包根目录下blocks.json文件,写入如下代码。
  1. {
  2.   "方块ID": { //这里其实就是你刚才写的方块命名空间ID,简称方块ID。官方说必须写命名空间ID,但经过测试,似乎不写命名空间,只写冒号后面的ID也可以正常工作。不推荐不写命名空间。
  3.     "textures": "起一个短名", //这里如果没什么特殊需求,建议直接写方块ID,当然也可以其他的,跟下面对得上就行,怎么开心怎么来。
  4.     "sound": "amethyst" //方块发出的声音。可以写stone、wood、cloth等等。
  5.   }
  6. }
然后打开textures文件夹下terrain_texture.json,把下面的代码粘贴进去。
  1. {
  2.   "texture_data": {
  3.     "这里写之前起的短名": {
  4.       "textures": "textures/blocks/test" //这里就是你的纹理的路径。不需要后缀,只需要保证它指向了一张正方形的图片即可。
  5.     }
  6.   }
  7. }
我之前在物品文档中提到过登记表,指item_texture.json。其实这个文件就相当于方块纹理的登记表。


在textures文件夹下新建blocks文件夹,打开,随便一张正方形图片扔进去,改名成你刚才写的名字(刚才的示例里是test,那就改成test.png)。其实这里没那么严格,照片格式只要是.tga、.png、.jpg中的一种就好了。然而如果图片后缀是.jpg,我建议你把图片转换格式成.png。是转换格式,不是单纯改后缀!如果文件同名而后缀不同,那么按.tga > .png > .jpg的顺序运用。
以.tga为后缀的图片用于纹理被渲染时的染色,比如草方块、树叶、皮革、羊等等可以被染色的东西。

打开游戏,你应该能在物品选项卡里找到你新增的方块,纹理是你刚才添加的图片。不过它的名字是乱码。如果要让它显示成正常名字,那就退出游戏,打开资源包根目录下的texts文件夹,打开zh_CN.lang,在新的一行里输入以下这行内容。
  1. tile.命名空间ID.name=方块名字

其中,方块名字随便写,注意命名空间ID后面还有个.name(这是格式版本为1.16.100+的物品没有的)!另外,这里不能换行,也不能用\\转义,但可以用/tellraw或/titleraw命令中的%s功能。方块名字太长的话,可能会被截断。

再次打开游戏,你应该能正常看到一个你的方块了。有一个例外是,如果你给方块的纹理是半透明或者完全透明的,那么到游戏里透明部分会变黑,或者半透明部分会(部分)变得不透明。这个可以通过一个组件解决,我们下期会学到这个组件。
总结

下一期,我们就开始讲方块组件。与物品组件不同,我会按照类别讲方块组件,比如下期讲管渲染的方块组件,然后讲管碰撞箱的方块组件等等。如果你听了上面的这么多东西,有些不明白,我会提供一个模板包,按照这个无脑改就行了。
模板包,请解压.zip


第九期 第十期 第十一期
来源:https://klpbbs.com/thread-82444-1-2.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

21

主题

185

回帖

429

积分

中级会员

积分
429
真摯的承諾

21

主题

185

回帖

429

积分

中级会员

积分
429
2023-1-12 11:01:18 | 显示全部楼层 IP:美国 来自 美国
这是很有用的附加包的教程,我要好好学习学习,感谢楼主分享的教程!
回复 支持 反对

使用道具 举报

24

主题

165

回帖

408

积分

中级会员

积分
408
小天吖~

24

主题

165

回帖

408

积分

中级会员

积分
408
2023-5-23 20:32:44 | 显示全部楼层 IP:美国 来自 美国
十分感谢分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

22

主题

162

回帖

385

积分

中级会员

积分
385
月亮岛

22

主题

162

回帖

385

积分

中级会员

积分
385
2024-5-17 13:00:11 | 显示全部楼层 IP:美国 来自 美国
似乎用不了了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|MCBBBS我爱你 | 萌ICP备20249110号

GMT+8, 2025-4-14 14:28 , Processed in 0.198798 second(s), 41 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.