概览
minecraft:behavior.avoid_mob_type 是一个实体组件:写在自定义生物的 components 对象中,或其中某个组件组里。 让生物逃离特定实体的 AI 目标,比如苦力怕躲避猫。
字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ignore_visibility | boolean | false | 为 true 时,即使看不见威胁,生物也会逃跑。 |
avoid_target_xz | integer | 16 | 生物在水平方向上选择下一个逃跑点的范围。 |
avoid_target_y | integer | 7 | 生物在上下方向上选择下一个逃跑点的范围。 |
max_dist | number | 3 | 生物在多远处能注意到需要躲避的对象。 |
max_flee | number | 10 | 与威胁相距这么多格后,生物停止逃跑。 |
probability_per_strength | number | 1 | 根据威胁强度决定生物放弃逃跑的几率。1.0 表示 100%。范围:… 到 1 |
river_speed_multiplier | number | 0.75 | 沿河流逃跑时的速度倍率。1.0 为正常速度。 |
walk_speed_multiplier | number | 1 | 走开时的速度倍率。1.0 为正常速度。 |
sprint_speed_multiplier | number | 1 | 疾跑逃离时的速度倍率。1.0 为正常速度。 |
sprint_distance | number | 7 | 威胁距离小于这么多格时,生物开始疾跑。 |
entity_types | EntityTypes | 无 | 要逃离哪些实体,以过滤器形式填写。 |
remove_target | boolean | false | 为 true 时,生物逃跑时会忘记当前目标。 |
on_escape_event | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | 生物成功逃脱时触发的事件。 |
avoid_mob_sound | LevelSoundEvent | "undefined" | 逃跑时播放的声音事件。 |
sound_interval | FloatRange | {"max":8,"min":3} | 两次逃跑音效之间的随机等待秒数范围。 |
priority | integer | 0 | 数字越小越先执行:两个目标冲突时,priority 更小的那个胜出。范围:0 到 … |
control_flags | Goal's control flags[] | 无 | 此目标接管哪些身体部分(移动、看向、跳跃),占用相同部分的目标不能同时运行。 |
示例
写在 BP/entities/<name>.json 的 components 对象中(值为默认值或占位值):
BP/entities/<name>.json
{
"minecraft:behavior.avoid_mob_type": {
"ignore_visibility": false,
"avoid_target_xz": 16,
"avoid_target_y": 7,
"max_dist": 3,
"max_flee": 10,
"probability_per_strength": 1,
"river_speed_multiplier": 0.75,
"walk_speed_multiplier": 1
}
}