通用状态分支仿真¶
通用状态分支仿真用于把复杂课程流程组织成多级状态机,通过“进入状态”“退出状态”和“设置条件”来驱动分支变化。它适合多阶段任务、NPC 行为、区域流程、剧情推进和训练步骤编排。
资源文件¶
| 项目 | 内容 |
|---|---|
| 分类 | 逻辑控制 |
| 可用版本 | 通用状态分支仿真-v1.0.xobj 到 通用状态分支仿真-v1.3.xobj |
| 推荐说明版本 | 通用状态分支仿真-v1.3_文档.txt |
| 更新日志 | 通用状态分支仿真-更新日志.txt |
| 示例图片 | VR房示例 A区完整状态图.png 等多张配置图 |
| 来源目录 | 00 通用/逻辑控制/通用状态分支仿真 |
使用前提¶
- 已经把课程流程拆成清晰状态,例如“原地不动”“匪徒靠近”“匪徒喊话结束”“匪徒被攻击”“匪徒死亡”。
- 已经明确状态之间的进入条件和退出条件。
- 需要在编课时配置状态名、条件属性和状态属性。
状态命名规则¶
资源按层级状态组织参数和事件:
| 形式 | 含义 | 示例 |
|---|---|---|
1状态名 |
一级状态或根状态。 | A区流程 |
1.1状态名 |
二级状态。 | 匪徒行为 |
1.1.1状态名 |
三级状态。 | 原地不动 |
进入状态*.* |
进入某个二级状态时触发。 | 进入状态1.1 |
进入状态*.*.* |
进入某个三级状态时触发。 | 进入状态1.1.3 |
星号代表具体状态编号。编排逻辑时,需要用实际状态编号替换通配形式。
参数说明¶
属性栏中配置状态名称、进入条件和调试窗口开关。

参数配置完成后,后续通常会在逻辑元中监听进入/退出状态事件,并通过设置条件行为推动状态变化。


| 参数 | 作用 | 推荐配置 | 注意事项 |
|---|---|---|---|
1状态名 |
配置根状态名称。 | 使用业务含义清楚的名称。 | 不建议只写“状态1”。 |
1.1状态名、1.2状态名、1.3状态名 |
配置二级状态名称。 | 对应课程阶段或对象大状态。 | 状态数量应和实际流程一致。 |
1.1.1状态名 等三级状态名 |
配置三级状态名称。 | 对应具体动作、结果或任务节点。 | 建议和状态图保持一致。 |
进入1.1状态、进入1.2状态、进入1.3状态 |
配置进入二级状态的条件。 | 使用明确条件,例如靠近、完成、死亡、变量达成。 | 原说明较简略,应结合示例图确认条件配置方式。 |
进入1.1.1状态 等三级进入条件 |
配置进入三级状态的条件。 | 每个三级状态只保留必要条件。 | 条件过多时建议拆分流程,避免难以调试。 |
| 空格+按键显隐窗口 | 调试时显示或隐藏状态窗口。 | 调试阶段开启,正式交付前确认是否保留。 | 避免正式训练中误触调试窗口。 |
监听事件¶
监听事件用于接收状态机进入、退出指定层级状态的结果。

编辑器下拉列表中会按资源版本显示可选事件,选择事件后再在右侧填写具体状态编号,例如 1、1.1 或 1.1.1。
| 事件 | 触发条件 | 典型用途 |
|---|---|---|
| 进入状态. | 进入指定二级状态。 | 启动阶段逻辑、显示提示、播放语音。 |
| 退出状态. | 退出指定二级状态。 | 清理阶段效果、关闭监听。 |
| 进入状态..* | 进入指定三级状态。 | 触发具体动作、记录数据、切换 NPC 行为。 |
| 退出状态..* | 退出指定三级状态。 | 停止动作、关闭临时效果。 |
| 退出初始状态 | 资源离开初始状态。 | 标记流程正式开始。 |
可执行行为¶
执行行为用于进入初始状态,或为二级、三级状态设置条件值。

设置条件行为需要同时填写状态编号、条件名和目标值。二级状态使用 *.* 形式,三级状态使用 *.*.* 形式。
| 行为 | 效果 | 常见调用时机 |
|---|---|---|
| 进入初始状态 | 将状态机恢复到初始状态。 | 课程重置、章节重来、调试复位。 |
| 设置条件.-为 | 设置二级状态条件值。 | 外部事件改变状态进入条件。 |
| 设置条件..-为* | 设置三级状态条件值。 | 点击、距离、变量、实体状态改变后驱动分支。 |
使用步骤¶
- 先画出课程状态图,确认一级、二级、三级状态。
- 在资源参数中填写所有状态名。
- 为每个需要自动进入的状态配置进入条件。
- 在外部逻辑中通过“设置条件”为状态机提供输入。
- 监听“进入状态”和“退出状态”事件,连接实际课程表现。
- 使用调试窗口观察状态变化,确认状态机与状态图一致。
示例流程¶
以 VR 房匪徒状态为例,可以把“匪徒行为”拆成多个三级状态:











| 状态 | 可能的进入条件 | 进入后动作 |
|---|---|---|
| 原地不动 | 初始条件成立。 | 播放待机动作。 |
| 匪徒靠近 | 参训人员进入外圈或触发靠近条件。 | 播放靠近或警戒动作。 |
| 匪徒喊话结束 | 喊话音频播放完成。 | 等待下一阶段判断。 |
| 匪徒被攻击 | 命中或受击条件成立。 | 播放受击反馈。 |
| 匪徒死亡 | 存活状态为死亡。 | 触发任务完成或后续流程。 |
常见问题¶
| 问题 | 建议 |
|---|---|
| 状态没有进入。 | 检查对应“进入状态”的条件是否被设置为满足。 |
| 状态进入后没有表现。 | 确认已经监听对应“进入状态.”或“进入状态..*”事件,并连接动作逻辑。 |
| 状态图和实际运行不一致。 | 开启调试窗口,对照状态图逐个验证条件变化。 |
| 条件越来越难维护。 | 把复杂条件拆到“多条件联合判断”等资源中,再把结果输入状态机。 |