跳转至

AI意向

AI意向(AI Goal)是Minecraft基岩版中驱动生物实体自主行为的系统。每个AI意向定义了生物在满足特定条件时应执行的一种行为模式,多个AI意向基于优先级共同构成生物的行为决策逻辑。

概述

基岩版的生物AI基于优先级驱动的意向系统。每个生物实体可以拥有多个AI意向组件,每个组件对应一种行为(如行走、攻击、进食、逃跑等),并被分配一个优先级(Priority)值。优先级值越小,该行为的优先级越高。

在每个游戏刻中,引擎会评估所有可执行的AI意向,选择满足条件且优先级最高的行为来执行。当更高优先级的行为条件满足时,低优先级的行为会被中断。

行为组件

AI意向通过行为包中实体定义文件的组件来配置。行为组件的标识符通常以minecraft:behavior.为前缀,每个组件代表一种AI意向。

常见行为组件

以下按功能分类列举部分重要的AI意向组件:

移动行为

组件 功能
minecraft:behavior.random_stroll 随机漫步
minecraft:behavior.float 在水中上浮
minecraft:behavior.look_at_player 注视玩家
minecraft:behavior.random_look_around 随机环顾
minecraft:behavior.move_to_water 移向水源
minecraft:behavior.move_to_land 移向陆地
minecraft:behavior.go_home 返回家中
minecraft:behavior.follow_parent 跟随父母

攻击行为

组件 功能
minecraft:behavior.melee_attack 近战攻击
minecraft:behavior.ranged_attack 远程攻击
minecraft:behavior.hurt_by_target 反击伤害来源
minecraft:behavior.nearest_attackable_target 寻找最近的可攻击目标

交互行为

组件 功能
minecraft:behavior.breed 繁殖
minecraft:behavior.tempt 被食物引诱
minecraft:behavior.beg 乞食
minecraft:behavior.trade_with_player 与玩家交易

特殊行为

组件 功能
minecraft:behavior.panic 受伤后惊慌逃跑
minecraft:behavior.flee_sun 逃离阳光
minecraft:behavior.avoid_mob_type 回避特定类型的生物
minecraft:behavior.door_interact 开关门
minecraft:behavior.sleep 在床上睡觉

优先级

每个行为组件的priority字段决定了其执行优先级。一般来说,生存相关的行为(如逃跑、攻击)设置为较小的数值(高优先级),而休闲行为(如随机漫步、环顾)设置为较大的数值(低优先级)。

优先级示例
{
  "minecraft:behavior.panic": { "priority": 1, "speed_multiplier": 1.25 },
  "minecraft:behavior.breed": { "priority": 3, "speed_multiplier": 1.0 },
  "minecraft:behavior.random_stroll": { "priority": 6, "speed_multiplier": 0.8 },
  "minecraft:behavior.look_at_player": { "priority": 7 }
}

导航

AI意向在执行移动相关行为时依赖导航(Navigation)组件来规划路径。不同类型的导航组件适用于不同的运动方式:

  • minecraft:navigation.walk:步行导航,适用于陆地生物。
  • minecraft:navigation.fly:飞行导航,适用于飞行生物。
  • minecraft:navigation.swim:游泳导航,适用于水生生物。
  • minecraft:navigation.float:漂浮导航,适用于在水面漂浮的生物。
  • minecraft:navigation.climb:攀爬导航,适用于可以攀爬的生物。
  • minecraft:navigation.hover:悬浮导航,适用于悬浮在空中的生物。

导航组件控制着寻路的细节参数,如是否可以开门、是否可以穿越水面、是否可以破坏方块等。