Files
esengine/extensions/cocos/cocos-ecs/assets/resources/worker-ai.bt.json
2025-06-24 19:34:37 +08:00

380 lines
9.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"id": "worker-ai",
"name": "工人AI行为树",
"description": "工人单位的智能行为系统,包含资源收集、建造、修理等功能",
"version": "1.0.0",
"author": "ECS Framework",
"nodes": [
{
"id": "root",
"type": "root",
"name": "工人AI根节点",
"description": "工人AI的根节点管理所有工人行为",
"children": ["main-selector"]
},
{
"id": "main-selector",
"type": "selector",
"name": "主行为选择器",
"description": "按优先级选择工人行为:逃跑 > 执行命令 > 空闲",
"children": ["flee-behavior", "command-behavior", "idle-behavior"]
},
{
"id": "flee-behavior",
"type": "conditional-decorator",
"name": "逃跑行为",
"description": "生命值低时逃跑到安全区域",
"children": ["flee-sequence"],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "isLowHealth",
"compareOperator": "equals",
"compareValue": true
}
}
},
{
"id": "flee-sequence",
"type": "sequence",
"name": "逃跑序列",
"description": "执行逃跑行为的完整序列",
"children": ["set-flee-state", "move-to-safety", "heal-self"]
},
{
"id": "set-flee-state",
"type": "set-blackboard-value",
"name": "设置逃跑状态",
"description": "将工人状态设置为逃跑",
"properties": {
"variableName": "currentState",
"value": "fleeing"
}
},
{
"id": "move-to-safety",
"type": "event-action",
"name": "移动到安全区域",
"description": "移动到最近的安全建筑",
"properties": {
"eventName": "move-to-safety"
}
},
{
"id": "heal-self",
"type": "event-action",
"name": "自我治疗",
"description": "使用治疗物品恢复生命值",
"properties": {
"eventName": "heal-self"
}
},
{
"id": "command-behavior",
"type": "conditional-decorator",
"name": "命令行为",
"description": "有命令时执行相应行为",
"children": ["command-selector"],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasTarget",
"compareOperator": "equals",
"compareValue": true
}
}
},
{
"id": "command-selector",
"type": "selector",
"name": "命令选择器",
"description": "根据命令类型选择行为",
"children": ["gather-behavior", "build-behavior", "repair-behavior", "move-behavior"]
},
{
"id": "gather-behavior",
"type": "conditional-decorator",
"name": "收集行为",
"description": "收集资源的行为",
"children": ["gather-sequence"],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"compareOperator": "equals",
"compareValue": "gather"
}
}
},
{
"id": "gather-sequence",
"type": "sequence",
"name": "收集序列",
"description": "完整的资源收集流程",
"children": ["move-to-resource", "collect-resource", "return-to-base"]
},
{
"id": "move-to-resource",
"type": "event-action",
"name": "移动到资源",
"description": "移动到目标资源点",
"properties": {
"eventName": "move-to-target"
}
},
{
"id": "collect-resource",
"type": "event-action",
"name": "收集资源",
"description": "执行资源收集动作",
"properties": {
"eventName": "gather-resource"
}
},
{
"id": "return-to-base",
"type": "event-action",
"name": "返回基地",
"description": "将资源运回基地",
"properties": {
"eventName": "return-to-base"
}
},
{
"id": "build-behavior",
"type": "conditional-decorator",
"name": "建造行为",
"description": "建造建筑的行为",
"children": ["build-sequence"],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"compareOperator": "equals",
"compareValue": "build"
}
}
},
{
"id": "build-sequence",
"type": "sequence",
"name": "建造序列",
"description": "完整的建造流程",
"children": ["move-to-build-site", "construct-building"]
},
{
"id": "move-to-build-site",
"type": "event-action",
"name": "移动到建筑工地",
"description": "移动到指定的建筑位置",
"properties": {
"eventName": "move-to-target"
}
},
{
"id": "construct-building",
"type": "event-action",
"name": "建造建筑",
"description": "执行建筑建造动作",
"properties": {
"eventName": "construct-building"
}
},
{
"id": "repair-behavior",
"type": "conditional-decorator",
"name": "修理行为",
"description": "修理损坏建筑的行为",
"children": ["repair-sequence"],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"compareOperator": "equals",
"compareValue": "repair"
}
}
},
{
"id": "repair-sequence",
"type": "sequence",
"name": "修理序列",
"description": "完整的修理流程",
"children": ["move-to-building", "repair-building"]
},
{
"id": "move-to-building",
"type": "event-action",
"name": "移动到建筑",
"description": "移动到需要修理的建筑",
"properties": {
"eventName": "move-to-target"
}
},
{
"id": "repair-building",
"type": "event-action",
"name": "修理建筑",
"description": "执行建筑修理动作",
"properties": {
"eventName": "repair-building"
}
},
{
"id": "move-behavior",
"type": "conditional-decorator",
"name": "移动行为",
"description": "单纯的移动行为",
"children": ["simple-move"],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"compareOperator": "equals",
"compareValue": "move"
}
}
},
{
"id": "simple-move",
"type": "event-action",
"name": "简单移动",
"description": "移动到指定位置",
"properties": {
"eventName": "move-to-target"
}
},
{
"id": "idle-behavior",
"type": "sequence",
"name": "空闲行为",
"description": "没有任务时的默认行为",
"children": ["set-idle-state", "idle-wait"]
},
{
"id": "set-idle-state",
"type": "set-blackboard-value",
"name": "设置空闲状态",
"description": "将工人状态设置为空闲",
"properties": {
"variableName": "currentState",
"value": "idle"
}
},
{
"id": "idle-wait",
"type": "wait-action",
"name": "空闲等待",
"description": "空闲时等待一段时间",
"properties": {
"waitTime": 1.0
}
}
],
"blackboard": [
{
"name": "currentState",
"type": "string",
"value": "idle",
"description": "工人当前状态idle、working、fleeing、gathering、building、repairing",
"group": "状态"
},
{
"name": "currentCommand",
"type": "string",
"value": "idle",
"description": "当前接收的命令idle、move、gather、build、repair、attack",
"group": "命令"
},
{
"name": "hasTarget",
"type": "boolean",
"value": false,
"description": "是否有目标任务",
"group": "目标"
},
{
"name": "targetPosition",
"type": "object",
"value": {"x": 0, "y": 0, "z": 0},
"description": "目标位置坐标",
"group": "目标"
},
{
"name": "currentHealth",
"type": "number",
"value": 100,
"description": "当前生命值",
"group": "状态"
},
{
"name": "maxHealth",
"type": "number",
"value": 100,
"description": "最大生命值",
"group": "状态"
},
{
"name": "healthPercentage",
"type": "number",
"value": 1.0,
"description": "生命值百分比",
"group": "状态"
},
{
"name": "isLowHealth",
"type": "boolean",
"value": false,
"description": "是否生命值较低低于30%",
"group": "状态"
},
{
"name": "moveSpeed",
"type": "number",
"value": 3.0,
"description": "移动速度",
"group": "属性"
},
{
"name": "gatherSpeed",
"type": "number",
"value": 1.0,
"description": "资源收集速度",
"group": "属性"
},
{
"name": "buildSpeed",
"type": "number",
"value": 1.0,
"description": "建造速度",
"group": "属性"
},
{
"name": "carryCapacity",
"type": "number",
"value": 10,
"description": "携带容量",
"group": "属性"
},
{
"name": "currentLoad",
"type": "number",
"value": 0,
"description": "当前携带量",
"group": "状态"
},
{
"name": "resourceType",
"type": "string",
"value": "none",
"description": "携带的资源类型",
"group": "状态"
}
],
"metadata": {
"created": "2024-01-01T00:00:00.000Z",
"nodeCount": 30,
"editorVersion": "1.0.0",
"description": "工人AI展示了完整的RTS单位行为模式包括生存、工作、建造等多种行为的优先级管理和状态切换。"
}
}