minecraft:behavior.move_around_target за тебя одним переключателем.Get GodCraftОбзор
minecraft:behavior.move_around_target - компонент сущности: он пишется в объект components своего моба или в одну из его групп компонентов. Задача ИИ, которая держит моба на удобном расстоянии от цели: он отходит, если слишком близко, и подходит к случайной точке ближе, если слишком далеко.
Поля
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
destination_position_range | FloatRange | {"max":8,"min":4} | Минимальное и максимальное расстояние от цели, на котором моб ищет точку для перемещения. |
movement_speed | number | 0.6 | Как быстро моб движется к выбранной точке. |
destination_pos_spread_degrees | number | 90 | Разброс выбранной точки позади цели в градусах. 0 выбирает точку точно позади неё. |
filters | Filter Group | {"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null} | Условия, которые должны выполняться, чтобы задача началась. |
height_difference_limit | number | 10 | Моб считается слишком близким, только если разница высоты с целью меньше этого значения.Диапазон: от 0 до … |
horizontal_search_distance | integer | 5 | На сколько блоков в стороны моб ищет точку подальше от цели.Диапазон: от 0 до … |
vertical_search_distance | integer | 5 | На сколько блоков вверх и вниз моб ищет точку подальше от цели.Диапазон: от 0 до … |
priority | integer | 0 | Чем меньше число, тем раньше выполняется задача: из двух конкурирующих задач побеждает та, у которой priority меньше.Диапазон: от 0 до … |
control_flags | Goal's control flags[] | нет | Какие части тела занимает эта задача (движение, взгляд, прыжок), чтобы задачи с теми же частями не выполнялись одновременно. |
Пример
Внутри объекта components в BP/entities/<name>.json (значения - по умолчанию или примерные):
BP/entities/<name>.json
{
"minecraft:behavior.move_around_target": {
"destination_position_range": {
"max": 8,
"min": 4
},
"movement_speed": 0.6,
"destination_pos_spread_degrees": 90,
"filters": {
"AND": null,
"NOT": null,
"OR": null,
"all": null,
"all_of": null,
"any": null,
"any_of": null,
"none_of": null
},
"height_difference_limit": 10,
"horizontal_search_distance": 5,
"vertical_search_distance": 5,
"priority": 0
}
}