Ren’Py 代码视图把当前 Fragment 的 Block 格式化为接近 Ren’Py 的剧本文本。修改合法代码后,Studio 会同步更新同一份 Block 数据,因此可以随时切回卡片或纯文本视图。
v1.8.0 新增
LetsGal Studio Ren'Py 风格代码编辑器
这是 Studio 的 Ren’Py 风格语法,不是完整的 Ren’Py 运行时。代码最终仍会转换为 Studio Block;不支持直接粘贴包含任意 Python、label 或 Ren’Py 自定义运行时代码的完整工程。

打开代码视图

  1. 在剧本树中打开一个章节或 Fragment。
  2. 点击编辑器工具栏中的「Ren’Py」。
  3. 在当前 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 使用 calljump
if 好感度 >= 10:
    call 好结局
else:
    call 普通结局

menu "接下来去哪":
    "去天台" -> call 天台 if 好感度 >= 5 default
    "留在教室" -> $ 好感度 += 1
  • if 主体只接受缩进的 calljump
  • menu 选项可以调用 Fragment,或执行一条变量赋值。
  • 在 Studio 中,calljump 都映射为 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 视图;编辑复杂演出、界面参数或需要可视化检查时切回卡片视图和属性检查器。