《迷途之梦》角色解析 · 附主角能力全解
依据:全部源码 + 全部文本(134 条对白/旁白)+ 实机通关。 台词原文与行号引自文本总表与逐句解析.md;能力数值引自actors/player.gd。 凡属推测的,都会标【推测】并给出文本依据。
一、点名:全游戏到底有几个"角色"
| 角色 | 登场形态 | 台词量 | 是否真的出场 |
|---|---|---|---|
| 慕容雪川(美美) | 玩家操作 + 独白 | 70 句(52%) | ✅ 全程 |
| 核桃 | 梦里的一只双尾猫 | 7 句 | ✅ 两次 |
| 凶的「???」 | 只有声音(黑屏) | 5 句 | ✅ 一次(不可见) |
| 花蕊大夫 | 一张纸条 | 14 句 | ❌ 从不出场 |
| 鹿 | 只被别人转述 | 0 句 | ❌ 全篇缺席 |
| 假面 | Boss | 0 句 | ✅(会动,不说话) |
| 丛林石像 | Boss | 0 句 | ✅(会动,不说话) |
| 安眠药 / 医书 / 纸条 / 剑 | 道具 | — | 承担叙事功能 |
| 梼杌 | 只在 README 里 | 0 句 | ❌ 游戏内一个字都没有 |
一句话:真正有"人格"的角色只有 4 个(美美、核桃、凶的???、花蕊大夫),外加 1 个从头到尾没露面的鹿。
二、逐个角色
2.1 慕容雪川(美美)—— 主角
基本盘
| 项 | 内容 |
|---|---|
| 物种 | 狐狸(单尾;"俩尾巴的猫"是核桃,不是他) |
| 称谓 | 现实层署名「慕容雪川」,梦里被鹿叫「美美」,游戏内 UI 多用后者 |
| 状态 | 长期失眠、靠安眠药入睡、被清掉了一段记忆 |
| 台词量 | 70 句,占全部对白的 52%(134 句里的 70 句) |
性格:三层,一层比一层真
第一层(对外的):暴躁、嘴碎、爱吐槽。 证据:「啧……」「哎啊啊啊,什么时候是个头啊」「你,你你你……那个俩尾巴的猫,你回来!」「你什么你,你说,你请说!」 他的情绪全靠语气词撑着——哎、欸、啧、额、啊。这是全篇最有效的性格写法:不写"他很烦",只写他发出的声音。
第二层(对人的):先压后软。 对核桃:好奇("你是那个鹿……不对,是个猫?")→ 依赖("真的吗?")→ 愤怒("你别光说空话!")→ 讥讽("我看看你能说出个什么所以然")→ 泄气("哎")。 他不是不会发火,是发完火还会自己找台阶("事已至此,先看看吧")。
第三层(对自己的):用"算了"把一切推平。 这是全篇最关键的性格特征,也是隐藏信息:
| 场景 | 原话 |
|---|---|
| 读医学定义读不下去 | 「额,算了看看失忆吧」 |
| 读完失忆定义 | 「算了算了,翻翻看吧」 |
| 梦醒后 | 「消失的记忆,莫名其妙的猫……欸,不管了又是新的一天!」 |
| 被核桃敷衍 | 「哎」(全篇最短的一句) |
「算了」出现 4 次;「哎」8 次、「欸」7 次、「啊」13 次、「啧」1 次。这些语气词是他的口头禅,也是他的防御机制。
行为逻辑:嘴上在追,身体在逃
把他做的事按时间排一下,会看到一个很整齐的模式:
| 他做的 | 是"追"还是"逃" |
|---|---|
| 七月:怀疑自己失忆,连问三天 | 追 |
| 七月四日:失眠 | —(身体先崩) |
| 十月:吃药,进入梦 | 逃(用梦入睡) |
| 梦里:被塞了剑,没有追问就先开打 | 逃 |
| 梦醒:判定"病情恶化",然后"不管了" | 逃 |
| 白天:主动去找医书 | 追 |
| 读书:两段定义都读不下去 | 逃 |
| 读到纸条:只说了"这……" | 卡住 |
| 入夜:"果然是什么都解决不了" | 逃 |
| 梦里:连珠炮式逼问核桃 17 句 | 追(只有在梦里才敢) |
| 逼问失败:"哎" | 逃 |
| 丛林:撞见石像,一句吐槽 | 逃(用幽默化解) |
结论:他清醒时逃避,只有在梦里才敢追问。 这不是我过度解读——文本自己给了对照:现实层最长的一段独白是"算了",梦里最长的一段是"我到底在干什么"。
深层动机(三层)
1. 表层:想知道"我的记忆去哪了"(台词明说)。 2. 中层:想知道"我到底在干什么"(梦里对核桃说的第 4 句)。 ——这句不是在问记忆,是在问自己被安排成了什么。他要的不是过去,是解释权。 3. 深层(【推测】依据足够强): 他怕的其实不是"想不起来",而是"想起来之后要面对的东西"。 证据链:①每次接近真相就"算了";②花蕊大夫说"这段记忆,咱们或许保持遗忘,才是最好的",他没有反驳;③梦醒第一反应是"吓死我了,我以为我再也醒不过来了"——他怕的是梦,不是失忆。
隐藏信息:名字的三段退化
这是全篇最隐蔽的一处设计,藏在 who 字段里,游戏里从没解释:
| 段落 | 署名 |
|---|---|
| 十月 22 日·夜(吃药前) | ??? |
| 七月 1–4 日(吃药后、回忆里) | 慕容雪川(美美) |
| 快进回十月 22 日(最后三句) | 美美 |
吃药前他连名字都不配有;进入回忆才恢复全名;回到现在,只剩梦里那个昵称。 换句话说:他正在失去自己的名字,而且是从"全名"退到"小名"。
2.2 核桃 —— 那只双尾猫
基本盘
| 项 | 内容 |
|---|---|
| 称谓变化 | 「???」(第一章)→「???(核桃?)」(黑屏)→「核桃」(第二章) |
| 外形 | 只有一句描写:主角骂他"那个俩尾巴的猫" |
| 台词 | 7 句,全部结巴或躲闪 |
| 立场 | 想帮主角,但在替别人办事 |
性格:怯、瞒、良心未泯
| 台词 | 暴露了什么 |
|---|---|
| 「我是……不不不,你别管我是谁,你,我会帮你」 | 不敢报名,但许诺 |
| 「啊啊,不不是的,这把剑,拿好」 | 被看穿就转移话题(塞剑) |
| 「我先退了,你加油」 | 逃跑 |
| 「我……我不知道,可是这样不是把他给害了…?」 | 有良知,会替主角说话 |
| 「这么久我还是信不过你,毕竟当初的记忆,我也丢了」 | 他也失忆,而且不完全信任幕后 |
| 「而且这段记忆真的这么重要吗?我觉得这不是什么好事」 | 他和花蕊大夫说的是同一句话 |
| 「你你先打着,我明天再回答」 | 用战斗拖延 |
| 「(小声嘟囔)如果有明天的话」 | 怕死,且知道内情凶险 |
"结巴"不是萌点,是心虚的写法。 全篇他只有一次说话不结巴——"如果有明天的话"那句,因为那是自言自语。
三重身份(同时成立)
1. 送剑的人:玩家的武器是他给的 → 他是"把你推上战场的人"。 2. 传话的人:凶的???说"我怎么说你怎么传达就好" → 他是中间人,不是主谋。 3. 可能的看守:他说"我会救你出去" → "出去"说明主角是被关着的。
深层动机(【推测】)
他想救主角,但不敢违抗上面,也不敢告诉主角真相。 证据:①"我会救你出去"是承诺;②"这样不是把他给害了"是良心;③"你你先打着"是逃避;④"如果有明天的话"是他知道这件事会死人。
他是一个被夹在"良心"和"命令"之间的执行者——而且他自己也是失忆者,所以连"为什么要这么做"都说不清。
2.3 凶的「???」—— 幕后
基本盘
| 项 | 内容 |
|---|---|
| 标识 | 说话人颜色 深红 #a32222,全篇唯一使用红色的说话人 |
| 出场 | 只有第一章完的那段黑屏,5 句 |
| 台词 | 5 句,句句是命令或辩解 |
性格:轻描淡写地说着操纵
| 台词 | 手法 |
|---|---|
| 「核桃,我觉得我这个计划绝对天衣无缝」 | 先自夸,语气轻松 |
| 「什么话这是,咱们不这样做,他一辈子都会活在迷茫中」 | 把伤害包装成拯救(经典话术) |
| 「我怎么说你怎么传达就好,我没有理由害你」 | 命令 + 免责,一句话干完 |
| 「记住,核桃。我是在帮你们,好了好了,我想想还有谁来着,」 | 说"帮你们",然后立刻转移话题 |
| 「反攻这种事情,人越多越好」 | 暴露真实目的:在招人 |
注意他的语气:从不威胁,从不提高音量,全是"我是为你好"。 这是全篇写得最像真人的反派台词——因为现实里的操纵者就是这样说话的。
深层动机(部分可证,部分未知)
- 可证:他要"反攻",要拉人,要主角变强(训练)。
- 未知:反攻谁?为什么非要用"清记忆 + 梦里训练"这种方式?——游戏里一个字都没说。
- 【推测】:他可能是唯一没失忆的人。理由:核桃说"毕竟当初的记忆,我也丢了",他没有回应这句,而是直接跳到"我怎么说你怎么传达"——回避 = 他知道那件事。
隐藏信息:他是"梼杌"吗?
README 和操作说明写的是"被梼杌当作死士训练",但——
2026-10-27 更新:这个缺口已经被补上了。第二章完的黑屏里,核桃叫了一声「梼前辈」—— "梼"字第一次出现在游戏文本里。所以这位"凶的???"基本可以确认就是梼杌(可信度从 ★★ 升到 ★★★★★)。 同一段对话还交代了两件事:闹钟是梼杌弄的("要不是这个闹钟叫醒他"); 纸条也是梼杌让核桃送的("我写个纸条,你给他")。
2.4 鹿 —— 全篇最大的缺席者
| 项 | 内容 |
|---|---|
| 出场 | 0 次 |
| 被提及 | 序章 2 次、第一章 1 次、第二章梦里 1 次 |
| 关键描述 | 「梦里好像有个鹿,喊我名字美美,喊得好亲近」「当我问他身份的时候,他为什么这样看我?」 |
| 关联地名 | 鹿人店(梦里的地方) |
他做了什么(全部来自转述): 1. 在梦里喊主角"美美","喊得好亲近"; 2. 主角问他身份时,"他为什么这样看我"——欲言又止; 3. 现在不出现了(主角问"那个鹿呢?")。
为什么说他是"最重要的角色":
- 主角提到的第一个人是鹿,不是猫("你是那个鹿……不对,是个猫?");
- 梦里的地名是"鹿人店"——整个梦境都是围绕他命名的;
- "美美"这个名字只有他叫。
【推测】他的身份(三条候选,按可信度): 1. 被清记忆前的亲人/同伴——"喊得好亲近"支持这条; 2. 主角自己的另一面(鹿=理想化的自己); 3. 和花蕊大夫一样,是另一个受害者。
无论哪条,他都是"被清掉的那段记忆"的人格化。
2.5 花蕊大夫 —— 只活在纸上的人
| 项 | 内容 |
|---|---|
| 出场 | 0 次(只在书里的纸条上) |
| 台词 | 14 句,全篇第二多 |
| 身份 | 给主角开药的医生,也失忆了 |
| 名字 | "花蕊"——植物系命名,和"慕容雪川""美美"同一套语感 |
性格:温柔、理性、已经放弃
| 台词 | 作用 |
|---|---|
| 「慕容雪川,你既然看到了这个纸条,证明你已经看完了前部分了。」 | 他知道这本书会落到谁手里——是留给他的 |
| 「你的症状……不,咱们的症状很特殊。」 | 第一记重锤:把自己算进去 |
| 「当你第一次来找我的时候,我有一种莫名的熟悉感,我之前绝对见过你」 | 第二记:他也想不起来 |
| 「我翻遍了资料,并没有任何症状符合」 | 理性:先查证 |
| 「之前我也意识到了,但我一直以为是我本人独有的症状」 | |
| 「直到……」「我看见了你!」 | 全段转折。全篇台词里只有 10 个感叹号,这是其中最重的一个 |
| 「我确信的,咱们的记忆被做了手脚」 | 把"病"升级成"阴谋" |
| 「这段记忆,咱们或许保持遗忘,才是最好的」 | 他的结论和核桃一样 |
| 「我没有资格劝你也放弃,但……请你注意安全」 | 温柔的收尾 |
深层动机
他不是来救主角的,是来"劝退"的。 他把"别查了"包装成"注意安全",把"我放弃了"说成"我没有资格劝你"。 这是全篇唯一一个"已经走到终点然后转身回来"的角色——他的存在本身就是对主角未来的预告。
2026-10-29 补记:他出场了,而且是只鸟
第三章「药房」里花蕊大夫第一次真正出场——花蕊鸟,说话色 #8fd4bd(羽毛色)。
这次出场推翻了我前面两个判断:
| 原判断 | 现在 |
|---|---|
| 「他不是来救主角的,是来劝退的」 | 一半对。他确实在劝("咱丢失的记忆没那么重要"),但最后一句是「或许我该做点什么」——他准备动手了 |
| 「他只在纸上」 | 他在现实里,而且和主角一样被清过记忆:「这回天庭到底搞了什么名堂,这回连我记忆都清除了」 |
他现在的定位是:知情者 + 同盟 + 下一个行动者。
三个细节最值得记:
1. 他听到"两尾巴的猫"就认出「孟极」——说明他认识核桃(或认识这个种族),而主角不认识。 2. 主角说"这里我很熟悉",他连说「不对啊……」「那……」——他知道"熟悉"意味着什么(那真是主角的家),但说不出口。 3. 「注意,你不要和他们说你见过我」→「不,因为会打草惊蛇」——他不是撇清关系,是准备继续查。
隐藏信息:时间线
纸条落款「8月10日」。而:
- 七月 1–4 日:主角开始做梦、开始失眠;
- 八月 10 日:花蕊写下"咱们的记忆被做了手脚";
- 十月 22 日:主角第一次读这本书。
也就是说:花蕊在主角失眠一个月后才写下这些话,而且他知道主角会来。 这不是巧合——他一直在等主角。
2.6 假面 / 丛林石像 —— 两个"不是角色"的 Boss
| 项 | 假面 | 丛林石像 |
|---|---|---|
| 台词 | 0 句 | 0 句 |
| 外形 | 黑袍 + 白面具 + 巨刃 | 1.9 倍大的灰石像 |
| 阶段 | 二阶段(红眼) | 掉头(身体 + 飞头) |
| 叙事功能 | 训练用的靶子 | 梦开始失控的证据 |
假面:名字叫"假面",戴着面具,从不说话。它可能是全篇最直白的一个隐喻(面具 = 伪装 = 那个"为你好"的人),但游戏没有用它——打赢之后直接切梦醒,一句台词都没有。
石像:主角对它的唯一反应是「不是,有猪我认了,我问你这是啥?」 这句吐槽其实交代了它的叙事地位:野猪还算常理,石头像就不该出现在这里。 它的出现 = 梦开始漏出不该有的东西。
2.7 道具也是角色
| 道具 | 叙事功能 | 关键文本 |
|---|---|---|
| 安眠药 | 通往梦的门,也是枷锁 | 「不知不觉已经吃完了四瓶了」「这是最后一片了?」 |
| 剑 | 核桃给的"礼物",也是被推上战场的证明 | 「这把剑,拿好」 |
| 医书 | 客观知识(但没用) | 两段真实的失眠/失忆定义 |
| 纸条 | 主观证据(也是警告) | 14 句,全篇最完整的段落 |
| 医书里的纸条 | 藏在"知识"里的"真相" | 夹层 |
四瓶药是一个被埋起来的计时器:七月开始失眠,十月已经吃完四瓶——三个月四瓶,说明他在加速依赖。
三、关系图:谁在骗谁
┌─────────────────────┐
│ 凶的「???」 │ 幕后 / 招人「反攻」
│ 深红 · 5 句 │
└──────────┬──────────┘
命令 / 洗脑
↓
┌─────────────────────┐
(同病) │ 核桃(双尾猫) │ 传话 / 送剑 / 也失忆
花蕊大夫 ←──→│ 7 句 · 结巴 │
纸条 14 句 └──────┬──────────────┘
│ 「我会救你出去」= 看守
↓
┌─────────────────────┐
│ 慕容雪川(美美) │ 被清记忆 / 被训练
│ 70 句 · 独白 52% │
└──────────┬──────────┘
↑ 喊他「美美」
┌─────────────────────┐
│ 鹿(0 句 · 缺席) │ 梦以他命名:鹿人店
└─────────────────────┘
权力结构:凶的???(指令)→ 核桃(执行/传话)→ 主角(被安排)。 信息结构:玩家 > 核桃 > 主角。(玩家从黑屏知道核桃的名字和上司的存在,主角不知道。)
四、隐藏信息台账(按可信度排序)
| # | 信息 | 证据 | 可信度 |
|---|---|---|---|
| 1 | 主角的名字在退化(???→全名→小名) | who 字段三处 | ★★★★★ |
| 2 | 主角嘴上追、行为逃("算了"×4) | 台词对照 | ★★★★★ |
| 3 | 核桃就是那只双尾猫 | 黑屏里被点名 + 只出现过一只猫 | ★★★★★ |
| 4 | 核桃也失忆了 | 「毕竟当初的记忆,我也丢了」 | ★★★★★ |
| 5 | 主角被"关着" | 「我会救你出去」 | ★★★★☆ |
| 6 | 花蕊大夫在等主角 | 纸条点名"慕容雪川",落款在 8 月 | ★★★★☆ |
| 7 | 花蕊和主角同病 | 「你的症状……不,咱们的症状」 | ★★★★☆ |
| 8 | 幕后可能没失忆(他回避了失忆话题) | 黑屏对话 | ★★★☆☆ |
| 9 | "训练"是有人安排的 | 梦里反复"训练 N"、核桃给剑 | ★★★★☆ |
| 10 | 梦在失控(石像不该出现) | 主角吐槽 + 章节结构 | ★★★☆☆ |
| 11 | 药是倒计时(四瓶 → 最后一片) | 「已经吃完了四瓶」 | ★★★☆☆ |
| 12 | 鹿 = 被清掉的那段记忆 | 「喊我名字美美」「那个鹿呢」 | ★★★★☆ |
| 13 | "假面"= 伪装(名字本身) | Boss 名 | ★★☆☆☆(纯字面) |
| 14 | 凶的???= 梼杌 | 第二章完黑屏里核桃叫「梼前辈」 | ★★★★★(已实锤) |
| 15 | "反攻"的对象 | 「反攻这种事情」 | ☆☆☆☆☆(仍然空白) |
| 16 | 闹钟是梼杌安排的(现实层被干预) | 「要不是这个闹钟叫醒他」+ 主角问"我有闹钟吗" | ★★★★★ |
| 17 | 纸条可能是梼杌写的 | 「我写个纸条,你给他」 | ★★★★☆(也可能指下一张) |
| 18 | 核桃"当初为什么活下来" | 「我倒是知道你当初为什么活下来了」 | ★★★★☆ |
| 19 | 核桃的真名是孟极 | 花蕊鸟:「两尾巴?难道是孟极……?」 | ★★★★★ |
| 20 | 有"天庭"这个组织,且清过花蕊鸟的记忆 | 「这回天庭到底搞了什么名堂,连我记忆都清除了」 | ★★★★★ |
| 21 | 花蕊鸟知道"熟悉"意味着什么,但不说 | 「不对啊……」「那……」 | ★★★★☆ |
五、主角能力全解
5.1 总表
| 能力 | 解锁 | 数值 | 定位 |
|---|---|---|---|
| 移动 | 开局 | 430 px/s,加速 3600 | |
| 跳跃 | 开局 | 初速 −930,重力 2500 → 跳高 173px,滞空 0.744s | |
| 二段跳 | 开局 | −837(0.9 倍) | +140px,总高 313px |
| 地面翻滚 | 开局 | 0.34s,660→297 速,无敌 0.05–0.26 | 核心生存 |
| 空中翻滚(冲刺) | 开局 | 1150 速 × 0.15s,无敌 0.18s | 位移 + 躲弹 |
| 三段轻击 | 必须先按 E 拔剑 | 1/1/2 伤 | 6.1 伤/秒(最高) |
| 空中砸地 | 开局(不用拔剑) | 落地半径 130、2 伤 | 前期清群 |
| 重击 | 记忆碎片 | 3 伤、245×165、眩晕 1s | 控场 |
| 破梦 | 完美闪避后 | 5 伤、360×260、无敌 1.15s | 爆发 + 无敌 |
| 斩惑 | 完美闪避后(需碎片) | 6 伤、绕身 400×96 | 清场,但 0.26s 硬后摇 |
| 完美闪避 | 开局 | 0.32 倍慢动作 + 2.5s 窗口 | 一切奖励的入口 |
5.2 跳跃:三个"看不见"的数值
① 短按与长按是两种跳
JUMP_CUT = 0.42:松手时如果还在上升,把垂直速度砍到 42%。
| 操作 | 初速 | 跳高 | 滞空 |
|---|---|---|---|
| 短按(立刻松手) | −390 | ≈30px | ≈0.31s |
| 长按(按到底) | −930 | ≈173px | 0.744s |
这是全篇最容易踩坑的地方:新手觉得"跳不起来",其实是按太短。教学关第一句就写了"长按 = 跳得更高,短按 = 矮跳",但很多人不看提示。
② 土狼时间 0.10s 走出平台边缘后的 0.1 秒内,仍然可以起跳。跳崖救命的机制。
③ 跳跃缓冲 0.12s 落地前 0.12 秒内按的跳,会在落地瞬间自动生效。连跳不用卡帧。
④ 跳跃曲线(长按,纯数学)
高度
173 ┤ ●
│ ╱ ╲
│ ╱ ╲
│ ╱ ╲
0 ┼●───────────────●──── 时间
0 0.372 0.744 (s)
上升 0.372s,下降 0.372s。这个 0.744s 决定了所有"跳跃躲避"的容错——比如奔角冲锋的纵向判定只有 56px,你只要跳起来就是安全的。
5.3 二段跳:不只是"再跳一次"
| 项 | 值 |
|---|---|
| 初速 | −837(第一跳的 0.9 倍) |
| 从第一跳顶点追加高度 | 140px |
| 总高 | 313px |
| 侧效果 | 重置"空中翻滚"次数 |
"重置空中翻滚"这一条是二段跳真正的价值: 没有它,你一段跳只能在空中滚一次;有了它,你能做到——
起跳 → 空中滚 → 二段跳 → 空中滚
两次空中冲刺。这才是"空中二段翻滚"的实际来源(见 5.5)。
5.4 地面翻滚:整个战斗系统的地基
| 项 | 值 | 意义 |
|---|---|---|
| 时长 | 0.34s | |
| 速度 | 660 → 297(线性衰减) | 位移约 162px |
| 无敌帧 | 0.05–0.26s(0.21s) | 起手 0.05s 有风险,之后 0.21s 无敌 |
| 冷却 | 0.10s(滚完才开始算) | 实际循环 0.44s |
| 无敌覆盖率 | 0.21 / 0.44 = 47.7% | |
| 表现 | 整体旋转 360° + 紫色残影 |
为什么说它是地基:
1. 不消耗任何资源——没有体力条,没有次数限制; 2. 无敌时间和冷却的比例接近 1:1——数学上你有一半时间是无敌的; 3. 完美闪避的判定比无敌帧还早 0.03s(_roll_t ≥ 0.02 就成立),意思是"刚滚出去就挨打"也算成功。
代价:滚的时候不能攻击、不能跳。所以滚是"用输出换生存"。
一个常见误区:很多人以为滚完立刻能再滚。实际上滚的 0.34s + 冷却 0.10s = 0.44s 一轮,中间有 0.18s 是暴露的(0.26–0.44)。
5.5 空中翻滚(冲刺):纠正一个说法
你说的"空中二段翻滚"——游戏里没有"二段翻滚"这个独立技能,实际机制是:
| 事实 | 代码依据 |
|---|---|
| 空中按 Shift/L = 空中冲刺,不是翻滚 | _start_air_dash() |
| 速度 1150、时长 0.15s、位移约 172px | DASH_SPEED / DASH_TIME |
| 无敌 0.18s(比动作长 0.03s) | _iframes = DASH_TIME + 0.03 |
| 一次跳跃周期只能用一次 | _air_roll_used |
| 起跳 / 二段跳会重置它 | _air_roll_used = false(两处) |
所以你能做出"两次空中冲刺"的唯一办法是:
起跳 → 空中冲刺 → 二段跳(重置)→ 空中冲刺
这就是玩家感受到的"空中二段翻滚"。它不是"二段",是"被二段跳刷新的一次空中冲刺"。
实战价值:
- 水平位移:两次冲刺 ≈ 345px,加上跳的移动速度,能横跨约 1/3 个场地;
- 躲弹幕:0.18s 无敌 + 0.15s 位移,比地面翻滚更"快",适合躲浮瞳的直线弹;
- 空中冲刺落地后还有 0.03s 无敌,可以"冲进攻击里"再接地面滚。
注意:空中冲刺不能在落地瞬间取消(_dash_air 期间不加重力),所以它会把你带出去很远——别在悬崖边用(虽然本作没有悬崖)。
5.6 攻击:四种武器,四种节奏
① 三段轻击(必须先按 E 拔剑)
| 段 | 前摇 | 判定 | 后摇 | 伤害 | 判定框 | 够到 |
|---|---|---|---|---|---|---|
| 1 | 85ms | 85ms | 155ms | 1 | 118×108 | 前方 124px |
| 2 | 75ms | 85ms | 165ms | 1 | 124×110 | 前方 130px |
| 3 | 115ms | 115ms | 260ms | 2 | 140×124 | 前方 146px |
关键机制:后摇进行到 32% 时可以取消——
- 按 J → 接下一段;
- 按 Shift → 翻滚取消。
所以"最快输出"是:J → J → J,每段都在 32% 处接下一段,三段总时长约 0.66s,伤害 4,DPS 约 6.1(全游戏最高)。
第 3 段之后不能接第 4 段,必须等后摇走完或翻滚取消。
② 重击(记忆碎片解锁)
| 项 | 值 |
|---|---|
| 前摇 / 判定 / 后摇 | 300 / 140 / 300 ms |
| 伤害 | 3 |
| 判定框 | 245×165(前方 251px) |
| 眩晕 | 1.0s(Boss 只吃 0.35s 且会被打断) |
| 顿帧 | 200ms |
它的定位不是输出,是控制:
- 对杂兵:1 秒眩晕 + 每次命中额外 0.22s 硬直 → 可以无限控;
- 对 Boss:0.35s 硬直 + 打断当前招式 → 打假面最实用的手段。
注意:README 写的"235px 突进"是错的,实际位移只有约 6–8px(速度公式里乘了 0.35 又随前削减)。
③ 破梦(完美闪避后按 J)
| 项 | 值 |
|---|---|
| 前摇 / 判定 / 后摇 | 340 / 200 / 500 ms(合计 1.04s) |
| 伤害 | 5 |
| 判定框 | 360×260,中心在身前 186 → 身前 6–366px、纵向 −208~+52 |
| 无敌 | 1.15s(比动作长 0.11s) |
| 冷却 | 10s(与斩惑共用) |
它是全游戏最强的"安全牌":动作 1.04s,无敌 1.15s,全程盖住还多 0.11s。 用途:不是拿来打伤害,是拿来保命 + 顺手打伤害。
④ 斩惑(完美闪避后按 K,需碎片)
| 项 | 值 |
|---|---|
| 前摇 / 判定 / 后摇 | 160 / 300 / 300 ms(合计 0.76s) |
| 伤害 | 6 |
| 判定框 | 400×96,以自身为中心(前后各约 200px) |
| 无敌 | 只 0.5s |
| 硬后摇 | 最后 0.26s 完全暴露,且不能翻滚取消 |
| 冷却 | 10s(与破梦共用) |
它的定位是"清场":被围住时按一下,前后 200px 全清。 但打不到空中(纵向只到 −78)。
⑤ 空中砸地(不需要拔剑)
| 项 | 值 |
|---|---|
| 触发 | 空中按 J,落地时 |
| 伤害 | 2 |
| 范围 | 半径 130、圆心在身前 −46 |
| 击退 | 420 |
这是前期(还没拿碎片)最强的清群手段,而且不需要拔剑——所以它是唯一一个"拔剑前就能用"的攻击。
5.7 完美闪避:一切奖励的入口
在翻滚无敌窗口内被命中
↓
慢动作 0.32 倍(0.42 秒)
↓
获得 2.5 秒的"破梦 / 斩惑"窗口
↓
J = 破梦(5 伤 + 1.15s 无敌) / K = 斩惑(6 伤 + 清场)
判定细节:_roll_t ∈ [0.02, 0.26]。比无敌帧(0.05–0.26)早 0.03s。 意思是:你刚滚出去就挨打也算成功——游戏奖励"迎上去",不奖励"躲开"。
唯一吃瘪的地方:藤蔓的缠绕(改版前减速穿透无敌帧;现在改成 3 秒 + 仍可翻滚,已经不致命)。
5.8 状态机与输入
IDLE ⇄ RUN
↓跳 ↓滚 ↓攻击
JUMP/FALL ROLL(0.34) ATTACK(前摇→判定→后摇)
↑ ↓ ↓受击
└──────── IDLE HURT(0.26)
↓ 血=0
DEAD
| 输入 | 缓冲 |
|---|---|
| 攻击 | 0.16s |
| 跳跃 | 0.12s |
| 重击 | 0.16s |
| 翻滚 | 0.14s |
三个"不能": 1. 攻击中不能跳(跳跃只在 _do_move 里处理)→ 只能用滚取消; 2. 攻击中不能转向(前冲方向在起手时锁定); 3. 翻滚中不能攻击(缓冲 0.16s < 剩余翻滚时长时,按键会被吃掉)。
5.9 手感参数
| 机制 | 实现 |
|---|---|
| 命中顿帧 | Engine.time_scale = 0.02,真实时间计时,可叠加取最晚 |
| 屏幕震动 | trauma 制,trauma² × 26px,每秒衰减 1.6 |
| 慢动作 | 完美闪避 0.32×、破梦命中 0.22×、Boss 死 0.25× |
| 受击 | 闪白 + 击退 + 0.75s 无敌 |
| 死亡 | 慢动作 0.25× + 震屏,画面"浮出水面" |
5.10 连段与实战套路
① 基础连段(对杂兵)
J → J → J(第三段 2 伤)
三段 0.66s、4 伤,正好打死影卒(3 血)和奔角(4 血)。
② 重击锁(有碎片之后)
K → K → K
每下 1 秒眩晕 + 0.22s 硬直,杂兵永远醒不过来。这是全游戏最省事的打法。
③ 破梦当无敌用
看到 Boss 连招 → 迎上去滚 → 完美闪避 → J
1.15s 无敌覆盖整个危险期,还顺手打 5 伤。
④ 位移三连(逃命/追击)
跳 → 空中滚 → 二段跳 → 空中滚
两次冲刺、约 345px,是全游戏最远的水平位移。
⑤ 空中砸地清群(前期)
跳 → J → 落地(半径 130、2 伤)
不需要拔剑,是拔剑前唯一能用的攻击。
5.11 这套能力的设计问题
| # | 问题 | 说明 |
|---|---|---|
| 1 | 翻滚通吃 | 47.7% 无敌覆盖率 + 零消耗 → 所有攻击"滚过去"就完事 |
| 2 | 完美闪避奖励挨打 | 判定比无敌帧还早 0.03s,鼓励"往攻击里滚"而不是"躲开" |
| 3 | 攻击缓冲太短 | 0.16s vs 翻滚 0.34s → 完美闪避后本能按 J 会被吃掉 |
| 4 | 重击锁死了杂兵 | 1s 眩晕 + 0.22s 硬直 = 无限控,Boss 只吃 0.35s 是补丁 |
| 5 | 空中冲刺没有独立动作 | 用 state = ROLL + _dash_air 共用状态,SpriteRig 里没有 "dash" 姿态(会落到默认姿态) |
| 6 | 斩惑的收益/风险失衡 | 6 伤但 0.26s 暴露 + 打不到空中,对空场景一用就是送 |
| 7 | 没有回血 | heal_player() 有定义、0 调用 → 死亡 = 唯一回满方式 |
| 8 | 拔剑这个门槛 | 不拔剑不能打,但游戏没有解释"为什么要拔剑"——纯游戏性设定 |
六、能力与叙事的缝合(这游戏做得好的地方)
| 玩法 | 叙事包装 |
|---|---|
| 不拔剑不能攻击 | 剑是核桃塞给他的,要先"接受"才能用 |
| 记忆碎片解锁重击 | 演出是「想 起 了 · 「重 击」」——技能=记忆 |
| 收集碎片 | 叫"记忆碎片",收集记忆 |
| 完美闪避 | 叫"完美闪避",奖励是"破梦/斩惑"——在梦里反击 |
| 死亡 | "浮出水面 → 看到床头桌 → 沉回"——死亡 = 醒了一瞬 |
| 死亡计数 | 右下角「第 N 次」,做成冷感旁白 |
最好的一处:解锁重击的演出文案——"想起来了"。 玩家以为自己在解锁技能,其实叙事上是在"恢复记忆"。玩法与叙事在这里完全对齐。
*附:能力数值全部来自 actors/player.gd(常量在 17–49 行);台词与行号见 文本总表与逐句解析.md; 设计层面的问题清单见 游戏解析-全面解析.md §9 与 怪物长文解析.md §7。*