该技能用于在 Godot 中构建视觉小说(如 Doki Doki Literature Club、Phoenix Wright、Steins;Gate 类作品),核心循环为:阅读对话 → 做出选择 → 分支(flag/路径变化)→ 后果(即时台词变化或持久 flag)→ 多结局收束。
主要能力与用法:
- 必备脚本组件:vn_rollback_manager.gd(历史栈,回滚 flags/背景/索引)、story_manager.gd(感知 flag 的对话编排)、dialogue_ui.gd(打字机效果与选项 UI)、visual_novel_patterns.gd(BBCode 效果、按 flag 过滤选项、角色精灵分层)。实现撤销、分支或表现层前必须先引入这些脚本。
- 黄金流程:每次推进或选择前,先用 vn_rollback_manager.gd 压入 {line_index, flags, background, music} 快照,再写入 flag;打字机用 Tween 动画 visible_ratio 0→1,跳过时立即置 1.0 并终止 Tween;选项按 requires 的 StringName flag 过滤;发言者用 move_to_front() 而非仅 z_index 置前并压暗非活跃角色;重 CG/背景用 ResourceLoader.load_threaded_request 异步加载。
- 剧本存储方式:JSON/CSV(编剧在 Godot 外编辑,快速迭代)、自定义 Resource 对话树(Inspector 编辑、类型化字段)、Dialogic 插件(完整 VN 套件与编辑器工具)、轻量自建(小型动态小说或学习项目)。
- 硬性质量要求:必须实现 Auto-Play、Fast-Forward、Backlog/History;对话框限制 3–4 行;对话文本必须外置而非硬编码于 GDScript;频繁访问的 flag 用 StringName;角色精灵用锚点与百分比偏移做响应式缩放;角色退场调用 queue_free()。
适用场景:剧情驱动、选择导向或恋爱模拟类游戏。限制:资料要求不得贴出不完整的 JSON StoryManager 示例,需基于给定的 story_manager.gd 实现;定价、平台与具体使用限制暂未提供。