入门 / 引擎基础
记忆库
在各集之间追踪玩家的操作。
如何使用 Memory Bank(记忆库)
Memory Bank(记忆库)会存储整个游戏的所有记忆,也就是变量。你可以在任意一集中添加新记忆,并在之后的游戏流程中引用它们。变量用于存储并记住玩家的操作,以便稍后引用。它可以是一个随好感增长而增加的数字,也可以记录发生过的事件(“你在第1集朝他扔了一杯冰沙!”),还可以通过记住文本来建立代词系统。
添加记忆
在 Memory Bank(记忆库)中新建一个槽位并为记忆命名。名称中可以包含首次出现该记忆的集数。(示例:Ep1_ChooseEvil)
每条记忆都需要一个“default value(默认值)”。你可以把它理解为玩家开始游戏时应具有的初始值。
现在来定义记忆类型:

Yes/No(是/否),最常用!
这种记忆用于检查玩家是否做过某件事。
示例问题:我们亲过恋爱对象吗?Bob 还活着吗?我们目睹谋杀了吗?
它如何运作?
示例:你设置了一个亲吻恋爱对象的选择,并希望恋爱对象在下一集中提到这件事。你可以按以下条件检查:
- 我们亲过恋爱对象吗?👉 路径1
- Otherwise(否则)👉 路径2
为什么 default value(默认值)设为 No(否)?
默认值代表玩家开始游戏时的状态。由于玩家还没有亲吻恋爱对象,所以默认值为 No(否)。
Text(文本)
这种记忆用于引用名称或标签。
示例问题:玩家选择了哪个昵称?主角来自哪个城镇?
它如何运作?
示例:设置昵称。你可能想让粉丝从 Pumpernickel、Scout 和 Jellybean 这3个昵称中选择。你需要为其中2个昵称创建记忆。之后便可按以下条件检查:
- 昵称是 Pumpernickel 吗?👉 路径1
- 昵称是 Scout 吗?👉 路径2
- Otherwise(否则)👉 路径3
为什么第3个选项不是“昵称是 Jellybean 吗?”
为选择记忆设计分支时,必须始终保留一个不带任何条件的选项,以免玩家卡在游戏某处。在上例中,只有选择 Jellybean 才会进入路径3,因此无需添加这个条件。

Number(数字)
这种记忆用于递增或递减计数。
示例问题:玩家有多少金币?玩家当前是第几级?
它如何运作?
示例:收集金币。你可能想让粉丝在游戏中赚取金币,然后根据拥有的金币购买特定物品。这样便可按以下顺序检查:
- 玩家是否至少有20枚金币?👉 路径1
- Otherwise(否则)👉 路径2
配合 Remember(记忆)和 Check(检查)使用记忆
假设你是一名超级英雄,可以选择使用 FIRE(火焰)或 ICE(冰霜)能力攻击反派。后来剧情揭示火焰才是反派真正的弱点,我们希望记住最初的选择,为早先选择 FIRE(火焰)的玩家提供额外选项。
让游戏记住这个选择。
首先,你必须让 Memory Bank(记忆库)存储这条记忆。这样便可在游戏后续的任意一集中引用它。
在 Memory Bank(记忆库)中新建一个槽位并为记忆命名。这里将记忆命名为“used_fire”。我们之后想问的“问题”是:“玩家是否选择了使用火焰?”答案只能是“是”或“否”,因此应使用 Yes/No(是/否)类型。



将记忆与选择关联。
每个选择都会有一个结果。由于这是一个是/否选择,你只需在要更改的分支上设置记忆。如果玩家选择火焰选项,我们要把玩家的“used_fire”状态从 No(否)改为 Yes(是)。记忆值通过 REMEMBER STEPS(记忆步骤)更改。

稍后检查记忆。
现在游戏剧情已经推进,你想让反派提及玩家是否使用过火焰。这意味着你需要使用 CHECK STEP(检查步骤)来检查记忆。
创建一个 Check(检查)步骤并填写记忆。这里,我们检查 used_fire 的值是否为 Yes(是)。如果条件为 true(真),玩家会进入一个分支;否则进入另一个分支。

现在,你已经了解了记忆的基础知识,包括如何使用 Remember(记忆)步骤更改记忆,以及如何使用 Check(检查)步骤根据记忆创建不同分支。接下来,了解如何使用记忆设置关系系统吧!
常见问题
我设置了一个循环选择,玩家可以返回并选择多个选项,但其中一条路线会增加关系点数。玩家发现可以无限循环并不断获得点数。有没有办法让玩家只能获得一次这些点数?
- 添加一个 Yes/No(是/否)变量,其名称应与玩家可获得点数的那条路径有关。例如,如果第3集中恋爱对象递给玩家一根羽毛,就将它命名为
Ep3LIFeather。将默认值设为 No(否)。 - 在给玩家增加点数的步骤之后,立即添加一个 Remember(记忆)步骤:
Ep3LIFeather = Yes。 - 不要让选择直接进入发放关系点数的节点,而是先进入新的 Check(检查)节点,并在其中检查
Ep3LIFeather。如果值为 Yes(是),说明已经获得过点数,请将玩家引导至不包含增加关系点数步骤的节点版本。(有些游戏会添加一个写着“You've already earned points for this scene!”(你已经获得过这个场景的点数了!)的步骤。)如果值为 No(否),说明这是玩家第一次看到这里,请将其引导至包含增加关系点数步骤的路径!
如何设置代词系统?
请查看“代词系统”,了解完整说明!
