SuperAPI AI 工具集

state-trees

智能体与模型

查看项目

更新于 11-06 17:23

技能介绍

StateTree 是虚幻引擎的层级状态机系统,用于构建 AI 行为与游戏逻辑。本技能覆盖通过 unreal.StateTreeService 创建和编辑 StateTree 资产的能力。

主要能力:

  • 资产与状态管理:创建 StateTree 资产、添加/移动/删除/启用状态、设置状态类型与属性、重命名状态、设置状态标签与权重、展开与选中状态。
  • 任务管理:为状态添加、检查、移动、移除任务,设置任务属性值,并支持确定性属性模式。
  • 转换管理:添加转换(触发条件、类型、优先级),更新与移动转换,支持完整的 OnDelegate 工作流。
  • 条件与考量:添加进入条件与转换条件,设置操作数与绑定;支持 Utility AI 考量(Constant、FloatInput、EnumInput)的添加、检查、设置与绑定。
  • 评估器与全局任务:添加、检查与绑定 Evaluator 和全局任务。
  • 属性绑定:将任务属性绑定到上下文(Actor)、根参数、全局任务或评估器。
  • 根参数与实例覆盖:读取根参数、添加或更新根参数、删除或重命名根参数;对已放置 Actor 设置组件参数覆盖。
  • 编译与保存:结构性修改后需编译,再保存资产。
  • 主题颜色:获取主题颜色、设置状态主题颜色、重命名主题颜色(非材质参数)。

使用方式:通过 Python 调用 unreal.StateTreeService 的接口,典型流程为:创建资产(create_state_tree)→ 构建状态层级(add_state,空 parent_path 创建顶级子树,先创建 Root)→ 添加任务(add_task)→ 添加转换(add_transition,GotoState 需提供目标路径)→ 编译(compile_state_tree)→ 保存(save_state_tree)→ 选中最后修改的状态。若默认 schema 不可用,需先调用 list_state_tree_schemas 并显式传入可用 schema。

蓝图任务(STT_ 前缀)属于蓝图资产,其变量、函数重写与节点连线需通过 BlueprintService 与蓝图相关技能编辑;涉及节点连线、定时器、自定义事件时还需加载 blueprint-graphs 子技能。编辑 STT 任务图时应使用 override_function 处理 ReceiveLatentEnterState 等事件,按图标题定位事件节点,非阻塞等待优先使用 Set Timer by Event,完成后须检查节点、连接与编译结果。

适用场景:为游戏 AI 构建行为状态机、管理状态间转换条件、配置 Utility AI 考量与属性绑定、批量编辑 StateTree 资产结构。

限制与注意事项:结构性变更必须重新编译;绑定属性前必须先设置上下文 Actor 类,否则绑定失败;移动状态应使用 move_state 而非删除后重建;更新转换应使用 update_transition 而非删除后重建,以免丢失条件;不应通过 AssetTools + StateTreeFactory 创建 StateTree。部分图构建需逐步创建并验证节点。