2.5 KiB
2.5 KiB
世界底稿开局场景批生成解耦说明 2026-04-26
背景
当前第一版世界底稿生成链路里,framework 阶段同时要求模型输出 camp.sceneTaskDescription、camp.actBackgroundPromptTexts 和 camp.actEventDescriptions。这让“世界核心骨架”和“开局场景多幕内容”混在同一次世界生成任务里,后续普通场景批生成又要单独生成相同粒度的场景任务、三幕事件、三幕背景和幕 NPC 分配。
这与《AI 原生多幕场景创作与玩法流程 PRD》中“开局场景不是特殊系统,只是玩家开局所处的第一个场景”的约束不一致。开局场景应复用普通场景的批生成能力,而不是由世界骨架阶段提前生成一套缩水版内容。
落地边界
framework阶段只负责世界顶层信息和轻量camp占位:namedescription
- 场景批生成阶段负责生成完整场景骨架:
- 场景名与描述
- 默认场景生图描述
sceneTaskDescriptionactBackgroundPromptTextsactEventDescriptionsactNPCNamesconnectedLandmarkNamesentryHook
- 批生成场景结果的第一项固定视为开局场景:
- 写回
profile.camp camp.id缺失时固定为camp-1camp.kind固定为camp
- 写回
- 批生成场景结果的其余项写入
profile.landmarks。 sceneChapterBlueprints仍由统一场景蓝图编译函数生成:- 第 0 项来自
camp - 后续项来自
landmarks - 开局场景和普通场景共用三幕、NPC、任务、背景提示词规则
- 第 0 项来自
兼容策略
为了减少前端和存量链路改动,场景批生成 API 层仍沿用现有 landmarks JSON 字段名。字段名不再表示“只包含普通地标”,而表示“本批生成的场景条目”,其中第一项是 opening/camp 场景。
如果模型没有返回任何场景条目,则继续使用 framework.camp 的轻量占位构造兜底开局场景;这只是异常兜底,不是主生成路径。
验收点
- 世界骨架 prompt 不再要求
camp.sceneTaskDescription、camp.actBackgroundPromptTexts、camp.actEventDescriptions。 - 场景批生成 prompt 明确要求第一项是开局场景。
- 生成后的
profile.camp来自场景批生成第一项,而不是来自世界骨架阶段的开局多幕内容。 profile.landmarks[0]是第一个普通场景,不再重复包含开局场景。sceneChapterBlueprints[0].sceneId === "camp-1",且仍包含 3 幕背景与事件描述。