Gal Lop 条件式分支——用变量值决定剧情走向
条件分支和选项分支的区别
Gal Lop 有两种让剧情分叉的机制:
| 类型 | 触发方式 | 谁在做选择 | 典型用途 |
|---|---|---|---|
| 选项分支 | 屏幕显示选项让玩家点 | 玩家 | 玩家主动做选择(答应 / 拒绝) |
| 条件分支 | 检查变量值,自动走不同路径 | 系统(根据玩家过去的选择) | 系统根据玩家之前的累积行为自动判定 |
简单说:选项分支是"现在让玩家选",条件分支是"根据玩家之前选过什么来决定"。
条件分支的用途
用途 1:基于好感度的路线分岔
玩家之前选了很多让角色 A 开心的选项 → 好感度_A 高
玩家之前选了很多让角色 B 开心的选项 → 好感度_B 高
→ 在某个关键节点检查哪个好感度更高 → 进入对应角色的路线
用途 2:基于事件标记的剧情解锁
条件:去过天台(布尔变量 = true)
├─ 是 → 播放回忆段落
└─ 否 → 跳过回忆,直接进入下一段剧情
用途 3:基于道具的可用选项
条件:持有钥匙(布尔变量 = true)
├─ 是 → 显示 "用钥匙开门" 选项
└─ 否 → 这个选项不显示,或者点了提示 "没有钥匙"
用途 4:多层嵌套条件
条件 A AND 条件 B → 走路径 1
条件 A 但非 B → 走路径 2
非 A → 走路径 3
创建条件分支
步骤 1:插入条件节点
在时间线上需要做判定的位置插入一个条件节点。这个节点本身不显示任何内容,它的唯一作用就是"判定条件 → 走哪条路径"。
步骤 2:设置判定条件
Gal Lop 的条件判定支持以下运算符:
| 运算符 | 含义 | 例子 |
|---|---|---|
= | 等于 | 好感度_A = 30 |
>= | 大于等于 | 好感度_A >= 50 |
<= | 小于等于 | 好感度_A <= 10 |
> | 大于 | 计数_探索 > 5 |
< | 小于 | 计数_说谎 < 3 |
!= | 不等于 | 道具_钥匙 != true |
== true | 布尔为真 | 事件_告白成功 == true |
== false | 布尔为假 | 剧情_第三章开始 == false |
步骤 3:连接分支路径
和选项节点类似,条件节点的每个判定分支需要用连线连到后续的目标节点:
条件节点
├─ 条件 A 满足 → 路径 1(连到路径 1 的第一个节点)
└─ 条件 A 不满足 → 路径 2(连到路径 2 的第一个节点)
多条件时可以有更多分支,或者嵌套多层条件节点。
步骤 4:复合条件(AND / OR)
复杂场景可能需要同时检查多个条件:
- AND(并且):所有条件同时满足才触发。比如
好感度_A >= 50 AND 事件_告白成功 == true→ 真结局 - OR(或者):满足任意一个就触发。比如
计数_探索 >= 10 OR 好感度_A >= 30→ 解锁回忆章节
Gal Lop 条件设置界面里会有逻辑运算符的选择(并且 / 或 / 非)。
条件分支的典型模式
模式 1:好感度分水岭
最经典的视觉小说分线方式。在故事中后段(通常在结局前)设置一个条件节点:
检查:好感度_A >= 好感度_B AND 好感度_A >= 好感度_C
├─ 是 → 进入角色 A 专属路线
└─ 否 → 继续走共同线
模式 2:剧情收束点
多分支汇聚到某一点后,用条件判定决定后续内容。比如:
玩家走了角色 A 线 OR 走了角色 B 线
→ 条件:标记_A == true OR 标记_B == true
→ 走不同的结尾对话
模式 3:可重玩内容
某些内容只在特定条件下出现,鼓励玩家多次游玩:
条件:计数_完成结局 >= 2
├─ 是 → 解锁隐藏对话
└─ 否 → 正常对话
条件分支的调试技巧
调试技巧 1:从中间节点开始预览
Gal Lop 的预览模式支持从任意节点开始。要测某个条件分支:
- 先在之前的选项节点把变量调到触发条件
- 直接从条件节点开始预览
- 检查是否走了预期的路径
调试技巧 2:临时加显示节点
在条件节点之前临时插入一个对话节点,显示当前关键变量值:
"DEBUG:好感度_A =
{好感度_A},好感度_B ={好感度_B}"
确认条件逻辑正确后删掉。
调试技巧 3:极端值测试
分别用最小值和最大值测试边界情况:
好感度 = 0(触发最低条件路径)好感度 = 99(触发最高条件路径)好感度 = 50(边界值是否正确触发)
常见坑
坑 1:条件写反了
不小心把 >= 写成 <=,或者 true / false 搞反。症状是预期能触发的分支没触发,反而是另一条路。
解决方法:仔细检查条件写法,必要时临时加调试文本显示变量值。
坑 2:条件节点没连好
条件节点的某个分支没有连到任何目标节点。症状是预览走到条件节点就卡住了或崩溃。
解决方法:在时间线上检查所有条件节点的连线是否完整。
坑 3:变量名拼写错误
条件里写的变量名和之前操作的变量名不一致(比如之前是 好感度小樱,条件里写成了 好感度_小樱)。症状是条件永远不满足,因为变量值一直是初始值 0。
解决方法:Gal Lop 没有自动补全变量名,需要非常小心地保持拼写一致。建议从变量列表里复制粘贴变量名,不要手打。