RenPy 8.5新特性
本页属于 GenPy Ren'Py 学习路线。教程内容面向 Ren'Py 8.x,并在页面末尾连接到 GenPy 的对应工作流。
学习目标
- 了解“RenPy 8.5新特性”在 Ren'Py 项目中的用途。
- 能在一个最小项目里验证本章相关语法或工作流。
- 知道发布前需要检查的常见风险,并能在 GenPy 中继续维护。
核心语法
Ren'Py 8.5Live2D Webautomated testingscreen indentationbefore_load
可运行示例
text
# chapter_1_part_1.rpy
label chapter_1:
label chapter_1.part_1:
# ...
# chapter_1_part_2.rpy
label chapter_1.part_2:
# ...教程正文
来源:官方 Changelog。 本教程以 Ren'Py 8.5.3(2026-05)为基准,8.5.0 于 2025-11 发布。升级前请同时看官方 incompatible(不兼容变更)页。
1. Live2D Web 支持
Ren'Py 现在支持在 Web/HTML5 平台运行 Live2D 模型:启动器可安装 Cubism Web SDK, 引擎能在网页环境加载 Live2D。意味着带动态立绘的游戏也能发网页版了(见第 14 章)。
8.5.3 起,项目使用 Live2D 时需要同步到 Live2D 5.3。官方 changelog 还列出了 8.5.4 中 Live2D Bezier 曲线解释方式的兼容变化;如果旧项目依赖旧曲线表现,请检查 old_beziers 参数或 config.live2d_old_beziers。
1.1 8.5.3 小版本补充
- Ren'Py store 现在按 Python package 处理,跨 store import 行为更符合文档。
- 解析错误会按优先级层级汇总报告,含数字开头文件名的错误会更早显示。
- 官方下载页与 release list 当前仍以 8.5.3 为最新发布;changelog 可能先出现后续小节。
2. 自动化测试框架(Automated Testing)
新增自动化功能测试框架,可定义并运行测试用例:
- 自动“点击”走完一段预设的对话与选择,验证游戏能跑到结尾不崩溃——即使改了脚本或引擎。
- 需要可用的 GUI/OpenGL 环境(测试会跑完整渲染管线)。
- 可从启动器或命令行
test命令运行;存在测试用例时启动器才出现 Run testcases。 - 官方 Tutorial 项目是体验自动测试的好样板。
3. 局部标签放宽(Local Labels)
局部标签现在可以挂在任意全局标签下,便于跨文件拆分长章节:
text
# chapter_1_part_1.rpy
label chapter_1:
label chapter_1.part_1:
# ...
# chapter_1_part_2.rpy
label chapter_1.part_2:
# ...4. Steam 支持
- 现在使用并要求 Steamworks SDK 1.62。
- 设了
config.automatic_steam_timeline时,Ren'Py 用save_name设置“游戏阶段” (建议把save_name当作章节名)。
5. 字体与 Unicode
- 支持现代高压缩字体格式 WOFF2;旧的 WOFF 支持转正。
- 可用
config.font_name_map/config.font_replacement_map把 TrueType 替换为 WOFF2。 - Unicode 升级到 Unicode 17;自带 emoji 字体新增 435 个字形(含多数 Unicode 16 emoji)。
6. GUI 默认行为变化(注意迁移)
gui 命名空间与 default 的交互被理顺,使行为与文档一致。用 default 设置的 gui 变量:
- 在游戏开始/重启时设置;
- 可在 python 块中修改;
- 切换语言时保留最后设置的值;
- 会像普通变量一样被存档/读档。
结论:
gui命名空间下所有变量都应当用default或define之一来设置。
7. 移除 pygame_sdl2 依赖
不再依赖独立的 pygame_sdl2 项目;其大部分已合并进 Ren'Py 的 renpy.pygame。 推荐导入方式:
python
import renpy.pygame as pygame(仍可作为 pygame / pygame_sdl2 导入以兼容旧代码。)这也简化了构建,Linux 上可用 uv 工具构建开发版。
8. 其它值得注意的变化
- 32-bit ARM 构建改用 16KB 页,消除 Play Console 警告。
- 多行
input支持上下方向键移动光标(等宽字体下体验最佳)。 thumb_align从关键字属性变为样式属性,可在 style 里设置。- 导出对话时,遇到
extend会把上一句的角色名一并带上。 xmaximum/ymaximum现在可让可显示物超出容器给定的尺寸。screen语句现在强制要求有缩进块(以前文档要求但未强制)。- 新增
before_load特殊 label 与config.before_load_callbacks:可自定义“读档进行时”的画面与音效。 - 新增
config.locale_to_language_map:locale→语言名映射,方便自定义config.enable_language_autodetect。 Movie()现在按需动态分配音频通道(播放时才分配),降低内存占用。renpy.register_statement()的init_priority现可传返回优先级的函数。- 以点开头的
.rpy文件(如.hidden.rpy)不再被加载(视为隐藏文件)。 config.images_directory被config.image_directories(目录列表)取代。- 新增
config.context_callbacks:进入新上下文时可调用多个回调。 - Web 平台产出的
game.zip不再包含.py文件。 - 升级前会提示关闭其它正在运行的 Ren'Py 游戏(修复 Windows 文件占用问题)。
- RTL 语言默认启用,不再需要设
config.rtl。 - 新增
config.adjust_audio_amplitude:全局调整所有音频振幅。
9. 修复(节选)
- 修复因视频纹理存储不当导致的崩溃。
- 图像字体现在正确做 alpha 预乘,混合更正确。
- 修复脚本编辑相关问题(交互式导演、“add from to calls” 命令)。
- 修复过采样视频缩放问题。
10. 升级建议
- 备份项目与现有存档后再升级 SDK。
- 读官方 incompatible 页,重点关注:
screen必须有块、gui + default行为、config.images_directory → image_directories、pygame 导入方式。 - 升级后 Lint 全跑一遍,再过一遍存读档与各结局。
- 用到 Live2D/Web/Steam 的项目,按上面对应条目同步配置。
常见坑
- 先用最小示例验证语法,再逐步加复杂功能。
- 发布前运行 Ren'Py Lint,并在目标平台实际预览。
官方参考
- 完整更新日志:https://www.renpy.org/doc/html/changelog.html
- 不兼容变更:https://www.renpy.org/doc/html/incompatible.html
- Ren'Py 下载页面:https://www.renpy.org/latest.html
在 GenPy 里怎么做
- 在 GenPy 的代码模式中维护相关 .rpy 文件,先保持语法清晰,再逐步加入本章功能。
- 用故事图谱、变量、校验或演出编辑器把“能运行”提升到“可维护”。
- 导出前结合 Ren'Py Lint 和 GenPy 校验结果,确认脚本、素材和发布路径一致。
推荐继续阅读:
