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

2599 lines
69 KiB
Plaintext
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.
{
"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": "收集的情报数据"
}
]
}