Files
mod_scenario_studio/docs/zh.md
T

53 lines
4.6 KiB
Markdown

# Scenario Studio — 游戏运行时调试与编辑剧本
Scenario Studio 是一个停靠在运行中游戏旁边的面板,会显示当前播放的是哪个剧本、屏幕上正停在哪一行。它可以暂停对话、逐行单步执行、停在断点上、挪动下一行、带着回滚的游戏状态重启剧本,还能当场修改剧本——并且立刻把改动呈现到游戏里。
它有两种模式:**新手**模式用简单的块面呈现剧情时刻;**作者**模式显示带行号的剧本文本。
## 打开方式
包含 Developer Tools 工具集的游戏(机制 *Scenario Studio*)工具栏上有一个**工作室**按钮——羽毛笔。启动参数 `--studio` 会在开局时直接打开面板。下面的截图来自 Cthangover 的厨房;编辑都写进了测试层,没有碰游戏自己的文件。
## 新手模式
![厨房场景,右侧是新手模式下的工作室面板:场景 home_kitchen、剧本 home_kitchen_cooking、一个层徽标;「当前画面」下方是台词「新台词」和问题「一间布置成厨房的房间」;回答有「离开」(前往场景 home_vestibule)、「做饭」(动作 toggle_cooking_workbench)和「新回答」,每项都带「选择去向」和「编辑」;按钮「+ 在问题前加台词」和「+ 回答」;底部是「此修改影响」框(显示目标层)和「应用」。](assets/studio-novice.jpg)
**现在**标签页显示屏幕上的时刻:台词、问题和每个回答的去向。**编辑**修改文本,**选择去向**修改一个回答指向哪里(某个标签、另一个场景或结尾),**+ 台词**和**+ 回答**往这个时刻里添加内容。每处修改都会在**此修改影响**里显示将写入哪个模组或哪一层。
## 作者模式:暂停与断点
![作者模式下的面板:传输栏上有「暂停」「单步」「继续」「资源」「重启」;home_kitchen 的剧本文本中,第 6 行——select「一间布置成厨房的房间」——标着红色断点和当前行的 ▶ 标记;下方是「第 9 行之后」,带「+ 台词」「+ 选项」「+ 前往场景」和目标层 my_studio。](assets/dock-breakpoint.jpg)
- **暂停**让对话停在下一行之前;**单步**执行一行;**继续**照常往下走。
- 在边栏点一下即可设置**断点**:对话会在那一行之前停下。
- 把 **▶** 标记拖到另一行,就能让那一行成为下一行。
- **+ 台词**、**+ 选项**、**+ 前往场景**添加在当前行之后;**编辑文本**编辑整个剧本。
## 应用与重启
**应用**会写入改动并重启剧本。这里在问题前加了一行「新台词」;应用之后它已经显示在画面上:
![应用后的面板:画面上是「新台词」,状态为「已应用到"my_studio",剧本已回滚并重启」。](assets/dock-applied.jpg)
**重启**提供几种选择:不带回滚地重跑剧本、**带状态回滚**重跑(标记、物品、时钟等都会回到剧本开始时的样子)、重进场景,或从当前标签继续。
## 检查状态
![状态标签页:「可以修改数值来尝试其他分支」,时钟显示第 24 天 23:00。](assets/dock-state.jpg)
**状态**标签页按归属分组显示游戏状态:时钟、正在进行的对话的变量、剧本引用到的任务、背包,以及哪些剧本已经运行过。变量、物品数量和任务状态都可以修改(按 Enter 写入游戏),以便尝试其他分支。**场景**列出当前场景的剧本,**地图**显示各场景及其间的通路(以及可以把新背景拖放到的位置),**日志**记录发生的事情:
![日志标签页:进入 home_kitchen、home_kitchen_cooking 启动、修改「+6 → my_studio」、多次重启、「断点,第 6 行」、「下一行移到 5」、「home_kitchen 中的检查点」。](assets/dock-log.jpg)
## 改动写到哪里
- 以文件夹形式安装的模组可以就地修改。
- 否则改动会进入游戏的**工作室层**(`user://studio/<game>`),它的优先级高于所有模组,且不会碰模组本身。这一层可以导出为新模组,再加入游戏的合集中。
- **资源**会重新读取游戏运行时拖入模组或层的 `backgrounds/` 文件夹的背景;之后可以在「地图」标签页直接用这样的背景新建场景。
## 出问题了怎么办
1. **没有工作室按钮。** 游戏的合集没包含工作室;添加 Developer Tools 工具集,或用 `--studio` 启动。
2. **单步没有反应。** 对话正在等待回答:先选一个。
3. **其他玩家看不到改动。** 工作室层里的修改只留在这台电脑的这个游戏里;把层导出为模组即可分享。