# 分支对话，在构建之前就能写、能玩、能检查。

把一段对话写成由说话者说出的台词。给一句台词加上选项，每个选项都会跳转到它指定的台词。像玩家那样试玩一遍，以图的形式查看，结构没问题时导出 Yarn Spinner 文件。

![Nodary 中以图的形式绘制的溺亡档案员初次见面对话：每句台词在一个方框里，标有说话者，玩家的选项写在箭头上，包括需要记忆水晶或 3 级灯塔的选项，以及返回和通向结尾的跳转。](https://nodary.ai/marketing/dialogue-graph.webp)

_Saltmarrow 是一个示例项目：其中的工作室、团队和游戏都是虚构的。_

## 把对话写成脚本

每句台词都有说话者、台词内容，以及选项或接下来的内容。选项通过简短的 id 指向台词，所以调整台词顺序永远不会破坏跳转。可以在脚本、逐个选项走完对话的试玩，以及图之间切换。

- 让每个选项指向一句台词，或指向对话结尾
- 一键在下方添加一句同一说话者的台词
- 每位说话者按首次发言的顺序保持一种颜色
- 从 Quest Dialogue 模板开始

它不做什么: 条件和变量没有建模。把条件写进选项文字里，就像 Saltmarrow 写的 [Carrying a memory crystal]：每个人都能读到，但 Nodary 从不计算它，也不会隐藏该选项。

![Nodary 脚本视图中的溺亡档案员对话：每句台词都有 id，说话者是档案员，附有她的台词，每个选项跳转到指定的台词，有些选项以方括号中的条件开头，例如 [Carrying a memory crystal] 或 [Lighthouse level 3 or higher]，还有结束对话的台词。](https://nodary.ai/marketing/dialogue-script.webp)

## 找出断掉的分支，再导出到 Yarn Spinner

Nodary 会标出指向已不存在台词的选项或后续、从开头没有任何路径能到达的台词，以及空白台词，问题会标在台词本身上，并在对话上方统计数量。结构没问题时，“Yarn 文件”按钮会写出一个 Yarn Spinner 2 脚本：每句台词一个节点，选项作为 option，节点之间可以跳转，第一句台词标记为 start。

- 问题标注在台词上，并在对话上方计数
- 节点名称唯一，并符合 Yarn 的命名规则
- 跳向缺失台词的跳转会变成 stop，文件仍能编译
- 在 Unity、Godot 或 Unreal 中用 Yarn Spinner 导入 .yarn 文件

它不做什么: Yarn Spinner 只支持导出：Nodary 不导入 .yarn 或 Ink 文件，写在选项文字里的条件在 Yarn 文件中仍是普通文本。

![Nodary 图视图中的档案员对话，上方是“脚本”“试玩”“图”切换和“Yarn 文件”按钮，每个箭头都从一句台词指向其选项所指定的台词，或指向结尾。](https://nodary.ai/marketing/dialogue-graph.webp)

_图会画出每一次跳转，这正是检查所依据的。_

## 对话和剧本就在它们所属的角色旁边

对话是可以放在任何文档中的区块，所以档案员的初次见面就放在她的角色页面上。在 Saltmarrow 中，这个页面链接到她所在的沉没档案馆，翻译表也被标为依赖于它。剧本也是一种区块：用 Fountain 书写，阅读时自动排版，包括场景标题、动作、角色提示、括号注释和转场。

- 为角色、任务和地点之间的链接加上标签，说明它们为何相关
- 用 Fountain 写过场动画和预告片，阅读时自动排版
- 对话和剧本随所在文档一起打印、分享和导出为 Markdown
- 搜索能找到每一句台词中的文字

它不做什么: 说话者是你输入的名字，而不是指向角色文档的链接。Fountain 阅读器支持常见元素；不排版标题页和双人同时对白。

![Saltmarrow 在 Nodary 的星图上：项目文档围绕角色、世界与故事、系统和本地化等中心分布，由层级线和带标签的链接相连，地图上有两位队友的光标。](https://nodary.ai/marketing/map-constellation.webp)

## 在任何人试玩之前，智能体先检查对话

check_dialogue 像编辑器一样读取对话：断掉的跳转、无法到达的台词和空白台词、说话者，以及对话有几种结局。使用 format yarn 时，它还会返回 Yarn Spinner 脚本。智能体用 write_document 写新对话，用 edit_document 修改台词，用 get_document 把对话读回为脚本，每个选项都附有去向。

> 检查溺亡档案员初次见面对话中断掉的跳转和无法到达的台词，修正发现的问题，然后给我 Yarn Spinner 文件。

它调用的工具: `search_documents`, `check_dialogue`, `edit_document`

## 常见问题

### 能把对话导出到 Yarn Spinner 吗？

能。每段对话上的“Yarn 文件”按钮会下载一个 Yarn Spinner 2 脚本：每句台词一个节点，选项作为 option，节点之间可以跳转，第一句台词标记为 start。智能体用 check_dialogue 加上 format yarn 也能拿到同样的脚本。

### 能导入 Yarn、Ink 或 Twine 文件吗？

不能。对话在 Nodary 中编写，Yarn Spinner 只支持导出。通过 MCP 连接的智能体可以把你粘贴的脚本转成对话区块，每个选项都指向对应的台词。

### Nodary 支持对话条件和变量吗？

不作为逻辑支持。你可以把条件写进选项文字，例如 [Lighthouse level 3 or higher]，每个读对话的人都能看到，但 Nodary 不保存变量，也从不隐藏选项。请在导出后，在你的对话系统中加上真正的条件。

### 它能找出分支对话中的死路吗？

它能找出试玩时会出错的分支：指向不存在台词的选项或后续、从开头没有任何路径能到达的台词，以及空白台词。其他每句台词按设计都会通向某处：它的选项、它的后续、下一句台词或结尾。

### 能用 Fountain 写剧本吗？

能。添加一个“剧本”区块，用 Fountain 书写，阅读时自动排版：场景标题、动作、角色提示、括号注释、对白、转场、段落和梗概。注释和 boneyard 文本在排版视图中隐藏。一个剧本最多 50,000 个字符，不排版标题页和双人同时对白。

### 一段对话最长可以多长？

最多 300 句台词，每句最多 8 个选项。更长的对话可以拆成多个对话区块，跳转不能从一个区块跨到另一个区块。

## 延伸阅读

- [游戏本地化](https://nodary.ai/zh/game-localization): 每条译文都有状态的翻译表，检查长度和占位符，并为 Unity、Unreal 和 Godot 导出。
- [游戏设计文档](https://nodary.ai/zh/game-design-document): 把游戏设计文档写成相互关联的页面，由团队和 AI 智能体共同保持更新。
- [游戏制作](https://nodary.ai/zh/game-production): 每份文档都有负责人、审阅和阻塞关系，实时看板和时间线，还有一张告诉你里程碑能否按时达成的燃起图。

## 在故事所在之处写下一段对话。

免费开始，输入 / 并选择“对话”，或从 Quest Dialogue 模板开始。无需绑卡，无需安装。 两名成员、十份文档以内免费。无需绑卡。

本页地址: https://nodary.ai/zh/game-dialogue
