# 行为树游戏演示文档 ## 概述 本演示展示了两个真实游戏场景的行为树AI系统: 1. **RPG角色AI** (`rpg-character-ai.btree`) - 智能RPG角色行为系统 2. **RTS单位AI** (`rts-unit-ai.btree`) - 智能RTS单位行为系统 这些行为树使用编辑器格式(`.btree`),可以在行为树编辑器中打开、编辑和可视化。 ## 行为树详解 ### 1. RPG角色AI (`rpg-character-ai.btree`) **优先级系统**:生存 > 战斗 > 任务 > 探索 > 休息 #### 主要行为模式: 1. **生存行为**(最高优先级) - 触发条件:生命值 < 30 - 行为:使用治疗物品 → 逃跑到安全区域 - 确保角色在危险时优先保命 2. **战斗行为** - 触发条件:发现敌人 - 智能攻击选择: - 远程攻击:距离 > 5 时使用弓箭 - 近战攻击:距离 ≤ 2 时使用剑 - 魔法攻击:魔法值 > 20 时释放法术 3. **任务行为** - 触发条件:有活跃任务 - 任务类型:收集物品、与NPC对话、前往指定地点 4. **探索行为** - 无紧急事务时进行 - 活动:寻找宝藏、收集资源 5. **休息行为**(最低优先级) - 默认行为:恢复生命值、修理装备 #### 黑板变量: - `hasEnemy`: 是否发现敌人 - `hasActiveQuest`: 是否有活跃任务 - `character.health`: 角色生命值 - `character.mana`: 角色魔法值 - `character.distanceToEnemy`: 与敌人的距离 ### 2. RTS单位AI (`rts-unit-ai.btree`) **优先级系统**:紧急防御 > 战斗 > 建造 > 资源收集 > 巡逻 #### 主要行为模式: 1. **紧急防御**(最高优先级) - 触发条件:基地受到攻击 - 行为:立即返回基地 → 参与基地防御 - 确保基地安全是最高优先级 2. **战斗行为** - 触发条件:发现敌方目标 - 行为:锁定目标 → 攻击目标 - 主动寻找并消灭敌人 3. **建造行为** - 触发条件:有建造任务 - 行为:前往建造地点 → 执行建造 - 按指令建造建筑物 4. **资源收集行为** - 默认经济行为 - 行为:寻找资源 → 收集资源 → 运送回基地 - 为基地提供经济支持 5. **巡逻行为**(最低优先级) - 空闲时的默认行为 - 行为:沿路线巡逻 → 扫描周围区域 - 保持警戒状态 #### 黑板变量: - `baseUnderAttack`: 基地是否受到攻击 - `hasTarget`: 是否发现敌方目标 - `hasBuildOrder`: 是否有建造任务 ## 演示脚本 ### RealisticGameDemo.ts 演示脚本展示了RPG角色AI的完整功能: #### 功能特性: - **实时状态显示**:生命值、魔法值、敌人状态、任务状态 - **交互式事件触发**: - 低生命值按钮:模拟角色受伤 - 敌人按钮:切换敌人发现状态 - 任务按钮:切换任务状态 - 重置按钮:恢复初始状态 - **实时日志系统**:显示AI决策和行为执行过程 - **智能行为响应**:AI根据状态变化自动调整行为 #### 事件处理器: - 治疗物品使用:恢复30点生命值 - 逃跑行为:移除敌人威胁,增加距离 - 各种攻击方式:消耗不同的魔法值 - 任务相关行为:模拟真实游戏交互 - 探索和休息:提供持续的角色发展 ## 使用指南 ### 1. 在编辑器中打开 1. 启动Cocos Creator 2. 打开行为树编辑器扩展 3. 加载 `assets/resources/rpg-character-ai.btree` 或 `rts-unit-ai.btree` 4. 可视化查看和编辑行为树结构 ### 2. 在游戏中运行 1. 将 `RealisticGameDemo` 组件添加到场景节点 2. 配置UI组件: - 状态标签:显示角色当前状态 - 日志标签:显示行为执行日志 - 控制按钮:触发不同的游戏事件 3. 运行场景,观察AI行为 ### 3. 自定义和扩展 #### 添加新的行为节点: 1. 在编辑器中添加新的事件动作节点 2. 在演示脚本中注册对应的事件处理器 3. 实现具体的行为逻辑 #### 修改优先级: 1. 在编辑器中调整选择器节点的子节点顺序 2. 更高位置的节点具有更高优先级 #### 添加新的条件: 1. 在黑板中定义新的变量 2. 为条件装饰器配置相应的条件检查 3. 在代码中更新黑板变量值 ## 实际游戏应用 ### RPG游戏中的应用: - **NPC AI**:为游戏中的NPC提供智能行为 - **伙伴AI**:玩家队友的自动战斗和支援行为 - **敌人AI**:敌人的智能战斗和逃跑策略 - **宠物AI**:宠物的跟随、战斗和辅助行为 ### RTS游戏中的应用: - **单位AI**:军事单位的自动化行为 - **工人AI**:资源收集和建造单位的智能调度 - **防御AI**:自动防御系统的智能响应 - **经济AI**:自动化的经济发展策略 ## 学习要点 1. **优先级设计**:合理的优先级确保AI在复杂情况下做出正确决策 2. **状态管理**:通过黑板系统有效管理AI状态 3. **事件驱动**:使用事件系统实现松耦合的行为实现 4. **条件判断**:智能的条件系统让AI能够适应不同情况 5. **模块化设计**:每个行为模块独立,便于维护和扩展 这些行为树演示了如何构建商业级游戏AI系统,为开发者提供了完整的参考实现。