关于本手册
本手册讲解 ACTION GAME MAKER 随附的官方系统「存档・暂停・选项菜单」中存档画面与读档画面的使用方法,内容包括:如何安装、画面的构成、存档位的规则、缩略图的生成方式、从游戏中调用的方法,以及想要改造时该改哪里。
存档・读档本身(「保存游戏数据」「读取游戏数据」等动作的设置)请参阅另一份手册。本手册只聚焦于驱动已经准备好的菜单。
这套系统能做什么
官方系统是把存档画面、读档画面、暂停菜单、选项菜单打包成一套的成品。画面、存档位、确认对话框、手柄操作以及 9 种语言的文案一开始就已齐备,因此无需自己搭建菜单就能加入存档功能。
| 想做的事 | 本系统的处理方式 |
|---|---|
| 让游戏暂停并弹出菜单 | 暂停菜单(选项/存档/读档/退出游戏/返回) |
| 让玩家在任意位置存档 | 存档画面(10 个位) |
| 让玩家从上次继续 | 读档画面 |
| 从最近的自动存档重新开始 | 自动存档位(最上一行・专用配色) |
| 让玩家分辨是哪份数据 | 每个位上都有缩略图・地图名・保存日期时间 |
| 音量・画面・语言・按键设置 | 选项菜单(本手册不涉及) |
安装方法
- 打开素材面板,点击上方的「管理官方系统…」。
- 从一览中选择「存档・暂停・选项菜单」,点击「安装」。
- 状态变为「已安装」即完成。
安装后,以下内容会被放入项目中。
| 放置的内容 | 作用 |
|---|---|
res://ui/OfficialMenuSystem/pause_menu.tscn |
暂停菜单(进入存档・读档的入口) |
res://ui/OfficialMenuSystem/SaveMenu/save_menu.tscn |
存档画面 |
res://ui/OfficialMenuSystem/SaveMenu/load_menu.tscn |
读档画面 |
res://ui/OfficialMenuSystem/SaveMenu/save_slot.tscn |
单个存档位的外观 |
res://ui/OfficialMenuSystem/OptionMenu/OptionMenu.tscn |
选项菜单 |
res://ui/OfficialMenuSystem/menu_theme.tres |
整个菜单的外观(主题) |
Autoload SaveInfoManager |
存档位信息与缩略图的读写 |
Autoload SettingsManager |
选项菜单设置的保存 |
这 2 个 Autoload 会在安装时自动注册。 手动删除会导致菜单无法运作,请保持原样。
想取消时,请点击同一画面的「移除」。安装后你自己改写过的文件会被保留,所以改造过的画面不会消失。
从游戏中调用
存档画面和读档画面被设计为通过暂停菜单打开。游戏侧需要准备的只有「打开暂停菜单」这一步。
- 打开玩家等始终在运作的对象的可视化脚本。
- 制作按下暂停键时的转换。
- 在转换目标上放置「显示菜单场景(OpenMenu)」,并把菜单场景指定为
pause_menu.tscn。
关闭用的是「隐藏菜单(CloseMenu)」。按下暂停菜单的「返回」时,随附的可视化脚本会负责关闭,因此游戏侧不需要另行准备。
按钮与可视化脚本的关联
暂停菜单的按钮被设计为按下时发出与按钮名同名的信号。
| 按钮(节点名) | 发出的信号名 | 随附的可视化脚本会做什么 |
|---|---|---|
Option |
Option |
显示选项菜单 |
Save |
Save |
显示存档画面 |
Load |
Load |
显示读档画面 |
Exit |
Exit |
经过确认对话框后退出游戏 |
Back |
Back |
关闭菜单 |
在存档画面・读档画面一侧,按下存档位时会发出 save / load 信号,并一并带上被按下的存档位编号。随附的可视化脚本接收后,执行存档/读档的动作。
想增加按钮时也遵循同样的约定。 在暂停菜单的 MenuBar/VBoxContainer 中添加 Button,其节点名就会直接成为信号名。之后只要在 pause_menu_manager.vs(附加在暂停菜单内 PauseMenuManager 上的可视化脚本)中,添加一个以该名称信号开始的转换即可运作。
手柄的 A / B 键会在菜单打开时自动加入 ui_accept / ui_cancel,因此一开始就能用键盘和手柄两种方式进行确定・取消。取消(ui_cancel)与「返回」同等对待。
存档画面・读档画面的构成
两个画面都是 11 个位。
- 最上一行:自动存档位
- 其下:01 〜 10 共 10 个位
每个位上会显示以下内容。
| 显示 | 内容 |
|---|---|
| 编号 | 01 〜 10。自动存档位为空白 |
| 缩略图 | 保存时的画面(256×144) |
| 地图名 | 保存时所在地图的名称 |
| 保存日期时间 | 2026/08/03 16:15 的形式 |
没有数据的位会显示「NO DATA」。
自动存档位无法手动保存。 它没有编号,通过「自动存档」的文字和该位的橙色加以区分;在存档画面中按下它会弹出「无法保存到自动存档位」的提示。只有游戏侧执行自动存档时,这个位才会有内容。
存档在按下之后会弹出确认对话框。在读档画面中按下没有数据的位时,弹出的是提示信息而非确认对话框。
另外,「地图名」直接使用当时显示的地图的节点名。如果想显示给玩家看的名称,请事先把地图的节点名改成易懂的名字(找不到时会显示「未知」)。
缩略图
缩略图拍摄的是「打开存档画面前一刻的游戏画面」。菜单不会入镜就是这个原因。
手动存档时
请在打开存档画面之前,经过插件动作「SaveThumbnail」。
- 在添加动作的画面中打开「其他动作」。
- 选择「OfficialPlugin」标签页的「Save/存档」分类。
- 选择「SaveThumbnail」。
放置位置是打开暂停菜单处,或打开存档画面的前一刻。如果没有经过这个动作,就会使用之前拍摄的缩略图(若一次都没拍过则没有缩略图)。
自动存档时
什么都不用放。 SaveInfoManager 会接收自动存档完成的通知,并自动把那一刻的画面作为缩略图。
文件的存放位置
存档分为两套文件。存档本体由引擎生成,显示在画面上的信息由本系统生成。
| 文件 | 生成方 | 内容 |
|---|---|---|
user://save_data_<编号>.actgd |
引擎 | 存档本体(变量、场景的状态等) |
user://save_data_<编号>_info.json |
本系统 | 地图名、保存日期时间 |
user://save_data_<编号>_thumb.jpg |
本系统 | 缩略图 |
user://auto_save_data.actgd |
引擎 | 自动存档本体 |
user://auto_save_data_info.json / _thumb.jpg |
本系统 | 自动存档的显示用数据 |
文件名中的编号从 0 开始。 画面上的「01」对应存档位 0,「10」对应存档位 9。在游戏侧的动作中指定存档位编号时,也请从 0 开始数。
_info.json 和 _thumb.jpg 是与存档本体不同的文件。只删除其中一方,就会出现内容还在但画面上显示 NO DATA(或相反)的状态。删除时请一并删除。
改造
安装后的文件可以直接编辑。以下整理了常改动的地方。
| 想改变的内容 | 要改的地方 |
|---|---|
| 画面的外观・配色・字体 | menu_theme.tres |
| 单个存档位的排布・大小 | SaveMenu/save_slot.tscn |
| 画面标题和按钮的配置 | SaveMenu/save_menu.tscn / load_menu.tscn |
| 存档/读档的流程本身 | 各场景中 〜Manager(Area2DGameObject)上的可视化脚本 |
| 增加按钮 | 在暂停菜单的 MenuBar/VBoxContainer 中添加 Button |
| 文案(9 种语言) | OptionMenu/translations/options_menu.csv |
| 存档位的数量 | SaveMenu/save.gd 和 load.gd 中的 for i in range(10) |
更改存档位数量时,请把存档画面和读档画面两边都改成相同的数量。只改一边的话,就会出现能保存却不显示在一览中的位。
options_menu.csv 中收录了 9 种语言的文案(英语、日语、简体中文、繁体中文、韩语、葡萄牙语、西班牙语、德语、俄语)。增加键需要在 Godot 编辑器中重新导入,因此如果只是想改文字,改写现有键的内容会更安全。
注意事项
- Autoload 的
SaveInfoManager是必需的。 删掉它就读不到存档位的信息,画面会全部变成 NO DATA。在整理项目设置的 Autoload 时,注意不要把它一并删掉。 - 自动存档位无法手动保存。 这并不是「11 个位中有 1 个填不上」,而是这个位本来就如此。
- 缩略图只有在经过「SaveThumbnail」时才会更新。 如果做成直接跳转到存档画面,缩略图就会一直停留在之前的场面。
- 地图名就是地图的节点名。 系统中没有另设显示用别名的机制。
- 存档位编号从 0 开始。 与画面上的显示(01〜10)相差 1。
- 文案较长的语言会撑坏排版。 「自动存档」在俄语和葡萄牙语中会变长,若放入未固定宽度的 Label 中就会把旁边挤出去。替换文案时,也请看看其他语言的长度。
- 文字颜色请交给
LabelSettings一侧设置。 对已设置LabelSettings的 Label,主题的文字颜色(add_theme_color_override)不起作用。 - 大幅改动存档画面外观时,请不要更改
save_slot.tscn中SlotButton这个名称。把焦点定位到第一个位的处理正是在找这个名字。 - 官方系统一览中显示「需要修复」时,请点击同一画面的「修复」。如果是文件缺失则无法修复,此时先「移除」再重新安装。