165 lines
5.2 KiB
Markdown
165 lines
5.2 KiB
Markdown
|
|
# 行为树游戏演示文档
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
本演示展示了两个真实游戏场景的行为树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系统,为开发者提供了完整的参考实现。
|