开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[BE教程] 附加包教程:31.附加包根目录

 发表于 2023-3-18 17:48:21 来自手机|显示全部楼层|阅读模式 IP:天津
本帖最后由 Cat_Anchor 于 2024-3-9 22:21 编辑

前言

今天,我们不讲别的,就回到最初的起点——manifest.json所在的根目录,来看看这里能搞出什么名堂。
内容文件
首先,在行为包根目录和资源包根目录下都可以创建一个contents.json,但是这个文件对于游戏内容来说没有作用——它不会添加任何内容,或者作出任何更改。这个文件,正如它的名字(contents即“目录”),是用来存储“附加包里有什么”的一个文件。无需手动填写这个文件,因为游戏可以自动生成这个文件的内容。
在附加包根目录下创建一个contents.json,里面写以下代码。
  1. {}
复制代码

没错,就是写一个英文大括号。然后启动游戏,进入一个世界(这个世界得装载了你的附加包),游戏会自动帮你把内容填进文件里。退出你的世界,然后来到附加包根目录下。打开contents.json,你应该会惊奇地发现里面多出了好多内容。
有时候MC加载附加包时会发生混乱,这种情况更可能会在有成千上万个文件的大型附加包中出现。生成这个文件的好处是游戏可以直接知道附加包里有什么,因此附加包的运行速度会更快,坏处是以后添加文件时会引发错误。因此,我建议在你的附加包完成之后再创建contents.json。
纹理列表
在资源包根目录下textures文件夹下可以创建一个textures_list.json,与contents.json相同,这个文件对于游戏内容来说也没有作用。
这个文件里应该列出所有纹理的路径。在资源包根目录下textures文件夹下创建一个textures_list.json,里面写以下代码。
  1. [
  2.   "blocks/test.png",
  3.   "items/test.png" //可以有很多这样的路径
  4. ]
复制代码

MC加载纹理时很容易发生混乱,各种纹理很可能不会加载到它原本应该在的位置,导致纹理错乱。RenderDragon渲染引擎似乎有最多4096个纹理文件的限制,而原版已经使用了近千个纹理文件,因此纹理数量过多时应该创建此文件。这个文件不能由游戏自动生成,除非借助脚本一类的工具,你只能手动输入所有内容。
如果文件里包含不存在的纹理路径,游戏会输出内容日志。如果实际存在的纹理路径不包含在这个文件里,似乎不会有任何提示。
正确填写这个文件后,游戏就会知道需要加载的纹理到底有多少以及它们在哪里,这会提高性能并减少纹理错乱及崩溃的可能性。
错误包的图标
把一张正方形的图片重命名成bug_pack_icon.png,扔到资源包根目录下,就成功了。这个用于游戏检测到无效的包时的包的图标。需要把这个资源包装到全局资源下才可以实现效果。
生物群系设置
在资源包根目录下新建biomes_client.json,打开,写入以下代码。

  1. {
  2.   "biomes": {
  3.     "the_end": { //the_end是生物群系的ID
  4.       "water_surface_color": "#7B11CB", //生物群系内的水的颜色
  5.       "fog_identifier": "minecraft:fog_the_end", //生物群系内的迷雾
  6.       "water_surface_transparency": 0.9 //生物群系内的水的透明度,值越小越透明
  7.     }
  8.   }
  9. }
复制代码
这个文件用于控制生物群系的迷雾和水的设置。
加载信息
在资源包根目录下新建loading_messages.json,打开,写入以下代码。
  1. {
  2.   "beginner_loading_messages": [ //加载提示的文字似乎分阶段显示,玩得更久,显示的文字种类也就更多。这是最开始玩游戏时的提示。
  3.     "beginnerTips.1" //填写翻译关键字(.lang文件中的键名)。
  4.   ],
  5.   "mid_game_loading_messages": [ //这是玩游戏一段时间后的提示。
  6.     "beginnerTips.1",
  7.     "midgameTips.1"
  8.   ],
  9.   "late_game_loading_messages": [ //这是多次玩游戏后的提示。
  10.     "beginnerTips.1",
  11.     "midgameTips.1",
  12.     "lategameTips.1"
  13.   ],
  14.   "editor_loading_messages": [ //处于编辑器模式时加载项目的提示。
  15.     "beginnerTips.1",
  16.     "midgameTips.1",
  17.     "lategameTips.1"
  18.   ],
  19.   "realms_loading_messages": [ //处于 Realms 中时加载的提示。
  20.     "tips.realms.1"
  21.   ]
  22. }
复制代码
这个文件用于修改加载世界时的提示文字。
闪烁标语
在资源包根目录下新建splashes.json,打开,写入以下代码。
  1. {
  2.   "splashes": [ //要加载的全部闪烁标语。一般来说,这些闪烁标语会完全取代原版的所有闪烁标语,除非can_merge参数为true。
  3.     "一条闪烁标语",
  4.     "又一条闪烁标语" //可以有很多条
  5.   ],
  6.   "can_merge": true, //决定这些闪烁标语是否与原版和/或其他附加包的闪烁标语“融合”,即决定这些闪烁标语是新增还是取代。设置为true就是新增,设置为false就是取代。
  7.   "conditional": [ //在某种条件下启用或禁用某条或某些闪烁标语。
  8.     { //一条规则
  9.       "requires": { //需要以下条件满足
  10.         "platforms": [ //需要平台为...
  11.           "android"
  12.         ],
  13.         "treatments": [ //需要treatment(即热加载资源包)为...(这里可能指定的是treatment标签)
  14.           "mc-is-beta"
  15.         ],
  16.         "stores": [ //需要存储/商店为...
  17.           "none"
  18.         ]
  19.       },
  20.       "splashes": [ //闪烁标语
  21.         "§a测§b试§c版§d!§e!§f!" //这里也可以用§改变颜色或格式
  22.       ]
  23.     }
  24.   ]
  25. }
复制代码

这个文件用于控制闪烁标语,就是在标题右边来回跳动的黄色文字。
一些信息从1.16.0.57的更新日志中找到,可能不准确或已被移除。
声音设置
在资源包根目录下新建sounds.json,打开,写入以下代码。
  1. {
  2.   "entity_sounds": {
  3.     "entities": {
  4.       "supplementary:moobloom": { //实体的ID
  5.         "events": { //事件
  6.           "ambient": "mob.cow.say", //ambient是原版内置的事件,指定实体空闲时播放的音效
  7.           "death": "mob.cow.hurt", //实体死亡时播放的音效
  8.           "hurt": "mob.cow.hurt", //实体受伤时播放的音效
  9.           "step": { //这里是实体走路时播放的音效,可以接一个对象
  10.             "pitch": [ //声调,这里是0.9到1.1的随机数值
  11.               0.9,
  12.               1.1
  13.             ],
  14.             "sound": "mob.cow.step", //声音id
  15.             "volume": 0.65 //音量
  16.           }
  17.         },
  18.         "pitch": [ //声调,这里是0.8到1.2的随机数值
  19.           0.8,
  20.           1.2
  21.         ],
  22.         "volume": 1 //音量
  23.       }
  24.     }
  25.   }
  26. }
复制代码

这个文件用于控制声音播放。
语言文件
基岩版的资源包支持自定义语言,需要把资源包放进全局资源里才能出现新的语言选项。
首先,在texts文件夹里新建一个aa_AA.lang,这里就与zh_CN.lang是一样的道理。
然后打开languages.json,写以下代码。
  1. [
  2.         "aa_AA" //这里是语言的ID,需要和文件名匹配。
  3. ]
复制代码

然后打开language_names.json,写以下代码。
  1. [
  2.   [
  3.     "aa_AA", //需要与上文的语言ID匹配。
  4.     "语言名称 (使用语言的地区)" //这里可以随便改,是在设置-语言里能看到的。
  5.   ]
  6. ]
复制代码

如果你把这个资源包装载到全局资源里,重启游戏,在设置-语言选项里就能看到你新增的语言了。选择这个语言,aa_AA.lang文件中的翻译字符串就会启用。如果游戏遇到了没有对应翻译的翻译关键字,游戏会把它自动翻译为英文。这就是为什么选择aa_AA语言后大部分选项都变成了英文的原因。(除非你在aa_AA.lang里定义了这些选项对应的翻译关键字。)
总结

这一期,我们学习了附加包根目录下可以有哪些文件。下期,我们将学习如何给方块和物品加上动态纹理。


苦力怕论坛,感谢有您~

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-11-28 17:08

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3