Ren'Py 游戏全回想(Gallery)解锁完全指南
一、什么是 Ren’Py 全回想(Gallery)
1.1 基本概念
全回想(Gallery)是 Ren’Py 引擎内置的图片鉴赏系统,也被称为”CG 图鉴”
1.2 解锁机制
在 Ren’Py 中,回想图片的解锁状态通常由持久化变量(Persistent Variables) 控制。常见的变量命名模式包括:
persistent.gallery_unlocked # 画廊整体解锁标志persistent.unlock_1 # 特定 CG 组解锁persistent.cg_watched # 已观看 CG 列表persistent.seen_images # 已触发图片列表不同的游戏有不同的解锁条件,理解这些条件是解锁回想的关键。
二、方法一:通过游戏内选项直接解锁
2.1 适用情况
这是最简单、最推荐的方式。如果游戏开发者提供了回想解锁选项,你只需要:
-
进入游戏主菜单
-
找到”Extra”( extras )或”游戏室”选项
-
查看是否有”解锁回想”、“全 CG”或类似的选项
2.2 开发者菜单(Developer Menu)
部分游戏在开发者模式下内置了回想解锁功能:
-
快捷键:游戏运行时按下 Shift + D
-
功能:打开开发者菜单,其中可能包含”Unlock Gallery”(解锁画廊)选项
注意:此方法仅适用于开发者未禁用该功能的游戏,且通常仅在未编译的开发版游戏中可用。
三、方法二:修改存档文件解锁回想
3.1 存档文件位置
根据操作系统和安装方式不同,Ren’Py 存档文件可能位于以下位置:
Windows 系统
# Steam/Epic 游戏C:\Program Files (x86)\Steam\steamapps\common\[游戏名]\game\saves\C:\Program Files\Epic Games\[游戏名]\game\saves\
# 其他安装方式[游戏安装目录]\game\saves\
# 便携版游戏[游戏目录]\saves\
# 用户数据目录%AppData%\RenPy\[游戏名]\C:\Users\[用户名]\AppData\Roaming\RenPy\[游戏名]\macOS 系统
~/Library/RenPy/[游戏名]/~/Library/Application Support/RenPy/[游戏名]/[游戏.app包内]/Contents/Resources/autorun/game/saves/Linux 系统
~/.renpy/[游戏名]/~/.local/share/RenPy/[游戏名]/3.2 存档文件格式
Ren’Py 存档通常包含以下文件类型:
| 文件类型 | 说明 | 用途 |
|---|---|---|
| .save | 主存档文件 | 包含游戏进度、变量状态 |
| persist.json | 持久化数据 | 存储全游戏通用的解锁状态(回想、成就等) |
| _reload-2-LT1.save | 自动存档 | 游戏自动保存的进度 |
关键提示: persist.json 是解锁回想的关键文件,因为它存储了所有 CG 的解锁状态。
3.3 修改步骤
第一步:定位存档文件
-
找到游戏的存档目录(参考上表)
-
找到 persist.json 文件
第二步:备份原文件
重要:在修改任何存档前,务必备份原文件!
# 复制一份作为备份copy persist.json persist.json.backup第三步:分析存档结构
用文本编辑器(Notepad++、VS Code 等)打开 persist.json,搜索与回想相关的关键词:
gallerycg_unlockseen_watched_persistent.第四步:修改解锁状态
根据游戏代码,常见的修改模式包括:
模式 A:布尔值解锁
# 原始"persistent.gallery_unlocked": false
# 修改为"persistent.gallery_unlocked": true模式 B:列表解锁
# 原始"persistent.cg_unlocked": []
# 修改为 - 根据游戏不同,数字代表不同的 CG ID"persistent.cg_unlocked": [1, 2, 3, 4, 5, ...]模式 C:整数计数
# 原始"persistent.cg_count": 0
# 修改为 - 设置为游戏总 CG 数"persistent.cg_count": 99第五步:保存并测试
-
保存修改后的文件
-
启动游戏
-
进入回想画廊查看是否解锁
四、方法三:使用 Ren’Py 控制台命令解锁
4.1 什么是 Ren’Py 控制台
Ren’Py 控制台是一个内置的调试工具,允许玩家在游戏运行时执行 Python 代码和 Ren’Py 脚本命令。通过控制台,你可以直接修改变量状态,包括回想解锁标志。
4.2 开启控制台
如果游戏默认未开启控制台,需要手动启用:
对于未编译的游戏(开发版)
-
打开游戏目录
-
找到 options.rpy 文件
-
搜索 config.console
-
确保其值为 True:
config.console = True对于已编译的游戏(发行版)
-
进入游戏根目录
-
进入 renpy 文件夹
-
进入 common 文件夹
-
找到并打开 00console.rpy 文件
-
找到以下行:
# If true, the console is enabled despite config.developer statement being False.config.console = False- 修改为:
config.console = True- 保存文件
4.3 打开控制台
启用后,在游戏中按下 Shift + O(字母 O,不是数字 0)即可打开控制台。特殊情况下:如果 Shift + O 被游戏屏蔽,可以尝试按住 Shift + Alt 然后再按 O,或查看游戏目录下是否有其他说明文档。
4.4 控制台命令参考
查看当前所有变量
dir()查看特定变量值
persistent.gallery_unlockedpersistent.cg_list解锁画廊(常见命令)
# 解锁整个画廊persistent.gallery_unlocked = True
# 解锁所有 CGpersistent.cg_unlocked = True
# 设置 CG 列表(根据游戏不同)persistent.gallery = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]常见变量名模式
不同游戏的变量命名可能不同,以下是一些常见模式:
| 游戏类型 | 可能的变量名 |
|---|---|
| 通用 | persistent.gallery_unlocked |
| DDLC | persistent.special_popup, persistent.autoload |
| 都市恋爱 | persistent.cg_list, persistent.cg_watched |
| 动作/SLG | persistent.watched_h_scenes |
| 剧情向 | persistent.unlock_1, persistent.unlock_2 |
查看游戏内定义
如果不确定游戏的变量名,可以:
# 列出所有 persistent 开头的变量[i for i in dir() if ‘unlock’ in i.lower() or ‘gallery’ in i.lower() or ‘cg’ in i.lower()]
保存修改
修改变量后,通常需要:
renpy.save_persistent()或直接退出游戏,系统会自动保存。
4.5 示例操作流程
假设我们要解锁某个 DDLC 类游戏的全部回想:
1. 按 Shift + O 打开控制台2. 输入: persistent.gallery_unlocked = True3. 按 Enter 确认4. 输入: persistent.cg_list = [1,2,3,4,5,6,7,8,9,10,11,12]5. 按 Enter 确认6. 按 ESC 退出控制台7. 进入回想画廊查看五、方法四:使用第三方工具
5.1 Ren’Py Save Editor
在线版:SaveEditor.top 提供基于网页的 Ren’Py 存档编辑器
功能特点:
-
无需下载软件,直接在浏览器中使用
-
100% 本地处理,保护隐私
-
支持查看和编辑 .save 文件和持久化数据
使用方法:
-
访问 SaveEditor.top
-
上传你的 persist.json 或 .save 文件
-
在可视化编辑器中查找回想相关变量
-
修改解锁状态
-
下载修改后的文件并替换原存档
5.2 Unren 工具包
适用场景:需要解压和分析游戏脚本的高级用户
功能:
-
解包 RPA 压缩包文件
-
反编译 rpyc 脚本文件
-
帮助分析游戏的回想解锁逻辑
5.3 注意事项
-
兼容性:并非所有游戏都兼容存档编辑器,某些游戏使用了自定义加密或校验机制
-
备份:始终在修改前备份原始存档
-
风险:修改存档可能导致游戏崩溃或数据损坏
-
云存档:如果使用 Steam 云存档功能,修改本地存档后可能需要关闭云同步
六、注意事项与常见问题
6.1 注意事项
-
遵守游戏规则
-
仅将本教程用于个人游戏体验优化
-
不要传播修改后的存档或解锁工具
-
部分游戏明确禁止修改存档,使用前请知悉
-
-
备份意识
-
修改存档前务必备份
-
建议同时备份 saves 文件夹和 persist.json
-
-
版本兼容
-
游戏更新后,存档格式可能发生变化
-
修改存档可能导致与新版本不兼容
-
-
加密游戏
-
部分游戏使用了额外的加密或壳保护
-
这类游戏可能无法通过常规方法解锁回想
-
6.2 常见问题
Q:为什么修改了存档但回想没有解锁?
A:可能原因包括:
-
游戏使用的是 .save 文件而非 persist.json 存储解锁状态
-
变量名与预期不符
-
需要重新开档或触发特定事件
-
游戏使用了其他存储机制
Q:控制台打开后输入命令无效怎么办?
A:检查以下几点:
-
确认已按 Enter 键确认输入
-
确认变量名拼写正确
-
部分游戏需要在特定场景/菜单中才能生效
-
尝试输入 renpy.save_persistent() 强制保存
Q:游戏崩溃了怎么办?
A:
-
删除修改后的文件,用备份恢复
-
确认 JSON 格式正确(引号、括号匹配)
-
检查是否修改了不该改的变量
Q:如何找到特定游戏的变量名?
A:
-
搜索该游戏的专门攻略或社区讨论
-
使用 Unren 解包游戏脚本分析
-
通过控制台的 dir() 命令探索
-
查看类似游戏的常见变量命名模式
Q:macOS/Linux 系统存档位置在哪里?
A:参考第三部分的路径说明。Linux 用户可以使用以下命令快速定位:
find ~ -name "persist.json" -o -name "*.save" 2>/dev/null | grep -i renpy七、不同游戏的解锁条件说明
7.1 按解锁条件分类
① 全通关解锁型
条件:完成游戏所有主线剧情
特点:
-
只需通关一次即可解锁全部回想
-
可能有隐藏路线需要触发
-
解锁变量示例: persistent.all_endings = True
② 分路线解锁型
条件:完成多个不同的剧情路线
特点:
-
每个路线解锁对应章节的 CG
-
需要打出多个结局
-
解锁变量示例:
persistent.route_a = True # A 路线persistent.route_b = True # B 路线persistent.route_c = True # C 路线③ 收集要素型
条件:收集特定物品、触发所有事件
特点:
-
需要探索游戏中所有可触发事件
-
可能有隐藏收集要素
-
解锁变量示例:
persistent.collected_items = [1, 2, 3, ..., 50]persistent.events_triggered = 99④ H 场景解锁型
条件:触发游戏中的 H 场景(18+ 内容)
特点:
-
部分游戏的 H CG 需要特定条件
-
可能需要多次触发同一场景
-
解锁变量示例: persistent.watched_h_scenes = [1, 2, 3, …]
⑤ 即时解锁型
条件:观看即解锁
特点:
-
只要 CG 在游戏中显示过就会自动解锁
-
通常不存在锁定问题
-
只需正常游玩即可收集
7.2 快速识别方法
要在不知道具体变量名的情况下解锁回想,可以尝试以下方法:
-
正常游戏到想解锁的进度,保存游戏
-
复制一份存档作为备份
-
修改存档,尝试将所有可能的解锁变量设为 True 或最大值
-
测试,如果成功则记下有效的变量名
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!