UID82897性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-7-23最后登录1970-1-1
| 本帖最后由 Cat_Anchor 于 2024-3-9 22:21 编辑
前言
|
今天,我们不讲别的,就回到最初的起点——manifest.json所在的根目录,来看看这里能搞出什么名堂。
| | 内容文件
| 首先,在行为包根目录和资源包根目录下都可以创建一个contents.json,但是这个文件对于游戏内容来说没有作用——它不会添加任何内容,或者作出任何更改。这个文件,正如它的名字(contents即“目录”),是用来存储“附加包里有什么”的一个文件。无需手动填写这个文件,因为游戏可以自动生成这个文件的内容。
在附加包根目录下创建一个contents.json,里面写以下代码。
没错,就是写一个英文大括号。然后启动游戏,进入一个世界(这个世界得装载了你的附加包),游戏会自动帮你把内容填进文件里。退出你的世界,然后来到附加包根目录下。打开contents.json,你应该会惊奇地发现里面多出了好多内容。
有时候MC加载附加包时会发生混乱,这种情况更可能会在有成千上万个文件的大型附加包中出现。生成这个文件的好处是游戏可以直接知道附加包里有什么,因此附加包的运行速度会更快,坏处是以后添加文件时会引发错误。因此,我建议在你的附加包完成之后再创建contents.json。
| | 纹理列表
| 在资源包根目录下textures文件夹下可以创建一个textures_list.json,与contents.json相同,这个文件对于游戏内容来说也没有作用。
这个文件里应该列出所有纹理的路径。在资源包根目录下textures文件夹下创建一个textures_list.json,里面写以下代码。
- [
- "blocks/test.png",
- "items/test.png" //可以有很多这样的路径
- ]
复制代码
MC加载纹理时很容易发生混乱,各种纹理很可能不会加载到它原本应该在的位置,导致纹理错乱。RenderDragon渲染引擎似乎有最多4096个纹理文件的限制,而原版已经使用了近千个纹理文件,因此纹理数量过多时应该创建此文件。这个文件不能由游戏自动生成,除非借助脚本一类的工具,你只能手动输入所有内容。
如果文件里包含不存在的纹理路径,游戏会输出内容日志。如果实际存在的纹理路径不包含在这个文件里,似乎不会有任何提示。
正确填写这个文件后,游戏就会知道需要加载的纹理到底有多少以及它们在哪里,这会提高性能并减少纹理错乱及崩溃的可能性。
| | 错误包的图标
| 把一张正方形的图片重命名成bug_pack_icon.png,扔到资源包根目录下,就成功了。这个用于游戏检测到无效的包时的包的图标。需要把这个资源包装到全局资源下才可以实现效果。 | | 生物群系设置
| 在资源包根目录下新建biomes_client.json,打开,写入以下代码。
- {
- "biomes": {
- "the_end": { //the_end是生物群系的ID
- "water_surface_color": "#7B11CB", //生物群系内的水的颜色
- "fog_identifier": "minecraft:fog_the_end", //生物群系内的迷雾
- "water_surface_transparency": 0.9 //生物群系内的水的透明度,值越小越透明
- }
- }
- }
复制代码 这个文件用于控制生物群系的迷雾和水的设置。 | | 加载信息
| 在资源包根目录下新建loading_messages.json,打开,写入以下代码。
- {
- "beginner_loading_messages": [ //加载提示的文字似乎分阶段显示,玩得更久,显示的文字种类也就更多。这是最开始玩游戏时的提示。
- "beginnerTips.1" //填写翻译关键字(.lang文件中的键名)。
- ],
- "mid_game_loading_messages": [ //这是玩游戏一段时间后的提示。
- "beginnerTips.1",
- "midgameTips.1"
- ],
- "late_game_loading_messages": [ //这是多次玩游戏后的提示。
- "beginnerTips.1",
- "midgameTips.1",
- "lategameTips.1"
- ],
- "editor_loading_messages": [ //处于编辑器模式时加载项目的提示。
- "beginnerTips.1",
- "midgameTips.1",
- "lategameTips.1"
- ],
- "realms_loading_messages": [ //处于 Realms 中时加载的提示。
- "tips.realms.1"
- ]
- }
复制代码 这个文件用于修改加载世界时的提示文字。 | | 闪烁标语
| 在资源包根目录下新建splashes.json,打开,写入以下代码。
- {
- "splashes": [ //要加载的全部闪烁标语。一般来说,这些闪烁标语会完全取代原版的所有闪烁标语,除非can_merge参数为true。
- "一条闪烁标语",
- "又一条闪烁标语" //可以有很多条
- ],
- "can_merge": true, //决定这些闪烁标语是否与原版和/或其他附加包的闪烁标语“融合”,即决定这些闪烁标语是新增还是取代。设置为true就是新增,设置为false就是取代。
- "conditional": [ //在某种条件下启用或禁用某条或某些闪烁标语。
- { //一条规则
- "requires": { //需要以下条件满足
- "platforms": [ //需要平台为...
- "android"
- ],
- "treatments": [ //需要treatment(即热加载资源包)为...(这里可能指定的是treatment标签)
- "mc-is-beta"
- ],
- "stores": [ //需要存储/商店为...
- "none"
- ]
- },
- "splashes": [ //闪烁标语
- "§a测§b试§c版§d!§e!§f!" //这里也可以用§改变颜色或格式
- ]
- }
- ]
- }
复制代码
这个文件用于控制闪烁标语,就是在标题右边来回跳动的黄色文字。
一些信息从1.16.0.57的更新日志中找到,可能不准确或已被移除。
| | 声音设置
| 在资源包根目录下新建sounds.json,打开,写入以下代码。
- {
- "entity_sounds": {
- "entities": {
- "supplementary:moobloom": { //实体的ID
- "events": { //事件
- "ambient": "mob.cow.say", //ambient是原版内置的事件,指定实体空闲时播放的音效
- "death": "mob.cow.hurt", //实体死亡时播放的音效
- "hurt": "mob.cow.hurt", //实体受伤时播放的音效
- "step": { //这里是实体走路时播放的音效,可以接一个对象
- "pitch": [ //声调,这里是0.9到1.1的随机数值
- 0.9,
- 1.1
- ],
- "sound": "mob.cow.step", //声音id
- "volume": 0.65 //音量
- }
- },
- "pitch": [ //声调,这里是0.8到1.2的随机数值
- 0.8,
- 1.2
- ],
- "volume": 1 //音量
- }
- }
- }
- }
复制代码
这个文件用于控制声音播放。
| | 语言文件
| 基岩版的资源包支持自定义语言,需要把资源包放进全局资源里才能出现新的语言选项。
首先,在texts文件夹里新建一个aa_AA.lang,这里就与zh_CN.lang是一样的道理。
然后打开languages.json,写以下代码。
- [
- "aa_AA" //这里是语言的ID,需要和文件名匹配。
- ]
复制代码
然后打开language_names.json,写以下代码。
- [
- [
- "aa_AA", //需要与上文的语言ID匹配。
- "语言名称 (使用语言的地区)" //这里可以随便改,是在设置-语言里能看到的。
- ]
- ]
复制代码
如果你把这个资源包装载到全局资源里,重启游戏,在设置-语言选项里就能看到你新增的语言了。选择这个语言,aa_AA.lang文件中的翻译字符串就会启用。如果游戏遇到了没有对应翻译的翻译关键字,游戏会把它自动翻译为英文。这就是为什么选择aa_AA语言后大部分选项都变成了英文的原因。(除非你在aa_AA.lang里定义了这些选项对应的翻译关键字。)
| | 总结
|
这一期,我们学习了附加包根目录下可以有哪些文件。下期,我们将学习如何给方块和物品加上动态纹理。
|
|
|