SuperAPI AI 工具集

dialogue-systems

智能体与模型

查看项目

更新于 10-15 21:49

技能介绍

用途:把对话建模为图——节点存放台词,选择分支流程,条件控制选项是否出现,变量记录玩家行为。核心决策是自建还是采用成熟创作工具(Ink 或 Yarn Spinner),或写一个小的数据驱动运行器。该技能同时覆盖 Ink 与 Yarn,供视觉小说与 RPG 类项目使用。

适用场景:设计分支对话、选择菜单或影响后续对话的叙事状态(标志、关系值);在 Ink、Yarn Spinner 与自定义 JSON/资源格式之间做选择;把对话脚本接入游戏循环(推进台词、呈现选项、执行命令、解析变量)。不适用:引擎 UI(文本框、立绘、选项按钮)应使用 godot-ui-control 或引擎 UI 技能;跨会话持久化叙事变量用 save-systems;Godot/Unity 的数据资源见 godot-resources / unity-scriptableobjects。

核心流程:1)选择创作方式——Ink 偏散文、对写作者友好,适合对话密集或 CYOA 叙事,通过 ink runtime / inkle 插件集成;Yarn Spinner 基于节点、显式 <<commands>>,适合大量引擎钩子的游戏驱动对话;自定义运行器为 JSON/资源图加小型解释器,需要完全控制或最少依赖时使用,不要自造语言,只造图。2)定义节点契约:节点产出台词(说话人+文本)、一组选项、命令/副作用或结束/跳转之一。3)变量与流程分离:维护变量存储(布尔、数字、字符串),用条件门控选项。4)从一开始就本地化:用行 ID 而非原始字符串,显示文本来自按语言索引的字符串表。5)由游戏循环驱动:运行器是状态机,当前节点→输出内容→等待输入→推进。6)走查分支验证:确认条件、变量写入,且每条分支都到达结束或有效跳转。

要点与陷阱:硬编码显示字符串会让本地化变成重写;为简单分支树自造脚本语言不如 JSON 图加约 50 行运行器;变量不要耦合 UI,叙事状态单独存储并通过 save-systems 持久化;避免不可达或死胡同节点;可重复访问的台词节点中改状态会重复生效,应在转移时应用 set 或用 seen 标志保护;注意 Ink 的 *(一次性)与 +(粘性)混用,循环菜单需粘性选项。

参考资料:references/ink-and-yarn.md 提供语法对照与集成说明;references/runner.md 提供完整自定义对话运行器(图模式、条件/表达式求值、变量存储、本地化查找)。相关技能:save-systems、godot-resources、unity-scriptableobjects、godot-ui-control、visual-novel、rpg。