Ren’Py 代码视图把当前 Fragment 的 Block 格式化为接近 Ren’Py 的剧本文本。修改合法代码后,Studio 会同步更新同一份 Block 数据,因此可以随时切回卡片或纯文本视图。
这是 Studio 的 Ren’Py 风格语法,不是完整的 Ren’Py 运行时。代码最终仍会转换为 Studio Block;不支持直接粘贴包含任意 Python、label 或 Ren’Py 自定义运行时代码的完整工程。
打开代码视图
- 在剧本树中打开一个章节或 Fragment。
- 点击编辑器工具栏中的「Ren’Py」。
- 在当前 Fragment 范围内编辑代码。
底部状态栏会显示「已同步到 Block」「正在同步」或错误数量。存在语法错误时,草稿会保留,但不会覆盖最后一次合法的 Block 内容。
常用语法
scene 教室 with fade duration 0.6 wait
show 铃铃 开心 at left
铃铃 "今天也请多关照。"
play music 主题曲.ogg volume 80% loop fadein 0.5
pause 0.8
hide 铃铃
| 写法 | 对应 Studio 内容 |
|---|
角色 "台词" | 对白 Block |
show <角色> [表情] [at 站位] | 显示角色或连续对白的立绘设置 |
hide <角色> | 移除角色,或设置连续对白结束后离场 |
scene <场景> | 场景 Block |
play music/sound/voice | 音频 Block |
stop music/sound | 停止音频 Block |
pause <秒> | 等待 Block;也接受 500ms |
$ 变量 += 1 | 变量赋值 Block |
输入指令时可按 Ctrl + Space 打开补全。角色、表情、场景、Fragment、资源和变量会使用当前项目数据提供候选。
分支与 Fragment
当前代码视图本身已经对应一个 Fragment,因此不需要也不支持 label。跨 Fragment 使用 call 或 jump:
if 好感度 >= 10:
call 好结局
else:
call 普通结局
menu "接下来去哪":
"去天台" -> call 天台 if 好感度 >= 5 default
"留在教室" -> $ 好感度 += 1
if 主体只接受缩进的 call 或 jump。
menu 选项可以调用 Fragment,或执行一条变量赋值。
- 在 Studio 中,
call 和 jump 都映射为 Fragment 调用 Block,执行完会返回原流程。
镜头、粒子和界面
camera x 120 y -20 zoom 1.15 duration 0.8 easing easeInOut wait
particle show LIGHT_SNOW
ui show slot:internal.system.settings modal
autoplay on interruptible
常见指令会使用简写。没有简写的复杂 Block 会显示为 studio <BlockType>: 属性块:
studio stageAnimation:
loop "1"
waitForComplete "true"
开启「折叠复杂属性」后,长属性和 JSON 会折叠显示;点击折叠区域可以展开。无效属性会自动展开,避免把需要修复的错误隐藏起来。
同步规则
- 切换视图不会创建第二份剧本;所有视图共享同一份 Block 数据。
- 修改一条语句时,Studio 会尽量保留未变化 Block 的标识和引用。
- 修改对白正文后,旧语音绑定不会自动沿用,避免语音与新台词不匹配。
- 未找到角色、场景、资源或 Fragment 时会给出诊断;部分名称可保留,但运行时可能无法解析。
- 给只读系统变量赋值属于错误,不会同步到 Block。
调整大量对白和简单指令时使用 Ren’Py 视图;编辑复杂演出、界面参数或需要可视化检查时切回卡片视图和属性检查器。