第25天的 Minecraft 学习记录,本来只是想按惯例测一个新存档,结果在“拼好种”这个种子地图里一路推进,恰好到 14:14 这个时间点走进了返回传送门,看到了久等的终末之诗。过程中为了搞清楚屏幕上的那层文字、Boss 血条、标题提示到底是怎么渲染出来的,我把 overlay 这个概念从游戏里到资源包层面都完整测了一遍。这篇文章就把这次实验的过程、命令、资源包写法以及踩过的坑整理成一份可复现的笔记,计划学习指令和资源包的朋友可以直接跟着操作。
1. overlay 是什么,为什么要研究它
1.1 overlay 在游戏中的通俗解释
overlay 这个词在不同领域含义略有差异。最近“overlay相机”在网络上有一定热度,它指的是相机界面上的滤镜叠加层、画面蒙版或实时渲染效果。放在 Minecraft 中,overlay 的含义也是一脉相承的:它是叠在游戏主画面之上的一层内容,这层内容不影响 3D 场景本身的渲染,但会额外提供文字、图标、进度条或者动画。
举个最直观的例子:当你进入终末之诗,看到一段缓慢滚动的文字铺满整个屏幕时,游戏世界其实还停留在末地返回传送门附近。那一大段文字就是客户端渲染出来的 overlay 层,类似视频剪辑里的“字幕轨道”,底层画面仍然存在,但 overlay 层用半透明背景或黑色背景把视线暂时带去了另一个维度。
在 Minecraft 中,overlay 可以细分为很多种,包括 HUD 信息层、计分板侧边栏、Boss 血条、标题文字、动作栏消息、聊天框消息等。它们都运行在 UI 渲染阶段,与主世界的方块渲染相互独立。理解这套逻辑后,你就能明白为什么修改资源包可以让终末之诗变成你自己的文案,而不是被锁定在官方文本里。
1.2 终末之诗为什么属于 overlay
Minecraft Java 版中,玩家正常击败末影龙后,从返回传送门回到主世界时,客户端会播放一段完整的“终末之诗”界面。该界面会先以黑屏出现,接着浮现一段英文诗歌,即官方终末之诗,随后展示制作人员名单,最终跳转到主世界出生点。
这段显示过程并不是 Minecraft 的 3D 场景,而是完全由 UI 层接管。在游戏中,它由两个核心资源文件控制:end.txt对应诗歌文本,credits.txt对应制作名单。这两个文件位于客户端的assets/minecraft/texts/目录下,正常情况下玩家看不到,因为游戏会从 jar 包读取。但从 overlay 的角度看,它们就是典型的全屏文字叠加层。修改这两个文本文件,就能在保持游戏本体逻辑不变的情况下,把终末之诗替换成自定义内容。
1.3 Minecraft 中 overlay 的常见表现形式
为了后续实验方便,我把 Minecraft 里常见的 overlay 类型整理成一张表:
| overlay 类型 | 触发方式 | 常见用途 |
|---|---|---|
| 标题文字 | /title命令 | 显示大标题、副标题、动作栏提示 |
| Boss 血条 | /bossbar命令 | 显示自定义进度条,常见于服务器 Boss 战 |
| 计分板 | /scoreboard命令 | 显示阵营分数、任务进度、排行榜 |
| 聊天框系统消息 | /say、/tellraw | 向玩家输出气泡消息、超链接、悬浮提示 |
| 终末之诗全屏 overlay | 进入返回传送门 | 展示诗歌和制作人名 |
| 资源包叠加层 | 资源包加载 | 修改上述所有 UI 文本、材质和布局 |
这几种 overlay 中,终末之诗是最容易让人产生“沉浸感”的一种,因为它是全屏显示且伴随缓慢滚动的诗歌。后续的实战里,我会先让它被触发,再用自定义资源包替换文本,从而验证 overlay 的完整链路。
2. 环境准备与版本说明
2.1 游戏客户端与版本选择
本次实验基于 Minecraft Java Edition 进行,示例环境使用 1.20 版本左右的客户端。由于 Minecraft 版本更新频繁,不同版本中部分指令、资源包格式会有细微差异,因此本文给出的命令和配置以常见版本为准,实际操作时请根据你的游戏版本微调。
如果你使用的是基岩版(Bedrock Edition),终末之诗的显示逻辑、资源包路径和 overlay 实现方式与 Java 版差异较大,建议先区分清楚自己当前打开的版本。本文更侧重于 Java 版的指令与资源包机制。
2.2 测试存档“拼好种”的创建
标题中的“拼好种”是本次测试使用的地图种子。Minecraft 中种子决定了地形生成规则,使用同一个种子可以复现同一片世界。打开游戏后,在“单人游戏”页面点击“创建新的世界”,在“更多”选项中找到“种子”输入框,填入“拼好种”,然后创建世界。
需要注意的是,如果不填写种子,游戏会使用随机生成的地形种子,后续操作和定位坐标时无法与本文保持一致。为了能跟着文章一步步复现,建议使用相同种子。进入世界后,建议先把游戏模式调整为“创造模式”或“和平模式”,因为本次测试重点在于 overlay 显示效果,不需要把时间浪费在打怪上。
2.3 使用命令快速定位末地传送门
要进入末地,一般流程是找到要塞并激活末地传送门。在较新版本中,可以使用以下命令直接定位要塞:
/locate structure stronghold如果你使用的版本较旧,可能需要写成:
/locate stronghold命令执行后,聊天框中会返回要塞的坐标。使用传送命令前往要塞:
/tp @s 目标坐标到达要塞后,寻找末地传送门房间。传送门框架上需要放入末影之眼,每个框架都有一定概率在生成时自带末影之眼,缺失的框架需要手动右键放入。放入全部 12 个末影之眼后,传送门会激活,跳入传送门即可进入末地。
这里有一个提示:在创造模式下,你可以直接从物品栏中拿出末影之眼,快速完成填充。这样能让“触发终末之诗”这个实验更快进入正题。
3. 进入终末之诗:官方 overlay 的渲染流程
3.1 末影龙战斗与返回传送门的生成
末地一开始会有大量黑曜石柱、末影水晶和末影龙。正常流程是摧毁末影水晶,然后击败末影龙。末影龙被打败后,会在末地岛中心的返回传送门处生成传送门结构,传送门周围还会出现一个龙蛋。
在实际测试中,如果不想打龙,可以切换到创造模式,直接使用指令清除末影龙:
/kill @e[type=minecraft:ender_dragon]这句话的作用是杀死当前区域内所有末影龙。由于创造模式不会受到波及伤害,执行后末影龙会消失,返回传送门会正常生成。这个方式非常适合反复测试终末之诗,不需要每次都完整打一遍龙。
3.2 返回传送门与终末之诗的触发条件
返回传送门生成后,玩家跳入传送门时,也会从末地传送到主世界。Java 版客户端在检测到这个传送行为时,会判断玩家是否已经成功“完成”末地流程,从而触发全屏终末之诗 overlay。
这里有一个细节值得注意:终末之诗并不总是在跳入传送门后立刻出现,它也取决于玩家是否已经看过一次。如果此前已经触发过,再次返回时可能会直接跳过,进入主世界出生点。测试时如果发现没有播放,可以在游戏选项里找到“跳过终末之诗”相关的设置,或者使用全新的玩家存档来验证。
3.3 14:14 这个时间节点和 overlay 的关系
标题里的“14:14”,是本次测试画面进入终末之诗的时间点。在录屏或复盘时,这个时间点可以作为判断 overlay 是否正常显示的关键锚点:如果 14:14 进入传送门后,画面开始变黑并滚动出文字,说明 overlay 层已被客户端正常唤起;如果画面直接跳回主世界,则说明终末之诗被跳过或资源文件读取失败。
对于开发者来说,记录明确的时间点是一种很好的调试习惯。测试 UI 类功能时,把“操作时间”和“预期表现”写入日志,能有效定位是逻辑没触发,还是 UI 渲染没跟上。
4. 实战:用资源包自定义终末之诗 overlay
4.1 创建资源包目录结构
资源包是 Minecraft 提供的一种扩展机制,它可以覆盖原版纹理、模型、音乐,当然也包括end.txt和credits.txt。我们先把资源包的目录结构建好。
在.minecraft/resourcepacks/目录下新建一个文件夹,例如my_end_overlay。然后在文件夹中创建assets/minecraft/texts/路径。使用 Windows 的 CMD 或 macOS/Linux 的终端,可以执行以下命令:
mkdir -p my_end_overlay/assets/minecraft/texts cd my_end_overlay touch pack.mcmeta执行完成后,目录结构如下:
my_end_overlay/ └── assets/ └── minecraft/ └── texts/4.2 编写 pack.mcmeta 与自定义 end.txt
资源包必须包含pack.mcmeta文件,用于声明资源包的描述和格式版本。创建文件后写入以下内容:
{ "pack": { "description": "自定义终末之诗 overlay 测试", "pack_format": 15 } }其中pack_format是资源包格式版本号,不同 Minecraft 版本对应的数值不同。1.20 左右的版本通常可以使用 15,如果你的游戏版本不同,请以实际版本对应的格式号为准,否则资源包会被判定为不兼容。
接下来,在assets/minecraft/texts/目录下创建end.txt,写入自定义终末之诗文本:
拼好种测试存档。 在这一天,我们用 overlay 的方式看到了终末之诗。 时间停留在 14:14。 - 学习玩我的世界 第25天保存文件后,打开 Minecraft 的“选项”->“资源包”,把刚才的my_end_overlay加入可用列表并激活,然后重新进入游戏。
4.3 验证资源包是否成功加载
激活资源包后,再次完成进入返回传送门的流程。如果资源包加载成功,终末之诗会显示为你在end.txt中编写的自定义内容,而不是官方文本。如果仍然看到原始英文诗歌或中文翻译版本,说明资源包没有被正确读取。
检查顺序如下:
- 确认
pack.mcmeta中的 JSON 格式没有语法错误。 - 确认
pack_format与游戏版本匹配。 - 确认
end.txt的路径是assets/minecraft/texts/end.txt。 - 确认在游戏中已经点击“完成”,且资源包处于最上方激活状态。
这个实验的意义在于,它证明终末之诗本身是一个可被外部覆盖的 overlay 资源。你不仅可以在服务器中自定义欢迎文案,还可以把制作人员名单、任务提示等 UI 文本统一做成资源包。
4.4 使用 Title 与 Bossbar 模拟实时 overlay
除了替换终末之诗,我们还可以直接用指令在屏幕上叠加一层临时提示,方便测试时快速验证 overlay 效果。以标题文字为例,在聊天框输入:
/title @p title {"text":"[Overlay] 进入终末之诗","color":"gold"} /title @p subtitle {"text":"自定义资源包正在读取","color":"yellow"} /title @p actionbar {"text":"学习玩我的世界第25天 · 14:14","color":"green"}这三条指令分别对应屏幕中央大标题、小副标题以及物品栏上方的动作栏消息。执行后,玩家屏幕上会依次显示三组文字,它们都属于典型的 overlay 渲染层。
Boss 血条也是一种很常见的 overlay 控件。使用以下命令可以创建一个名为“终末之诗”的血条:
/bossbar add end_poem 终末之诗 /bossbar set end_poem color purple /bossbar set end_poem max 100 /bossbar set end_poem value 50 /bossbar set end_poem players @a /bossbar set end_poem visible true执行后,屏幕顶部会出现一条紫色 Boss 血条,颜色、最大进度、当前进度、可见玩家都可以动态调整。在服务器活动中,这个机制经常被用来展示活动倒计时或 BOSS 实时血量。
5. 常见问题与排查思路
在实际测试 overlay 和终末之诗的过程中,最容易遇到几类问题。下表整理了常见现象、可能原因和解决思路:
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 进入返回传送门后直接回主世界,没有终末之诗 | 玩家已经看过一次终末之诗,被系统跳过 | 使用新玩家存档测试,或在设置中检查相关选项 |
| 资源包加载后仍显示官方终末之诗 | end.txt路径错误或pack_format不匹配 | 核对路径和资源包格式版本号,重新加载资源包 |
| 指令执行后屏幕没有文字 | 指令的玩家选择器或维度不匹配 | 确认@p在线,确认执行者权限开启 |
| Bossbar 创建后不显示 | 没有设置可见或未添加玩家 | 执行visible true,并使用players @a添加玩家 |
| 终末之诗文本出现中文乱码或排版混乱 | 文本文件编码不是 UTF-8 | 将end.txt保存为 UTF-8 无 BOM 格式 |
选择器@e[type=minecraft:ender_dragon]无效 | 游戏版本较旧,实体类型名不同 | 在高版本中使用minecraft:ender_dragon,旧版本去掉minecraft:前缀 |
排查此类问题时,建议遵循“先命令、后资源、再存档”的顺序。先用/title这类简单的 overlay 指令确认游戏指令系统正常,再加载资源包确认文件路径,最后排除存档和客户端缓存问题。
6. 最佳实践与工程建议
6.1 测试 overlay 时的统一流程
如果你在服务器或整合包中频繁测试 overlay 功能,建议固化一套测试流程,避免每次重复踩坑。我的习惯是准备一个专门用于 UI 实验的存档,使用创造模式,坐标为固定起点,并把以下几条命令保存为服务器命令方块或函数文件:
# 清除末影龙,生成返回传送门 kill @e[type=minecraft:ender_dragon] # 传送玩家到返回传送门附近 tp @p 0 100 0 # 输出测试提示 title @p title {"text":"Overlay Test","color":"gold"}这样每次测试只需要一次性执行函数,就能快速进入验证场景。特别是在存档或服务器中反复调整终末之诗内容时,这种方法可以极大节省时间。
6.2 资源包的版本兼容与命名规范
资源包看起来简单,但版本兼容性是最大的坑。不同 Minecraft 版本对pack_format的要求不同,如果沿用旧资源包不修改版本号,新客户端通常会提示“资源包不兼容”。遇到这种情况,优先确认当前客户端版本对应的pack_format数值,而不是直接修改 JSON 中的其他字段。
命名规范方面,文件夹名称建议使用小写英文和数字,避免中文、空格或特殊字符导致路径解析异常。资源包描述信息可以写成中文,方便在游戏内识别,但文件夹名不建议出现中文。
6.3 overlay 内容的性能与可读性
overlay 虽然只是 UI 层渲染,但也不宜过度堆砌。一次性在屏幕上同时显示标题、副标题、动作栏、Bossbar 和聊天消息,会给玩家造成严重的信息干扰。在真实项目中,每类 overlay 都应该有明确的职责定位:
- 标题文字:用于阶段切换、重大事件提示。
- 副标题:用于补充信息,如任务目标名称。
- 动作栏:用于短时状态,如冷却时间、进度提示。
- Bossbar:用于长时间进度展示,如活动倒计时。
- 聊天框消息:用于可回看信息,如奖励记录、系统通知。
保持“每层只承载一个核心信息”的原则,既能提升玩家体验,也能降低开发调试时定位问题的难度。
6.4 原版文件与自定义内容的边界
资源包虽然可以覆盖终末之诗文本,但它不会改变游戏本身的流程逻辑。这意味着,无论你把终末之诗改成什么内容,玩家的底层行为仍然是“击杀末影龙 -> 进入返回传送门 -> 回到主世界”。在向玩家或团队成员解释机制时,要区分“内容覆盖”与“逻辑修改”的边界。
如果你需要让终末之诗具备更复杂的交互,比如显示玩家名、触发计分板奖励、改变玩家状态,那就不能只靠资源包了。此时合适的方向是编写数据包,或者借助模组 API,在保留原版体验的基础上扩展功能。
7. 从第25天出发,下一步可以继续学什么
这次“学习玩我的世界第25天”的实验,从“拼好种”存档开始,到 14:14 进入终末之诗结束,核心收获可以总结成三点:
- 理解了 overlay 在 Minecraft 中的含义,并能区分终末之诗、Bossbar、标题、动作栏等不同 overlay 层。
- 掌握了自定义终末之诗文本的资源包写法,能够替换
end.txt和credits.txt。 - 熟悉了触发末影龙返回传送门的流程,以及用指令快速进入测试状态的技巧。
如果你对这个方向感兴趣,下一步可以深入研究数据包中的函数系统,把终末之诗从“显示文字”升级成“执行指令序列”,比如在终末之诗结束后自动执行奖励命令、传送到出生点、触发计分板统计等。也可以进一步研究 Bossbar 的完整属性、动作栏的 JSON 文本组件格式,配合聊天框打造一套完整的服务器活动 UI。
第 25 天的 overlay 测试到这里先收个尾,下一轮我会把这次用到的指令整理成一个函数包,到时候再继续更新。如果你也玩 Minecraft 的指令或资源包,欢迎在评论区分享你的测试种子,以及你自定义过的最难忘的终末之诗内容。