敌人是怎么“读”你的指令的
“读指令”听起来像作弊:你刚一出手,敌人就已经在躲、在反击。其实把它拆开,只有一个问题:敌人在哪一帧知道你要干什么。答案有三种,差别只是几行代码,却是“聪明”和“不公平”之间的分界线。
本页是原创教学原型,不含任何商业游戏的代码或美术。历史与游戏部分的结论按来源可信度标注:高 开发者/文档证实,中 媒体或单一技术来源,社区 玩家社区观察、未经证实。
三种“知道”的方式
① 读按键
你按下的那一帧,敌人就知道了,比动作开始还早 2 帧(输入缓冲)。最“全知”,也最容易让人觉得被看穿。
② 读动作
玩家的动作状态机一开始跑,就给 AI 发一个“他出手了”的通知。AI 在第一帧前摇就反应,没有人类感知延迟。
③ 看画面
像人一样:先看见起手姿势,再等一段反应时间(默认 15 帧 ≈ 250 毫秒)才行动。这一档才“公平”。
在“效果预览”里把滑块拖到 0 帧,“看画面”就变成了“读动作”;拖到 40 帧,连慢斩也能打中它。拉到哪里,就是你想给玩家的难度。
公平性规则
闪避的无敌帧要等 6 帧起手之后才生效,所以一个“按人类速度反应”的敌人,需要招式前摇至少有 延迟 + 6 帧。前摇更短的招,人类(和公平的 AI)都来不及躲;如果敌人还是躲开了,玩家就会觉得它偷看了输入。格斗游戏社区常用的人类反应范围是 12–19 帧中,单纯视觉反应约 200–250 毫秒中。
简史
街霸 II:电脑比你的画面早一帧
sf2platinum 对街机 ROM 的逆向分析指出:每一帧动画的数据里带着“摇杆/按键值”,AI 直接读它来选择反制脚本,“在你的招式第一帧画面显示之前就已经看到了”,等于在人类反应时间之外再多一帧优势高。需要注意:它读的是“即将出的招式数据”,不是字面意义上的手柄硬件。其他作弊(无敌帧、蓄力指令不会失败)只有媒体转述社区。
SNK 综合征
玩家把“你一出手 Boss 立刻反击”的 SNK 街机 Boss 叫作“SNK 综合征”,据说可追溯到《饿狼传说》的 Geese Howard,Rugal 的 Genocide Cutter 常被当作最典型的例子。这是社区用语,没有帧数据,也不是官方设计术语社区。
魂系:喝药惩罚
玩家社区观察到:喝药时《艾尔登法环》的玛莲妮亚会立刻刺来一枪,《只狼》的弦一郎也会,GamesRadar 称其为“与喝药绑定”的攻击中。Zullie the Witch 的分析认为严格说不是读按键,而是读动画:敌人只对游戏内信息反应,但“动画一开始播放”它们就反应中。
玩家整理的 Elden Ring AI 文档(ERAiAPI)里有这样一条接口:INTERUPT_UseItem——“目标使用道具时触发,由 HKS 脚本 act(143, 1) 调用”。HKS 是角色行为(动画状态机)脚本,所以玩家的状态机在动作开始时给附近 AI 推一个中断,正好对应“读动作”那一档高·接口社区·解读。文档只证明有这个接口,不证明某个 Boss 的某一招用了它;FromSoftware 从未正式确认相关设计,以上均为社区文档与分析。
心理螳螂:把“读”写在硬件上
《合金装备》(1998)里的 Psycho Mantis 会翻你的记忆卡,评论你玩过的科乐美游戏;战斗中他像能预判你的每个动作,破解办法是把手柄从 1 号口换到 2 号口,他就“读不到”了中。“因为 AI 读的是 1 号口输入”这个机制解释来自社区社区。他是玩笑里最字面的读指令:连解药都是硬件层面的。
影之刃零:开发者明确说“没有用读指令”
- 制作人梁其伟(Soulframe)在 Automaton 采访中说,最高难度设计成像和真人对战,但“极限状态下电脑会看穿玩家的操作输入……绝对赢不了”,因此制作中完全没有使用“读指令”高·开发者。
- 最高难度逆天者(Hellwalker)的 AI 会根据玩家行为动态变化,没有固定套路高·开发者。
- 最简单的入门难度主要降低的是敌人的“进攻欲望”和“对玩家行动的反应速度”,而不是削血量。这正是本页的两个滑块高·开发者。
- 杀气(Sha-Chi):敌我共用的一条资源,类似体力 + 架势 + 防御;打空对方的杀气就破防。中文名来自国内媒体与攻略,数值细节非官方中。
- 红光/蓝光提示(红=闪避,蓝=弹反)把“该怎么应对”画在敌人身上——这是“公平反馈”的范例:让人类有机会看见、再反应中。
时间线:一次出招发生了什么
| 帧 | 读按键 | 读动作 | 看画面 |
|---|---|---|---|
| 按下 (input) | 敌人知道 → | — | — |
| +2 动作开始 | 已在反应 | 敌人知道 → | 敌人开始“等” |
| +2+延迟 | — | — | 敌人决定行动 |
| +6 起手之后 | 闪避无敌帧才生效,持续 16 帧;刚好盖住判定帧才算躲开 | ||
源码查看
下面读取 src/duel.js 里的真实代码,每个 #region 是一条规则。它是确定性的纯函数(整数帧、无随机时钟),所以能被视频逐帧驱动,也能在页面里实时跑。
加载中…
来源与可信度
- 街霸 II 逆向:sf2platinum · The AI engine高;摘要:Game Developer中
- SNK 综合征:Giant Bomb wiki社区;GOG 论坛 · 侍魂 2 打电脑社区
- 魂系喝药惩罚:GamesRadar中;PC Gamer中;Zullie the Witch 视频中
- ERAiAPI(Elden Ring AI 文档):AiFunc / IsInterupt接口 解读为社区
- FromSoftware 未确认:Vidaextra中
- Psycho Mantis:Wikipedia中;GamePro机制解释为社区
- 影之刃零制作人采访:Automaton(日语,2026-10-09)开发者;Inverse中
- 杀气 Sha-Chi:PC Gamer、Gamersocialclub中,数值细节非官方
- 人类反应时间:PMC6916673(小样本)、KI reaction、Killer Groove中
- 公平 AI:Our Cheatin' Hearts(Soren Johnson)高;arXiv 1904.03821中
教学简化:帧数是为演示设计的,不对应任何商业游戏的真实数值;“读动作”只代表魂系文档暗示的通知机制,并不是对某个 Boss 脚本的还原。
