This commit is contained in:
YHH
2025-06-24 19:34:37 +08:00
parent 68a615bc7b
commit 0f18a1979e
62 changed files with 10606 additions and 2113 deletions

View File

@@ -0,0 +1,214 @@
{
"nodes": [
{
"id": "root",
"type": "root",
"name": "敌人AI根节点",
"description": "敌人AI行为树的根节点控制敌人的所有行为逻辑。包含攻击、追击和巡逻三种主要行为模式。",
"children": [
"main-selector"
]
},
{
"id": "main-selector",
"type": "selector",
"name": "主要行为选择器",
"description": "选择器节点:按优先级执行子节点(攻击>追击>巡逻)。这确保敌人在有目标时优先战斗,没有目标时进行巡逻。",
"children": [
"attack-behavior",
"chase-behavior",
"patrol-behavior"
]
},
{
"id": "attack-behavior",
"type": "conditional-decorator",
"name": "攻击行为",
"description": "条件装饰器:只有当发现目标且距离足够近时才进行攻击。这确保敌人只在有效攻击范围内战斗。",
"children": [
"attack-sequence"
],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasTarget",
"compareOperator": "equals",
"compareValue": true
}
}
},
{
"id": "attack-sequence",
"type": "sequence",
"name": "攻击序列",
"description": "序列节点:按顺序执行攻击相关的所有步骤,确保攻击逻辑的完整性。",
"children": [
"set-attack-state",
"attack-cooldown-check",
"perform-attack",
"reset-attack-cooldown"
]
},
{
"id": "set-attack-state",
"type": "set-blackboard-value",
"name": "设置攻击状态",
"description": "黑板赋值节点:将敌人状态设置为'attacking',便于其他系统了解敌人当前行为。"
},
{
"id": "attack-cooldown-check",
"type": "conditional-decorator",
"name": "攻击冷却检查",
"description": "条件装饰器检查攻击冷却是否结束。只有冷却时间为0时才能执行攻击防止过于频繁的攻击。",
"children": [
"attack-action"
],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "attackCooldown",
"compareOperator": "lessEqual",
"compareValue": 0
}
}
},
{
"id": "attack-action",
"type": "event-action",
"name": "执行攻击",
"description": "事件动作节点:触发实际的攻击事件,造成伤害并播放攻击动画和音效。"
},
{
"id": "perform-attack",
"type": "log-action",
"name": "攻击日志",
"description": "日志动作节点记录攻击行为用于调试和监控敌人AI的行为表现。"
},
{
"id": "reset-attack-cooldown",
"type": "set-blackboard-value",
"name": "重置攻击冷却",
"description": "黑板赋值节点设置攻击冷却时间为1.5秒,控制攻击频率,避免过于频繁的攻击。"
},
{
"id": "chase-behavior",
"type": "conditional-decorator",
"name": "追击行为",
"description": "条件装饰器:当发现目标但距离较远时进行追击。这是攻击和巡逻之间的中间状态。",
"children": [
"chase-sequence"
],
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasTarget",
"compareOperator": "equals",
"compareValue": true
}
}
},
{
"id": "chase-sequence",
"type": "sequence",
"name": "追击序列",
"description": "序列节点:执行追击相关的行为,包括状态设置、移动和冷却更新。",
"children": [
"set-chase-state",
"move-to-target",
"update-attack-cooldown"
]
},
{
"id": "set-chase-state",
"type": "set-blackboard-value",
"name": "设置追击状态",
"description": "黑板赋值节点:将敌人状态设置为'chasing',表示正在追击目标。"
},
{
"id": "move-to-target",
"type": "event-action",
"name": "向目标移动",
"description": "事件动作节点:触发移动事件,让敌人朝目标方向移动。移动速度比巡逻时更快。"
},
{
"id": "update-attack-cooldown",
"type": "math-blackboard-operation",
"name": "更新攻击冷却",
"description": "数学运算节点:减少攻击冷却时间,让敌人在追击过程中为下次攻击做准备。"
},
{
"id": "patrol-behavior",
"type": "sequence",
"name": "巡逻行为",
"description": "序列节点:当没有目标时执行巡逻行为。这是敌人的默认行为,确保敌人始终在活动。",
"children": [
"patrol-sequence"
]
},
{
"id": "patrol-sequence",
"type": "sequence",
"name": "巡逻序列",
"description": "序列节点:执行完整的巡逻循环,包括状态设置、移动和等待。",
"children": [
"set-patrol-state",
"patrol-move",
"patrol-wait"
]
},
{
"id": "set-patrol-state",
"type": "set-blackboard-value",
"name": "设置巡逻状态",
"description": "黑板赋值节点:将敌人状态设置为'patrolling',表示正在巡逻。"
},
{
"id": "patrol-move",
"type": "event-action",
"name": "巡逻移动",
"description": "事件动作节点:触发巡逻移动事件,让敌人在预设的巡逻路径上移动。"
},
{
"id": "patrol-wait",
"type": "wait-action",
"name": "巡逻等待",
"description": "等待动作节点在巡逻点停留2秒模拟敌人观察周围环境。这让巡逻看起来更自然。"
}
],
"blackboard": [
{
"name": "currentState",
"type": "string",
"value": "idle",
"description": "敌人的当前状态idle、attacking、chasing、patrolling用于状态跟踪和AI调试",
"group": "状态"
},
{
"name": "hasTarget",
"type": "boolean",
"value": "false",
"description": "是否发现了有效目标,决定敌人是否应该从巡逻切换到追击模式",
"group": "目标"
},
{
"name": "attackCooldown",
"type": "number",
"value": "0",
"description": "攻击冷却倒计时控制攻击频率0表示可以攻击大于0表示正在冷却",
"group": "战斗"
},
{
"name": "lastKnownTargetPosition",
"type": "string",
"value": "0,0",
"description": "最后已知的目标位置,用于敌人在失去目标后继续搜索一段时间",
"group": "目标"
}
],
"metadata": {
"name": "behavior-tree",
"created": "2025-06-24T03:38:29.653Z",
"version": "1.0",
"exportType": "clean"
}
}