状态机State Machine

用状态切换驱动角色或系统行为

筛选标签
状态机
经典案例
Dark Souls 敌人 AI · Hollow Knight · 格斗游戏

① 概念、作用与意义

概念

状态机特征强调角色、敌人或游戏系统在不同状态之间的切换。每个状态有明确的进入条件、行为和退出条件,使复杂行为变得可预测、可调试。

作用

状态机用于管理复杂行为逻辑,让玩家和开发者都能理解“当前在什么阶段、会发生什么”。它是 AI、角色控制和流程管理的基础。

意义

掌握状态机特征,有助于理解状态模式、行为树和事件驱动架构。它是从简单脚本走向复杂系统的必经之路。

② 玩法特征系统拆解

2.1 解决了什么问题?
  • 把复杂行为拆分为可管理的状态
  • 让角色/敌人行为可预测且可扩展
  • 防止多条件判断导致的逻辑混乱
2.2 学习目标
  • 设计有限状态机(FSM)
  • 掌握状态切换条件与回调
  • 用层级状态机或行为树扩展复杂度
2.3 最小规则集
  • 系统/角色有有限个明确状态
  • 状态之间有明确的切换条件
  • 每个状态定义特定的行为

③ 常见组合与变体

状态机 + AI
让敌人表现出有节奏的攻击/巡逻/受击行为
状态机 + 动画
用状态驱动动画切换,保证一致性
状态机 + 流程
管理游戏全局流程(菜单→游戏→结算)
④ 高级设计与算法(默认折叠)点击展开
设计警告
  • 状态过多时 FSM 会变得难以维护
  • 状态切换条件冲突可能导致死锁
  • 复杂 AI 建议迁移到行为树或分层 FSM
算法示例
  • 有限状态机(FSM)实现
  • 层级状态机(HFSM)
  • 行为树与状态机结合