1. 移除Resources,单独使用一个Yarn文件夹保存 2. 按类型分为Fiction,FP,Test 3. 升级到YarnSpinner3.0 4. 移除所有本地化关联,后续迁移到Yarn内置的本地化系统
5.6 KiB
5.6 KiB
FP_Day2_sleep.yarn 主要逻辑图
对应文件:FP_Day2_sleep.yarn
说明
Start在第 22 行<<jump Test>>之后的内容在常规 Yarn 下通常不可达。实机入口可能是Test→门或由程序指定节点。- 下图按阅读顺序排布:先看 全景主线(横轴),再按需看各 模块展开。
状态变量
| 变量 | 含义 |
|---|---|
$gameStage |
1 广场初 → 2 取风筝后 → 3 风筝1 后 → 4 大风/门线 → 5 end 后 |
$t / $h |
风筝回合与高度 |
$wind |
风筝2 风向 |
$sz |
「上升」解绳进度 |
$consciousness |
门侧回忆进度 |
$memCheck / $doorCheck / $doorListen |
各一次性加成 |
$seaExist |
「海是否存在」答案 |
图 1|全景主线(建议先看)
从左到右为大致叙事 / 跳转顺序;支线在下方用子图收拢,避免一张图里线交叉过多。
flowchart LR
subgraph colA["入口"]
direction TB
N_Start(["Start"])
N_Test(["Test<br/>stage←4"])
N_Wake(["醒来<br/>stage←1"])
N_Start -->|jump| N_Test
N_Start -.->|脚本后半通常不可达| N_Wake
end
subgraph colB["广场段"]
direction TB
N_Plaza(["广场<br/>hub"])
end
subgraph colC["风筝段"]
direction TB
N_K1(["风筝1"])
N_K2(["风筝2"])
end
subgraph colD["高空段"]
direction TB
N_Up(["上升"])
end
subgraph colE["记忆段"]
direction TB
N_Rift(["裂隙"])
N_Mem(["记忆空间"])
end
subgraph colF["门与终局"]
direction TB
N_Door(["门<br/>hub"])
N_End(["end"])
N_Dark(["靠近黑暗"])
N_Awake(["苏醒"])
end
N_Test --> N_Door
N_Wake --> N_Plaza
N_Plaza --> N_K1
N_Plaza --> N_K2
N_Plaza -->|离开 ∧ stage≥4| N_Rift
N_K1 -->|t≥5 → stage3| N_Plaza
N_K2 -->|t=10 抉择| N_Up
N_K2 -.->|部分失败| N_Plaza
N_Up -->|闪回结束 / sz 满| N_Door
N_Rift --> N_Mem
N_Mem -->|靠近门| N_Door
N_Door -->|推门 ∧ con≥3| N_End
N_End -->|stage←5| N_Door
N_Door -->|stage=5| N_Dark
图 2|广场 Hub(选项与回路)
flowchart TB
P([广场])
P --> O[观察<br/>秋千 · 广告栏]
P --> T[树 → 过去 → jump 树]
P --> G2[女孩 · stage2<br/>同意 → jump 风筝1]
P --> G3[女孩 · stage3<br/>同意 → jump 风筝2]
P --> F[放风筝<br/>stage>2]
P --> L[离开]
L -->|stage < 4| B[梦边界]
L -->|stage ≥ 4| R[jump 裂隙]
B --> P
O --> P
T --> P
G2 --> P
G3 --> P
F --> P
style P fill:#e8f4fc,stroke:#2b6cb0
图 3|树(自循环)
flowchart LR
TR([树]) -->|stage1 女孩线| G[取风筝<br/>stage←2]
TR --> S[摇树]
TR -->|离开| PL([广场])
G --> TR
S --> TR
style TR fill:#e8f4fc,stroke:#2b6cb0
图 4|风筝 1(计数回路)
flowchart LR
K([风筝1]) -->|放线/收线/保持<br/>t++| K
K -->|t ≥ 5| PL([广场<br/>stage←3])
style K fill:#fff8e6,stroke:#b7791f
图 5|风筝 2 → 上升
flowchart TB
K([风筝2]) -->|循环<br/>t++/h/wind| K
K -->|t=10 放手/抓紧| U([上升])
K -.->|部分条件| PL([广场])
style K fill:#fff8e6,stroke:#b7791f
style U fill:#f0fff4,stroke:#276749
图 6|上升(内部分支)
flowchart TB
U([上升])
U -->|gameStage==3| A[高空序列<br/>stage←4]
U -->|sz < 4| N[解开绳子<br/>sz++]
U -->|sz ≥ 4| F[闪回 / 姐姐 / …]
A --> U2[jump 上升]
N --> U2
F --> DR([门])
U2 --> U
style U fill:#f0fff4,stroke:#276749
style DR fill:#ede7f6,stroke:#553c9a
图 7|门 ↔ 记忆空间 ↔ end(意识进度)
flowchart LR
subgraph mem["记忆侧"]
M([记忆空间])
end
subgraph door["门侧"]
D([门])
end
subgraph fin["终局"]
E([end])
DK([靠近黑暗])
end
M -->|靠近门| D
D -->|后退| M
D --> O[观察 → doorCheck]
D --> Li[仔细听 → 海浪]
D --> Pu[推门]
Pu -->|con < 3| X[门不动]
Pu -->|con ≥ 3| E
E -->|stage←5| D
D -->|stage=5| DK
style D fill:#ede7f6,stroke:#553c9a
style E fill:#fed7d7,stroke:#c53030
图 8|故事阶段(状态概览)
stateDiagram-v2
direction LR
[*] --> Start
Start --> Test : jump 当前脚本
Test --> 门 : stage=4
醒来 --> 广场 : stage=1
广场 --> 树 : 取风筝
树 --> 广场 : stage=2
广场 --> 风筝1 : 同意
风筝1 --> 广场 : stage=3
广场 --> 风筝2 : 同意
风筝2 --> 上升 : t=10
上升 --> 门 : 闪回 / sz
广场 --> 裂隙 : 离开 ∧ stage≥4
裂隙 --> 记忆空间
记忆空间 --> 门
门 --> end : 推门 ∧ con≥3
end --> 门 : stage=5
门 --> 靠近黑暗 : stage=5
苏醒 --> [*]
要点摘要
- Start → Test → 门:脚本中的快进路径;枯树线若在
jump之后则易不可达。 - 广场:主 hub;离开 且
stage≥4进 裂隙。 - 风筝1:
$t满 5 回广场,stage=3。 - 风筝2:
$t==10进 上升。 - 上升:
stage==3播高空;sz满后进闪回并 jump 门;节点内 jump 上升 自循环。 - 门:
consciousness堆叠后推门 → end →stage=5再回 门 → 靠近黑暗。 - 苏醒:独立节点,需代码或其它 Yarn 接入。