跳到主要内容
LokeeLokee

逐章追踪角色在地图上的行踪

在 Lokee 中追踪角色位置:在移动发生的那一刻记录下来,读路线,对比两个时刻,揪出同时出现在两个地方的人。

作者:Paweł Arent,Lokee 开发者阅读约 14 分钟

每部长篇小说里都有那么一章:某个人走进了一个他根本不可能在的房间。三章前就动身去海边的妹妹,此刻正在倒茶;在东门值夜的队长,按第十二章的说法,同时也在下城区喝酒。读者会发现。文字编辑也会发现,只是更晚,代价也更高。

解决办法是像追踪故事设定集里的其他内容一样去追踪角色位置:记录每个时刻什么是真的,而不是一条反复改写的备注。我在设计 Lokee 的地图时,就决定角色永远不靠手画上去。你画的是地点;至于谁在哪里,Lokee 会根据卡片上已有的内容推算出来,而且是在你正在查看的那个时刻。我把自己的小说《Medalion》做成世界库时,这一部分回本最快:在某个时刻看一眼地图,整段追逐戏的连贯性要么没问题,要么错得一目了然。

本指南以演示故事《灰烬结社》(The Ashen Circle)和其中的城市地图 Duskhollow 为例。你可以在演示中跟着操作,也可以用自己的世界库。如果你的地点还散落在各个笔记本里,世界观设定笔记怎么整理是这一步之前该先做的事。

告诉 Lokee “在哪里”指的是什么

只有当角色卡片上有内容说明他在哪里时,地图才能把他放上去。Lokee 按下面的顺序读取三种来源,第一个给出答案的来源说了算:

  1. 地点字段。 条目类型上一个类型为 地点 的字段,里面存放一个地点条目。这是最精确的方式:它还能记录地图上的一个确切位置。
  2. 标记为“表示某人所在的位置”的文本字段。 如果你的角色已经有一个普通文本字段,比如“行踪”,打开世界库的条目类型,在这个字段上勾选 表示某人所在的位置,Lokee 就会按名称或别名,把你写的内容(“The Gilded Lantern”)匹配到一个地点条目。
  3. 位置关系。 在关系类型中,为“位于”这类类型把 在地图上 设为 表示某物所在位置(位置)。这样,第一个条目就位于第二个条目之中。

在演示中,“角色”类型有一个名为 Location 的地点字段。Rowan Ashe 的 Location 是 The Gilded Lantern;Mira Voss 和她的儿子 Finn 在 Tarnside;Captain Aldric Thorne(卫队队长)和 Magistrate Ophelia Crane(王室法官)在 The Watch House。

地点可以套在地点里。The Gilded Lantern 自己的 Location 是 Tarnside,而 Tarnside 的是 Duskhollow。这条链很重要:如果地图上没有 The Gilded Lantern 的图形,Lokee 会沿着地点自身的位置一级级往上找,直到找到画出来的东西。一家小到在世界地图上画不出来的酒馆,照样能把常客放进正确的街区。

如果你在这些都还没设置好时就打开地图,页面会直说,并附上 打开类型设置 链接。Lokee 猜不出你的哪个字段代表“在哪里”:条目类型是你自己定义的,用的也是你写作的语言。

这几种来源之间有两个小而重要的区别,选之前值得知道:

  • 一致性检查中的“同时在两处”问题只看地点字段和标记为 表示某人所在的位置 的字段。位置关系能把人放到地图上,但检查不会用到它们。如果你的目的就是揪出不可能的同时在场,请用字段。关于这条发现本身,参见每次动笔前做一次一致性检查。
  • 字段给你的是按角色记录的历史(每次移动都是该角色卡片上的一条已记录的变化);关系给你的是按关系记录的历史。对于经常四处奔走的人物,字段是更简单的建模方式。

把地图上的地点关联到条目

地图上的图形只有关联到条目后,才算一个地点。选中建筑、区域或标记,在检查器的 关联实体 下使用 关联到实体…。Duskhollow 演示地图上已经关联好了 Varnhold Manor、The Undercroft、The Gilded Lantern 和 The Watch House。

你也可以从角色这一侧设置位置。在条目卡片上,地点字段提供 选择地点…,然后是 在地图上标注:显示该地点的地图会标上 ★,你点一下确切的位置即可。之后字段值会显示为“已标注”。如果没有标注,角色会落在该地点图形内的某处,并且会整齐地错开,同一家酒馆里的几个人不会叠在一起。

关于绘图工具本身,请参阅从草图到可编辑的地图集以及帮助中的地图部分。

读地图:谁在这里,谁在别处,谁同时在两处

打开地图。凡是位置能解析到这张地图上某个地点(或其内部某个地点)的人,都会显示为一个带姓名首字母的小图标,颜色按条目类型区分。如果条目有照片,侧边栏会提供 显示照片。

侧边栏就是点名册,最多分为三组:

  • 此地图上 N 个:所有被放在这里的人。按类型筛选 可以把名单缩小到只看角色,或者只看船只。名字旁边的红色 ! 表示此人在你查看的时刻 同时位于两个地方;他在地图上的图标也会带一个警示圈。
  • 在此处,未设置位置:位于这张地图所代表的地点、但在图上没有确切位置的人。在 Duskhollow 地图上,Location 只写了“Duskhollow”的人就会出现在这里。把它当成一张待办清单:把他们拖到该去的地方。
  • 其他地方:位置既不在这张地图上、也不在其下级的所有人,并附上他们卡片上的地点或文字。这一组默认折叠,因为在大型世界库里它是最长的列表;但它也是错别字浮出水面的地方:一段按名称和别名都匹配不到地点的“行踪”文字,会连同你写的内容一字不差地出现在这里。

点击任意图标,会打开 Rowan Ashe 的位置 弹出框。它会告诉你这个人是“位于某地的确切位置”,还是“位于某地某处”(尚未设置确切位置);并在 为什么在这里? 下面用平实的话说明原因:“在其卡片上设置(当前状态)”、“一条已记录的变更将其放在这里”、“由事件导致”并附上事件标题,或“位置关系将其置于”某地。这一行是我用得最多的。哪条记录把角色放进了这个房间,你永远不必去猜。

现在就移动,或在某个时刻移动

这里正是 Lokee 的时间模型真正发挥作用的地方。如果你还没读过三种“何时”,简单说就是:卡片保存的是 当前 为真的内容,而世界时间点保存的是你的世界中某些时刻为真的内容。

在“当前”状态下,把一个图标(或侧边栏中的一个名字)拖到一个已关联的地点上,改变的是这个角色现在所在的位置。弹出框说得很直白:“拖到另一个地点即可立即移动。”如果拖到未关联的图形上,会看到提示:“请拖放到已关联实体的地点上。”

在某个世界时间点上(通过页面顶部的 查看 控件选择),同样的拖动会先询问你。记录这次移动 对话框给出两个选项:

  • 在此刻移动到这里:在该世界时间点把这次移动记入角色的历史。更早的时刻保留原来的位置;之后的时刻都跟随新地点,直到另一次移动改变它。
  • 更改其当前所在地:修改卡片上的当前值,不在历史中记录任何内容。

几乎所有情况下,你都该选第一个。有个小怪癖值得知道:即使你正在查看某个世界时间点,侧边栏的提示仍然写着“将名称拖到某个地点,即可立即将其移到那里。”别管这句话;拖放之后照样会弹出 记录这次移动,除非你选了第二个选项,否则什么都不会被覆盖。

在一个人的第一次已记录移动之前,地图显示的是他卡片上的地点。所以开始一段追逐或一场战役时,先在开场时刻把所有人都放好,第一个时刻就不会有歧义。

如果这个人所属的类型没有地方存放位置,Lokee 会拒绝这次拖放,并提示你在条目类型设置中添加地点字段,或把某个字段或关系类型标记为位置。如果你更想打字而不是拖动,或者想顺手写下原因,弹出框中的 将此记录为变更 会为地点字段打开常规的变化表单。地图本身只能在“当前”状态下编辑;在某个时间点上,只有人物可以移动,除非你用上为不断变化的世界绘制地图里介绍的随时间变化工具。

在桌面应用和网页版上,可以用鼠标拖动。在 Android 应用中,地图仅供查看。

一场追逐戏,从头到尾追踪角色位置

下面用《灰烬结社》的三个时刻把整套流程走一遍。演示本身没有世界时间点,所以边做边加:在地图的时间步进器上,在此之后新建时刻 让你填一个名称(占位文字建议的是“第2天,黄昏”),然后把地图切换过去。我把这三个时刻叫作“突袭之夜”“次日黎明”和“第二天黄昏”。

突袭之夜。 查看这个时刻。还没有人移动过,所以地图显示的就是卡片上的现状:Rowan、Sera 和 Old Bram 在 The Gilded Lantern,Aldric 和 Ophelia 在 The Watch House,Iseult 和公爵在 Varnhold Manor。卫队突袭了酒馆。把 Rowan 拖到 The Undercroft 上,选择 在此刻移动到这里。用同样的方式把 Aldric 拖到 The Gilded Lantern,突袭是他带的队。点一下 Aldric 的图标:为什么在这里? 下面现在写着“一条已记录的变更将其放在这里。”

次日黎明。 用步进器往前走一步。Rowan 还在地下,Aldric 还在酒馆,因为一次已记录的移动会一直有效,直到下一次移动。Rowan 溜去了姐姐的染坊:把他拖到 Tarnside。Aldric 回去集合队伍:把他拖到 The Watch House。Ophelia 从没动过,地图也会这么显示,你什么都不用记录。

第二天黄昏。 Ophelia 去盘问公爵:把她拖到 Varnhold Manor。接下来是棘手的部分。你第三章的草稿里,Aldric 当晚在 Lantern 喝酒,于是你也把他拖到那里,却忘了早先某一轮已经通过另一条记录,把他放在了同一时刻的 The Watch House。侧边栏在他名字旁边打出红色 !:同时位于两个地方。点开图标,弹出框写着“在此时间点被记录在两个地方。”判断哪条记录在撒谎,然后到那条记录上去改。

然后退回到“突袭之夜”。没有人在他们最终会到的地方,你后来做的一切也没有搅乱这个时刻。这就是全部要点:地图是时刻的函数,而不是一张你不断修改的画。

像编辑一样读路线、对比时刻

一连串移动就是一段旅程,而连贯性最容易在旅程中出问题:第四章里骑马要走一天的路,到第九章只用了一个下午。

路线

点击一个图标并选择 显示路线,或者使用侧边栏中名字旁边的小路线按钮。Lokee 会在你正在查看的时间线的各个时刻上画出这个角色的停留点,并按顺序用箭头连起来。同时打开几条路线,就能看出谁和谁的路径有过交叉。隐藏路线 可以再把它关掉。

示意图:人物在城市地图上的路线Tarn 河Duskhollow1The GildedLantern2Varnhold Manor3The Watch House显示路线Rowan Ashe1 · 东境宵禁之夜2 · 次日清晨3 · 被卫队审问↳ 在此刻移动到这里
每一站都是在某个时刻记录的移动。“显示路线”按顺序把它们连起来,让你看到人物去过哪里。

例子里 Rowan 的路线读起来是 Gilded Lantern → Undercroft → Tarnside。读路线与其说是技术活,不如说是一项写作功课。注意以下几点:

  • 没有缘由的跳跃。 某个停留点离上一个很远,两者之间却没有任何事件。要么你的规划里漏了一个事件,要么这个角色瞬间移动了。
  • 正文从未提及的来回往返。 如果路线两次经过 Tarnside,而稿件里只写了一次,那么有一条已记录的移动已经过时了。
  • 两条路线汇向一次从未在纸面上发生的相遇。 有时候,那正是你忘了写的一场戏。

对比两个时刻

有时你不需要整段旅程,只想知道“背叛之前每个人都在哪里,背叛之后又在哪里?”打开 查看,选择 对比…,然后选好左侧和右侧。地图会画出虚线箭头,从每个人在左侧所处的位置指向他们在右侧的位置。没有移动的人就没有箭头,这本身也是一种信息:如果这次突袭本该让 Ashen Circle 四散奔逃,却有四个图标纹丝不动,那么讲述后果的那一章就需要再看一遍。

对比是只读的。要修正你发现的问题,请回到单个时刻,在那里记录移动。停止对比 会回到普通视图。

卡片记得每一次移动

打开一个角色的卡片,有两个部分把它与地图联系起来:

  • 在地图上 以裁剪预览的形式列出这个条目出现过的每一张地图,并附上说明,比如“位于此处”、“绘制 1 处”(针对地点)或“拥有 N 个区域”(针对统治者和派系)。它跟随页面的 查看 位置,所以在过去的某个时刻,看到的是当时的地图。
  • 移动轨迹 逐个时间点列出角色去过的地方,停留点之间用箭头连接:“The Undercroft → Tarnside,于 次日黎明”;如果移动是作为某个故事事件的一部分记录的,事件会写在括号里;如果做过标注,还会注明“确切位置”。只有真正移动过的角色才会显示这一部分。

“移动轨迹”就是你在起草时可以随手查看的路线版本。写旅途章节时,我会把它开在第二个窗口里,因为它不用打开地图就能回答“我把她留在哪儿了?”

边写边安排角色:写作台的地图面板

大多数移动发生在正文里,而不是地图页面上。在写作台中打开 视图,选择 地图。面板显示你在 选择地图 中选定的地图,并呈现你正在写的这一章时的状态:标题栏显示 截至 该章或该章之前的最后一个叙事节点,如果稿件中还没有时间点,则显示 当前状态。切换到另一章,地图也随之切换。

面板上的提示说明了拖动的作用:“将人物拖到某个地点,即可从本章起将其放在那里。”这次移动会记录在该章自己在阅读顺序中的时间点上(如果该章还没有时间点,会为它创建一个),所以之前的章节保持原样。这就是时间中“面向读者”的那条轨道:读者一章一章地以为角色在哪里;在有倒叙的书里,这可能与世界年表不同。让推理小说保持公平展示了这种分离如何保护不在场证明。

查找人物所在位置 会对这一章运行 AI 提取,只执行“事件、地点和日期”这一阶段,然后在写作台中打开审校。每一条建议的在场信息(“Rowan——在 The Undercroft”)都要由你接受或拒绝,之后才会记录下来。它的费用与任何一次提取相同:云端世界库使用 Lokee 点数;桌面应用中的本地世界库则可以用你自己的密钥或本地模型。日期只会从正文中获取。把现有草稿变成故事设定集详细介绍了这个审校过程,而边写边构建世界观讲的是这个面板所属的那个更大的写作习惯。

在面板中,图形始终是只读的;在共享世界库中,审阅者能看到地图,但不能安排任何人的位置。

出了问题怎么办

所有人都在“其他地方”下面。 地图上的图形没有关联到地点条目;或者地点关联了,但角色的 Location 指向一个既没有图形、也没有一条链能往上找到图形的地点。关联图形,或者给那个小地点设一个它自己的 Location,让它通向一个画出来的地点。

某个角色在每一个时刻都在错误的地方。 你在某个世界时间点上用了 更改其当前所在地。那一步改的是卡片,历史里什么都没记,于是每一个没有已记录移动的时刻都回落到了新值。回到移动发生的那个时刻,在那里记录它;然后把卡片改回角色在故事结尾所在的地方,或者就不管它,让最后一次已记录的移动说了算。

一次移动出现在错误的轨道上。 在写作台的地图面板里拖动,记录在该章阅读顺序中的时间点上;在地图页面的某个世界时间点上拖动,记录在世界时间里。如果一个倒叙章节安排了某人的位置,读者是在那一章得知的,但世界时间点可能早了好几年。世界时刻用地图页面,揭示用写作台,然后让“查看”控件分别显示给你看。

红色 ! 怎么也不消失。 两条记录在同一时间点把这个人放在了两个地方:比如一次手动记录的移动和一条接受了的提取结果,或者一个地点字段和一段“行踪”文字各说各话。打开 为什么在这里?,找出错的那条记录,在卡片的历史里删掉或改正那次变化。如果是推理小说,不妨留着它,把它写成某人撒的谎;让推理小说保持公平展示了相应的字段设置。

路线直直穿过一道山脉。 路线只是用箭头把停留点连起来,它不是行进路线。那座山是你的问题,不是地图的问题,而这正是值得在读者发现之前先找出来的那类问题。

Lokee 在这里做不到的事

它不知道两个地点相距多远,也不知道一段旅程要走多久,所以一条在一个时刻内横跨整个王国的路线不会被标出来。它不会读你的正文然后自己把人挪来挪去;查找人物所在位置 负责提建议,拍板的是你。它不会为卡片上没有位置的人画标记。Android 应用能看地图,但不能拖动。至于距离和路程天数,在地点条目上写一条备注,或者在笔记页面里列一张小表,仍然是最老实的工具。

五分钟上手

  1. 只建模一次“在哪里”。 为每个会移动的类型(角色、军队、船只、神器)添加一个地点字段,并把它标记为位置。
  2. 画出并关联发生场景的地点。 小地点可以只作为条目存在,让它的 Location 指向一个更大的地点;剩下的交给逐级上溯。
  3. 在开场时刻安排好所有人,使用 在此刻移动到这里。
  4. 在移动发生的时刻记录移动:世界时间用地图页面,阅读顺序用写作台的地图面板。
  5. 每次修订之前,看一遍主要角色的路线,并运行一致性检查。任何 同时在两处 的人,要么是一个错误,要么在推理小说里是某人撒的谎。判断清楚是哪一种,然后有意识地那样去写。

如果你想在搭建自己的世界之前先试一试,演示中的 Duskhollow 已经画好并关联完毕。想在同一批地图上处理领土和战争,请继续阅读为不断变化的世界绘制地图;帮助中关于地图上人物的部分和角色地图追踪器概览提供了简短版本。

常见问题

怎样在小说里追踪角色位置,而不用手动画每一个标记?

给角色类型加一个地点字段,或者把某个文本字段标记为“表示某人所在的位置”,Lokee 就会把人物放到任何包含该地点的地图上。地点只需画一次;人物图标来自故事设定集。

“在此刻移动到这里”和“更改其当前所在地”有什么区别?

“在此刻移动到这里”会在你正在查看的世界时间点上,把这次移动记入角色的历史,更早的时刻仍保留原来的地点。“更改其当前所在地”只修改卡片上的当前值,不触动历史。

可以不在地图页面、而是在稿件里安排角色位置吗?

可以。在写作台中打开“视图”,选择“地图”,把角色拖到某个地点上。Lokee 会把这次移动记录在该章在阅读顺序中的时间点上,从这一章起生效。

为什么某个角色显示在“其他地方”下面?

因为他的位置不在这张地图上,也不在它的下级地图里;或者那是一段文字,按名称或别名都匹配不到任何地点条目。创建这个地点、把它关联到一个图形,或者改正那段文字,图标就会出现。

Lokee 会计算地图上两个地点之间的行程时间吗?

不会。它记录每个时刻某人在哪里,并用箭头把停留点连起来显示。从一个停留点到下一个,骑马一天到底够不够,仍然由你判断。所以读路线是一项写作功课,而不是一份报告。

在你自己的故事里试一试

演示版在浏览器中运行,带有一个示例故事,无需注册账号。桌面应用把本地保管库保存在你的电脑上,免费使用。