分支对话系统
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,把 @user_3c6cb52e/dialogue-systems-sh-ljpnwj 安装到你的 AI 助手中。
技能介绍
要解决的问题
游戏里的对话需求,通常不只是显示一段文本,而是要根据玩家选择、已有标记和数值状态改变后续内容。若把台词、分支、条件、变量都写进脚本,后期维护、本地化和测试都会变得更复杂。
技能如何工作
该技能把对话建模成图:节点保存台词、选择、命令或跳转,条件控制选项,变量记住玩家行为。它适合在 Ink、Yarn Spinner 和自定义 JSON 资源图之间做取舍:
- Ink 更偏作者向,适合重对话和 CYOA 叙事。
- Yarn Spinner 更偏节点和引擎钩子,适合大量游戏驱动逻辑。
- 自定义 runner 适合需要最小依赖或完全控制的场景,重点是构建图,而不是发明一门脚本语言。
核心步骤是定义节点契约、把变量与流程分离、从一开始使用 line IDs 和字符串表做本地化,再把 runner 接成游戏循环中的状态机:当前节点、输出内容、等待输入、推进分支,并逐条走分支验证终止状态。
适用边界
它不负责 UI 文本框、立绘和按钮渲染,也不负责跨会话持久化。若对话状态需要存档,应配合 save-systems;若要在 Godot 或 Unity 中管理数据资源,应使用对应引擎资源技能。
使用场景
- 为文字冒险设计按玩家选择改变后续路线的多语言对话树。
- 在 RPG 中根据好感度、金钱和 seen-flag 控制可选项。
- 用 Ink 或 Yarn Spinner 接入作者向对话脚本并驱动节点。
- 将台词改为 line IDs 和字符串表,避免硬编码导致本地化重写。
适合人员
- 做文字冒险的游戏编剧:需要把选择、分支和变量写成可维护的图。
- 负责剧情系统的客户端工程师:要把对话 runner 接进游戏循环。
- 做本地化的文案工程师:需要避免硬编码台词并统一 line IDs。
- RPG 玩法程序员:需要根据标记和数值状态控制选项。