Files
aibis-dream/Docs/选项已探索追踪设计讨论.md
T

3.9 KiB
Raw Blame History

选项已探索追踪说明

状态:方案已定,运行时已实现(内存态)
读者:剧情策划、关卡策划、写 Yarn 的同学
参考脚本FP_Day1_sleep.yarn

1. 用途

用于可反复探索的选项列表。玩家点过某个选项后,该选项会显示为已探索;如果相关剧情变量变化,选项可以重新变回未探索,提示玩家这里可能有新内容。

2. 基本规则

写法 含义
tags: hub / tags: detour 节点内选项默认追踪
tags: linear / 无 tags 节点内选项默认不追踪
#deps:变量名 变量变化后,取消该选项的已探索状态
#track 强制追踪
#notrack 强制不追踪,适合“返回 / 走开 / 下楼”等操作按钮

#deps: 里的变量名不写 $,多个变量用英文逗号分隔:

->女孩 #deps:ppStage,scj

<<if>> 只控制选项是否显示;#deps: 才表示“变量变化后这里有新内容”。

->地上 <<if $gameStage < 2>> #deps:gameStage
    <<detour 检查地上>>
    <<jump 天台>>

优先级:

#notrack > #track / #deps:... > 节点 tags 默认规则

3. 常见写法

3.1 普通探索菜单

hub 里的选项默认会追踪,不需要额外写标记。

title: 教室
tags: hub
---
->观察
    <<detour 观察>>
    <<jump 教室>>
->趴回去再睡会
    <<detour 趴回去再睡会>>
    <<jump 教室>>
->离开教室 #notrack
    <<jump 走廊>>
===

3.2 内容随剧情阶段变化

如果选项内容会随变量变化,就写 #deps:

title: 走廊
tags: hub
---
->女孩 #deps:ppStage,scj
    <<detour 女孩>>
    <<jump 走廊>>
->窗外 <<if $gameStage == 0>>
    <<detour 走廊窗外>>
    <<jump 走廊>>
===

这里“女孩”会在 $ppStage$scj 变化后重新变成未探索;“窗外”只是受条件控制显示,不会因为 $gameStage 变化自动刷新已探索状态。

3.3 父入口和子选项

父入口不会自动汇总子选项。进入过“女孩”只代表外层“女孩”已探索,不代表里面的“交谈”也已探索。

title: 走廊
tags: hub
---
->女孩 #deps:ppStage,scj
    <<detour 女孩>>
    <<jump 走廊>>
===

title: 女孩
tags: detour
---
->交谈 #deps:ppStage,scj
    <<detour 女孩_交谈>>
->走开 #notrack
===

3.4 同名选项的不同分支

同一个选项文字在不同条件下可以代表不同内容。内容会变的分支写 #deps: 即可。

title: 天文台
tags: hub
---
->往里看 <<if $wyjStage == 3>>
    <<jump 海边>>
->往里看 <<if $wyjStage != 3>> #deps:wyjStage
    <<detour 往里看_还不能进入>>
    <<jump 天文台>>
===

3.5 线性剧情里的选择

linear 默认不追踪,适合一次性选择。

title: 教室苏醒
tags: linear
---
->梦到机器人
    me: 我梦见我是一个机器人......
->梦到我是医生
    me: 我梦见我成了一个医生......
->不记得了
    me: 我不记得梦的内容了。
<<jump 教室>>
===

如果线性节点里某个选项确实需要标记,可以单独加 #track

4. 写作检查

  • 可反复返回的探索列表,优先放在 hubdetour
  • 普通探索选项不用额外标记。
  • 内容会随变量变化的选项,加 #deps:变量名
  • #deps: 只写真正会让内容变新的变量,不要把所有相关变量都塞进去。
  • <<if>> 管显示,#deps: 管刷新已探索状态。
  • 纯操作按钮优先加 #notrack
  • 父入口和子选项各自独立。
  • 不要手写或复制 #line: 标签;行标签交给 Yarn / 本地化流程生成和维护。

5. 运行时补充

本期已探索状态只保存在内存里,不进存档。开始新的 Yarn project、回主界面、执行 <<NextYarn>> 或退出游戏时会清空。同一段探索内在 hub / detour 之间来回跳转不会清空。