Skip to content

RenPy 8.5新特性 ​

本页属于 GenPy Ren'Py 学习路线。教程内容面向 Ren'Py 8.x,并在页面末尾连接到 GenPy 的对应工作流。

学习目标 ​

  • 了解“RenPy 8.5新特性”在 Ren'Py 项目中的用途。
  • 能在一个最小项目里验证本章相关语法或工作流。
  • 知道发布前需要检查的常见风险,并能在 GenPy 中继续维护。

核心语法 ​

  • Ren'Py 8.5
  • Live2D Web
  • automated testing
  • screen indentation
  • before_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. 升级建议 ​

  1. 备份项目与现有存档后再升级 SDK。
  2. 读官方 incompatible 页,重点关注:screen 必须有块、gui + default 行为、 config.images_directory → image_directories、pygame 导入方式。
  3. 升级后 Lint 全跑一遍,再过一遍存读档与各结局。
  4. 用到 Live2D/Web/Steam 的项目,按上面对应条目同步配置。

常见坑 ​

  • 先用最小示例验证语法,再逐步加复杂功能。
  • 发布前运行 Ren'Py Lint,并在目标平台实际预览。

官方参考 ​

在 GenPy 里怎么做 ​

  • 在 GenPy 的代码模式中维护相关 .rpy 文件,先保持语法清晰,再逐步加入本章功能。
  • 用故事图谱、变量、校验或演出编辑器把“能运行”提升到“可维护”。
  • 导出前结合 Ren'Py Lint 和 GenPy 校验结果,确认脚本、素材和发布路径一致。

推荐继续阅读:

Built for GenPy creators.