Hidden Door 发布叙事骨架框架以规范 AI 游戏剧情结构
The skeleton of a good story
文章拆解了叙事骨架框架,展示了如何通过结构化约束让AI生成剧情兼顾逻辑与玩家选择。
灵活性是使用大语言模型的叙事游戏的一大优势——玩家可以在任何世界中、以任何角色进行游玩,唯一限制是他们的想象力。然而,如果没有任何结构,故事会显得平淡、随机且令人不满意。这是大语言模型叙事中常见的失败案例。
故事具有结构:包括上升与下降的动作、铺垫与回报,以及角色发展。选择及其后果。故事中最令人满足的时刻都源于这种结构——第一幕中埋下的枪在第三幕被发射,经过数季的“他们会不会在一起”的悬念后的一吻,以及反派在完成其应得的救赎弧线后与主角团联手。结构并非限制,而是约束玩家的行为——结构让玩家的选择真正有意义。
我们的叙事世界模型旨在提供这种结构。我们利用人类专业知识构建支架,以促进真实的角色发展和玩家选择的叙事回报。最终呈现的故事感觉像是一个真正的故事。
季、集与场景
我们将故事框架划分为三个嵌套层级,如同俄罗斯套娃:故事线、弧线与场景。
故事线是我们故事结构中最大的单位。故事线的规模相当于小说或电视剧的一季。它们是跨越多个弧线的总体情节。从时间尺度来看,故事线需要长期的投入,以确保包含铺垫、发展和回报。
一本小说或剧集(或“隐藏之门”世界!)通常由多条并行推进的故事线组成。例如,一部侦探程序类电视剧可能包括:
- 一条故事线,其中侦探逐渐意识到几起看似无关的案件实际上是更大阴谋的一部分。
- 侦探与另外两位常驻角色陷入三角恋的故事线。
- 侦探试图向一位不近人情、已退休的警察局长导师证明自己的故事线。
这些故事线并非彼此孤立。在各类剧集中,侦探可能不得不从阴谋集团手中解救其爱人之一。调查阴谋可能导致一桩其导师始终未能破解的悬案。此外,还可能存在一集独立成篇的剧集,其中侦探必须参加由导师举办的一场令人尴尬的晚宴,而其两位爱人也同时出席。
在《Hidden Door》的叙事世界模型中,每一集都将构成一个弧段。弧段是一系列具有共同前提或围绕同一更大事件展开的场景。弧段具有灵活性,其规模和范围可能略有不同——它们是介于故事线(Storyline)与场景(Scene)之间的任何内容。故事线由弧段组成,而弧段则由场景组成。
在这个层级中,故事结构的最小单位——尽管并非绝对最小的单位;毕竟还有节拍和台词呢!——是场景。场景通常很短,往往停留在一个地点,并涉及同一组人物。一个场景由一个推动故事向前发展的主要事件来定义——一场打斗、一次约会、一场派对。我们的文化中充满了令人难忘的标志性场景:《罗密欧与朱丽叶》中的阳台场景,《帝国反击战》结尾达斯·维达与卢克的战斗,以及《我爱露西》中的巧克力工厂。
故事线、弧线和场景均由节拍构成,只是方式不同。可以把节拍想象成选角通知。故事线会说“嘿,我需要一个能满足这些要求的弧线”,而我们的系统会根据该节拍的要求以及世界背景和迄今为止的故事上下文,推荐最合适的弧线。这考虑了诸如……等因素。我们向玩家提供三个最佳的弧线提案,让他们最终选择想要推进的弧线。弧线会经历类似的选角过程,为其中的每个节拍匹配场景。
这里有一个简单的例子。假设我们正在游玩《第一次狩猎》,这是Hidden Door的德古拉世界观中的一个起源故事线。在这个故事线中,主角起初是一名吸血鬼猎人,并猎杀他的第一个吸血鬼。
作为玩家,你将遇到吸血鬼猎人起源剧情线,以及我们为此专门手工编写的一小部分吸血鬼猎人起源场景。对于任何给定世界中的第一个故事,我们知道起始条件,以及到目前为止发生的一切(什么都没有!)。对于任何给定的起源剧情线,世界模型可能会使用相同的剧情线和场景。
当然,大多数情况并没有那么简单!尽管起源具有明确定义的起始参数,但大多数情况却更难预测。
实践:冰上恋爱
正是在这里,魔法得以施展,我们的故事系统能够真正大放异彩。通过模块化故事线、弧线和场景的组合,我们既能提供令人满足的叙事结构——角色成长、铺垫与回报、伏笔、起伏的情节发展——又能带来惊喜与灵活性,而不会让玩家感到被强行引导。
想象一下,我们正在扮演一个名叫萨曼莎的角色,她是一名现代背景下的大学曲棍球明星球员,并且正与她长期的对手内莉展开一段“从宿敌到恋人”的故事线。我们已经完成了该故事线的第一个阶段,因此准备进入第二个阶段——“放下戒备”,在这个阶段中,萨曼莎和内莉因 circumstances 被迫在彼此情感脆弱的情境下近距离接触。
有很多不同的情节弧线都能很好地完成这个叙事节拍!但在这种情况下,萨曼莎和奈莉共享一位导师——她们的曲棍球教练。完美!系统提供了“勉强合作”这一弧线,其中两个对手被共同的导师强迫一起工作——在本例中,是一次强制性的周末特训营,旨在提升队内两名最佳球员之间的互动。他们的教练看到了他们在冰上的潜力,只要他们能意识到自己是在同一支队伍里!
让我们可视化当玩家选择一条故事线、系统选择相应的节拍来完成,以及角色的既定叙事角色如何塑造故事时发生的情况。
《勉强合作》篇章中有一个情节:两位对手试图合作,但他们的争吵让事情变得更加困难。这个篇章默认并非浪漫向,但由于萨曼莎和奈莉不仅是对手,还彼此暗恋,因此“只有一张床”的场景得以展开——原来她们的教练在训练营只订了一间房!她们不得不习惯比预期更亲密的距离。
我们通过让故事在平台内变为现实并亲自体验来测试了这个弧线!以下是使用 Hidden Door MCP 生成的漫画,展示了起源故事中的一个关键场景。Nelly 和 Samantha 都试图给教练留下好印象,结果却让自己出丑。故事在最后时刻暗示了叙事后果——即作为下一个场景的训练营。
这条单一的故事线只是我们的故事引擎所创造的无数可能性中的一个例子。截至撰写此博客文章时,我们目录中的官方世界包含 80 条故事线、超过 200 个弧段和超过 300 个场景,组合起来可达 400 多万种故事线、弧段与场景的组合。这正是约束与结构之间的平衡点。而且这些数字仅计算了我们手工编写、内部制作的内容!我们还在不断添加更多内容,Atlas 创作者也可以创建自己的故事线。熟悉我们故事层级结构的最佳方式是 构建一个世界,所以请尝试一下!
来源:Hidden Door · AI 叙事与游戏工程 · hiddendoor.co