状态机State Machine
用状态切换驱动角色或系统行为
筛选标签
状态机
经典案例
Dark Souls 敌人 AI · Hollow Knight · 格斗游戏
① 概念、作用与意义
概念
状态机特征强调角色、敌人或游戏系统在不同状态之间的切换。每个状态有明确的进入条件、行为和退出条件,使复杂行为变得可预测、可调试。
作用
状态机用于管理复杂行为逻辑,让玩家和开发者都能理解“当前在什么阶段、会发生什么”。它是 AI、角色控制和流程管理的基础。
意义
掌握状态机特征,有助于理解状态模式、行为树和事件驱动架构。它是从简单脚本走向复杂系统的必经之路。
② 玩法特征系统拆解
2.1 解决了什么问题?
- 把复杂行为拆分为可管理的状态
- 让角色/敌人行为可预测且可扩展
- 防止多条件判断导致的逻辑混乱
2.2 学习目标
- 设计有限状态机(FSM)
- 掌握状态切换条件与回调
- 用层级状态机或行为树扩展复杂度
2.3 最小规则集
- 系统/角色有有限个明确状态
- 状态之间有明确的切换条件
- 每个状态定义特定的行为
③ 常见组合与变体
状态机 + AI
让敌人表现出有节奏的攻击/巡逻/受击行为
状态机 + 动画
用状态驱动动画切换,保证一致性
状态机 + 流程
管理游戏全局流程(菜单→游戏→结算)
④ 高级设计与算法(默认折叠)点击展开
设计警告
- 状态过多时 FSM 会变得难以维护
- 状态切换条件冲突可能导致死锁
- 复杂 AI 建议迁移到行为树或分层 FSM
算法示例
- 有限状态机(FSM)实现
- 层级状态机(HFSM)
- 行为树与状态机结合