Files
esengine/extensions/cocos/cocos-ecs/assets/resources/scout-ai.btree

2599 lines
69 KiB
Plaintext
Raw Normal View History

2025-06-24 19:34:37 +08:00
{
"nodes": [
{
"id": "root",
"type": "root",
"name": "侦察兵AI根节点",
"position": {
"x": 400,
"y": 50
},
"properties": {},
"children": [
"main-selector"
],
"x": 2115,
"y": 50,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "main-selector",
"type": "selector",
"name": "主选择器",
"position": {
"x": 400,
"y": 150
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "根据优先级选择行为:生存 > 命令执行 > 自主侦察",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"survival-sequence",
"command-sequence",
"autonomous-sequence"
],
"x": 2125,
"y": 180,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "survival-sequence",
"type": "sequence",
"name": "生存序列",
"position": {
"x": 200,
"y": 250
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "处理威胁和生存相关行为",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"threat-detection"
],
"x": 860,
"y": 376,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "threat-detection",
"type": "conditional-decorator",
"name": "威胁检测",
"position": {
"x": 150,
"y": 350
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "检测周围是否有威胁",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "threatDetected",
"operator": "equal",
"compareValue": true
}
},
"children": [
"survival-selector"
],
"x": 860,
"y": 572,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "threatDetected",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "survival-selector",
"type": "selector",
"name": "生存选择器",
"position": {
"x": 200,
"y": 450
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "选择合适的生存策略",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"stealth-escape",
"evasive-maneuver",
"emergency-retreat"
],
"x": 860,
"y": 874.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "stealth-escape",
"type": "sequence",
"name": "隐蔽脱离",
"position": {
"x": 100,
"y": 550
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "使用隐蔽能力脱离危险",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"can-stealth-check",
"activate-stealth",
"stealth-retreat"
],
"x": 630,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "can-stealth-check",
"type": "conditional-decorator",
"name": "隐蔽能力检查",
"position": {
"x": 50,
"y": 650
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "stealthAvailable",
"operator": "equal",
"compareValue": true
}
},
"children": [
"activate-stealth"
],
"x": 400,
"y": 1266.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "stealthAvailable",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "activate-stealth",
"type": "event-action",
"name": "激活隐蔽",
"position": {
"x": 100,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "activate-stealth",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "激活隐蔽模式",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 630,
"y": 1266.9,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "stealth-retreat",
"type": "event-action",
"name": "隐蔽撤退",
"position": {
"x": 150,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "stealth-retreat",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "在隐蔽状态下撤退",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 860,
"y": 1266.9,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "evasive-maneuver",
"type": "event-action",
"name": "规避机动",
"position": {
"x": 200,
"y": 550
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "evasive-maneuver",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行规避机动动作",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1090,
"y": 1070.9,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "emergency-retreat",
"type": "event-action",
"name": "紧急撤退",
"position": {
"x": 300,
"y": 550
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "emergency-retreat",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "快速撤退到安全区域",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1320,
"y": 1070.9,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "command-sequence",
"type": "sequence",
"name": "命令执行",
"position": {
"x": 400,
"y": 250
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行玩家发布的侦察命令",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"has-command-check"
],
"x": 2125,
"y": 376,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "has-command-check",
"type": "conditional-decorator",
"name": "命令检查",
"position": {
"x": 350,
"y": 350
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "检查是否有待执行的命令",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasTarget",
"operator": "equal",
"compareValue": true
}
},
"children": [
"command-selector"
],
"x": 2125,
"y": 572,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "hasTarget",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "command-selector",
"type": "selector",
"name": "命令选择器",
"position": {
"x": 400,
"y": 450
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "根据命令类型选择执行方式",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"scout-command",
"move-command",
"observe-command",
"patrol-command"
],
"x": 2125,
"y": 874.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "scout-command",
"type": "conditional-decorator",
"name": "侦察命令",
"position": {
"x": 300,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行区域侦察任务",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "scout"
}
},
"children": [
"scout-sequence"
],
"x": 1780,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "scout"
}
}
},
{
"id": "scout-sequence",
"type": "sequence",
"name": "侦察序列",
"position": {
"x": 300,
"y": 750
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "完整的侦察流程",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"approach-carefully",
"scan-area",
"report-findings"
],
"x": 1780,
"y": 1373.8000000000002,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "approach-carefully",
"type": "event-action",
"name": "谨慎接近",
"position": {
"x": 200,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "approach-carefully",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "谨慎接近目标区域",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1550,
"y": 1569.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "scan-area",
"type": "event-action",
"name": "扫描区域",
"position": {
"x": 300,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "scan-area",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "扫描并记录区域信息",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1780,
"y": 1569.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "report-findings",
"type": "event-action",
"name": "报告发现",
"position": {
"x": 400,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "report-findings",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "向指挥部报告侦察结果",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2010,
"y": 1569.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "move-command",
"type": "conditional-decorator",
"name": "移动命令",
"position": {
"x": 400,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行移动到目标位置",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "move"
}
},
"children": [
"stealth-move"
],
"x": 2240,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "move"
}
}
},
{
"id": "stealth-move",
"type": "event-action",
"name": "隐蔽移动",
"position": {
"x": 400,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "stealth-move",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "以隐蔽方式移动到目标位置",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2240,
"y": 1373.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "observe-command",
"type": "conditional-decorator",
"name": "观察命令",
"position": {
"x": 500,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行目标观察任务",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "observe"
}
},
"children": [
"observe-target"
],
"x": 2470,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "observe"
}
}
},
{
"id": "observe-target",
"type": "event-action",
"name": "观察目标",
"position": {
"x": 500,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "observe-target",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "持续观察指定目标",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2470,
"y": 1373.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "patrol-command",
"type": "conditional-decorator",
"name": "巡逻命令",
"position": {
"x": 600,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行区域巡逻",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "patrol"
}
},
"children": [
"reconnaissance-patrol"
],
"x": 2700,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "patrol"
}
}
},
{
"id": "reconnaissance-patrol",
"type": "event-action",
"name": "侦察巡逻",
"position": {
"x": 600,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "reconnaissance-patrol",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "在指定区域进行侦察巡逻",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2700,
"y": 1373.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "autonomous-sequence",
"type": "sequence",
"name": "自主行为",
"position": {
"x": 600,
"y": 250
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "没有命令时的自主侦察行为",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"autonomous-selector"
],
"x": 3390,
"y": 376,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "autonomous-selector",
"type": "selector",
"name": "自主选择器",
"position": {
"x": 600,
"y": 350
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "选择自主行为模式",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"explore-unknown",
"monitor-area",
"return-to-base"
],
"x": 3390,
"y": 572,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "explore-unknown",
"type": "sequence",
"name": "探索未知区域",
"position": {
"x": 550,
"y": 450
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "自主探索未知区域",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"has-unknown-area",
"explore-action"
],
"x": 3045,
"y": 768,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "has-unknown-area",
"type": "conditional-decorator",
"name": "未知区域检查",
"position": {
"x": 500,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasUnknownArea",
"operator": "equal",
"compareValue": true
}
},
"children": [
"explore-action"
],
"x": 2930,
"y": 964,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "hasUnknownArea",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "explore-action",
"type": "event-action",
"name": "探索行动",
"position": {
"x": 550,
"y": 650
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "explore-unknown-area",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "探索最近的未知区域",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 3160,
"y": 964,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "monitor-area",
"type": "sequence",
"name": "监控区域",
"position": {
"x": 650,
"y": 450
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "监控重要区域",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"has-monitoring-target",
"monitor-action"
],
"x": 3505,
"y": 768,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "has-monitoring-target",
"type": "conditional-decorator",
"name": "监控目标检查",
"position": {
"x": 600,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasMonitoringTarget",
"operator": "equal",
"compareValue": true
}
},
"children": [
"monitor-action"
],
"x": 3390,
"y": 964,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "hasMonitoringTarget",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "monitor-action",
"type": "event-action",
"name": "监控行动",
"position": {
"x": 650,
"y": 650
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "monitor-strategic-area",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "监控战略重要区域",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 3620,
"y": 964,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "return-to-base",
"type": "event-action",
"name": "返回基地",
"position": {
"x": 750,
"y": 450
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "return-to-base",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "返回基地待命",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 3850,
"y": 768,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
}
],
"connections": [
{
"id": "root-main-selector",
"sourceId": "root",
"targetId": "main-selector",
"path": "M 2195 128 C 2195 158 2205 152 2205 182",
"active": false
},
{
"id": "main-selector-survival-sequence",
"sourceId": "main-selector",
"targetId": "survival-sequence",
"path": "M 2205 278 C 2205 328 940 328 940 378",
"active": false
},
{
"id": "main-selector-command-sequence",
"sourceId": "main-selector",
"targetId": "command-sequence",
"path": "M 2205 278 C 2205 328 2205 328 2205 378",
"active": false
},
{
"id": "main-selector-autonomous-sequence",
"sourceId": "main-selector",
"targetId": "autonomous-sequence",
"path": "M 2205 278 C 2205 328 3470 328 3470 378",
"active": false
},
{
"id": "survival-sequence-threat-detection",
"sourceId": "survival-sequence",
"targetId": "threat-detection",
"path": "M 940 474 C 940 524 970 524 970 574",
"active": false
},
{
"id": "threat-detection-survival-selector",
"sourceId": "threat-detection",
"targetId": "survival-selector",
"path": "M 970 757.78125 C 970 817.3359375 940 817.3359375 940 876.890625",
"active": false
},
{
"id": "survival-selector-stealth-escape",
"sourceId": "survival-selector",
"targetId": "stealth-escape",
"path": "M 940 972.890625 C 940 1022.890625 710 1022.890625 710 1072.890625",
"active": false
},
{
"id": "survival-selector-evasive-maneuver",
"sourceId": "survival-selector",
"targetId": "evasive-maneuver",
"path": "M 940 972.890625 C 940 1022.890625 1170 1022.890625 1170 1072.890625",
"active": false
},
{
"id": "survival-selector-emergency-retreat",
"sourceId": "survival-selector",
"targetId": "emergency-retreat",
"path": "M 940 972.890625 C 940 1022.890625 1400 1022.890625 1400 1072.890625",
"active": false
},
{
"id": "stealth-escape-can-stealth-check",
"sourceId": "stealth-escape",
"targetId": "can-stealth-check",
"path": "M 710 1168.890625 C 710 1218.890625 510 1218.890625 510 1268.890625",
"active": false
},
{
"id": "stealth-escape-activate-stealth",
"sourceId": "stealth-escape",
"targetId": "activate-stealth",
"path": "M 710 1168.890625 C 710 1218.890625 710 1218.890625 710 1268.890625",
"active": false
},
{
"id": "stealth-escape-stealth-retreat",
"sourceId": "stealth-escape",
"targetId": "stealth-retreat",
"path": "M 710 1168.890625 C 710 1218.890625 940 1218.890625 940 1268.890625",
"active": false
},
{
"id": "can-stealth-check-activate-stealth",
"sourceId": "can-stealth-check",
"targetId": "activate-stealth",
"path": "M 510 1452.671875 C 510 1532.671875 710 1188.890625 710 1268.890625",
"active": false
},
{
"id": "command-sequence-has-command-check",
"sourceId": "command-sequence",
"targetId": "has-command-check",
"path": "M 2205 474 C 2205 524 2235 524 2235 574",
"active": false
},
{
"id": "has-command-check-command-selector",
"sourceId": "has-command-check",
"targetId": "command-selector",
"path": "M 2235 757.78125 C 2235 817.3359375 2205 817.3359375 2205 876.890625",
"active": false
},
{
"id": "command-selector-scout-command",
"sourceId": "command-selector",
"targetId": "scout-command",
"path": "M 2205 972.890625 C 2205 1022.890625 1890 1022.890625 1890 1072.890625",
"active": false
},
{
"id": "command-selector-move-command",
"sourceId": "command-selector",
"targetId": "move-command",
"path": "M 2205 972.890625 C 2205 1022.890625 2350 1022.890625 2350 1072.890625",
"active": false
},
{
"id": "command-selector-observe-command",
"sourceId": "command-selector",
"targetId": "observe-command",
"path": "M 2205 972.890625 C 2205 1022.890625 2580 1022.890625 2580 1072.890625",
"active": false
},
{
"id": "command-selector-patrol-command",
"sourceId": "command-selector",
"targetId": "patrol-command",
"path": "M 2205 972.890625 C 2205 1022.890625 2810 1022.890625 2810 1072.890625",
"active": false
},
{
"id": "scout-command-scout-sequence",
"sourceId": "scout-command",
"targetId": "scout-sequence",
"path": "M 1890 1256.671875 C 1890 1316.234375 1860 1316.234375 1860 1375.796875",
"active": false
},
{
"id": "scout-sequence-approach-carefully",
"sourceId": "scout-sequence",
"targetId": "approach-carefully",
"path": "M 1860 1471.796875 C 1860 1521.796875 1630 1521.796875 1630 1571.796875",
"active": false
},
{
"id": "scout-sequence-scan-area",
"sourceId": "scout-sequence",
"targetId": "scan-area",
"path": "M 1860 1471.796875 C 1860 1521.796875 1860 1521.796875 1860 1571.796875",
"active": false
},
{
"id": "scout-sequence-report-findings",
"sourceId": "scout-sequence",
"targetId": "report-findings",
"path": "M 1860 1471.796875 C 1860 1521.796875 2090 1521.796875 2090 1571.796875",
"active": false
},
{
"id": "move-command-stealth-move",
"sourceId": "move-command",
"targetId": "stealth-move",
"path": "M 2350 1256.671875 C 2350 1316.234375 2320 1316.234375 2320 1375.796875",
"active": false
},
{
"id": "observe-command-observe-target",
"sourceId": "observe-command",
"targetId": "observe-target",
"path": "M 2580 1256.671875 C 2580 1316.234375 2550 1316.234375 2550 1375.796875",
"active": false
},
{
"id": "patrol-command-reconnaissance-patrol",
"sourceId": "patrol-command",
"targetId": "reconnaissance-patrol",
"path": "M 2810 1256.671875 C 2810 1316.234375 2780 1316.234375 2780 1375.796875",
"active": false
},
{
"id": "autonomous-sequence-autonomous-selector",
"sourceId": "autonomous-sequence",
"targetId": "autonomous-selector",
"path": "M 3470 474 C 3470 524 3470 524 3470 574",
"active": false
},
{
"id": "autonomous-selector-explore-unknown",
"sourceId": "autonomous-selector",
"targetId": "explore-unknown",
"path": "M 3470 670 C 3470 720 3125 720 3125 770",
"active": false
},
{
"id": "autonomous-selector-monitor-area",
"sourceId": "autonomous-selector",
"targetId": "monitor-area",
"path": "M 3470 670 C 3470 720 3585 720 3585 770",
"active": false
},
{
"id": "autonomous-selector-return-to-base",
"sourceId": "autonomous-selector",
"targetId": "return-to-base",
"path": "M 3470 670 C 3470 720 3930 720 3930 770",
"active": false
},
{
"id": "explore-unknown-has-unknown-area",
"sourceId": "explore-unknown",
"targetId": "has-unknown-area",
"path": "M 3125 866 C 3125 916 3040 916 3040 966",
"active": false
},
{
"id": "explore-unknown-explore-action",
"sourceId": "explore-unknown",
"targetId": "explore-action",
"path": "M 3125 866 C 3125 916 3240 916 3240 966",
"active": false
},
{
"id": "has-unknown-area-explore-action",
"sourceId": "has-unknown-area",
"targetId": "explore-action",
"path": "M 3040 1149.78125 C 3040 1229.78125 3240 886 3240 966",
"active": false
},
{
"id": "monitor-area-has-monitoring-target",
"sourceId": "monitor-area",
"targetId": "has-monitoring-target",
"path": "M 3585 866 C 3585 916 3500 916 3500 966",
"active": false
},
{
"id": "monitor-area-monitor-action",
"sourceId": "monitor-area",
"targetId": "monitor-action",
"path": "M 3585 866 C 3585 916 3700 916 3700 966",
"active": false
},
{
"id": "has-monitoring-target-monitor-action",
"sourceId": "has-monitoring-target",
"targetId": "monitor-action",
"path": "M 3500 1149.78125 C 3500 1229.78125 3700 886 3700 966",
"active": false
}
],
"metadata": {
"name": "assets/resources/scout-ai.btree",
"created": "2025-06-24T09:47:19.046Z",
"version": "1.0"
},
"blackboard": [
{
"name": "unitType",
"type": "string",
"value": "scout",
"description": "单位类型"
},
{
"name": "currentHealth",
"type": "number",
"value": 80,
"description": "当前生命值"
},
{
"name": "maxHealth",
"type": "number",
"value": 80,
"description": "最大生命值"
},
{
"name": "threatDetected",
"type": "boolean",
"value": false,
"description": "是否检测到威胁"
},
{
"name": "stealthAvailable",
"type": "boolean",
"value": true,
"description": "隐蔽能力是否可用"
},
{
"name": "currentCommand",
"type": "string",
"value": "idle",
"description": "当前执行的命令"
},
{
"name": "hasTarget",
"type": "boolean",
"value": false,
"description": "是否有目标"
},
{
"name": "targetPosition",
"type": "object",
"value": {
"x": 0,
"y": 0,
"z": 0
},
"description": "目标位置"
},
{
"name": "hasUnknownArea",
"type": "boolean",
"value": true,
"description": "是否有未探索的区域"
},
{
"name": "hasMonitoringTarget",
"type": "boolean",
"value": false,
"description": "是否有需要监控的目标"
},
{
"name": "visionRange",
"type": "number",
"value": 8,
"description": "视野范围"
},
{
"name": "moveSpeed",
"type": "number",
"value": 5,
"description": "移动速度"
},
{
"name": "stealthDuration",
"type": "number",
"value": 10,
"description": "隐蔽持续时间"
},
{
"name": "detectionRadius",
"type": "number",
"value": 6,
"description": "威胁检测半径"
},
{
"name": "lastReportTime",
"type": "number",
"value": 0,
"description": "上次报告时间"
},
{
"name": "exploredAreas",
"type": "array",
"value": [],
"description": "已探索区域列表"
},
{
"name": "intelligenceData",
"type": "object",
"value": {},
"description": "收集的情报数据"
}
]
}