Перейти к содержимому

hitbox: дополнительные сущности

Команды создания хитбоксов, относительные координаты и данные коллизии.

content.hitbox описывает дополнительные сущности, обеспечивающие коллизию модели. Это отдельные данные от визуальных дисплеев в passengers.

Форма hitbox

Поле содержит массив строк команд создания. Каждая строка уже начинается с summon и включает координаты, сущности и теги. Это отличается от passengers, где передаются фрагменты SNBT без внешней команды.

Ниже учебный фрагмент для Minecraft 1.21.4: хитбокс единичного размера в начале сцены после подстановки tag=my_model. Он составлен по форме текущего экспорта.

{
"hitbox": [
"summon block_display ~-0.5 ~-1 ~-0.5 {Passengers:[{id:\"minecraft:shulker\",DeathLootTable:\"minecraft:empty\",NoGravity:1b,Silent:1b,NoAI:1b,Invulnerable:1b,AttachFace:0b,active_effects:[{id:\"minecraft:invisibility\",amplifier:0,duration:-1,show_particles:0b}],attributes:[{id:\"minecraft:scale\",base:1}]}],Tags:[\"my_model\",\"my_model_hitbox\",\"my_model_hitbox_0\"]}"
]
}

В полном экспорте поле появляется, если есть экспортируемые хитбоксы. Если их нет, поле может отсутствовать; ожидать обязательный пустой массив не следует.

Разбор примера

Часть команды Назначение
summon block_display Создаёт сущность, несущую хитбокс
~-0.5 ~-1 ~-0.5 Относительное положение, рассчитанное экспортёром для этого примера
Passengers с minecraft:shulker Сущность, обеспечивающая коллизию
active_effects Делает шалкера невидимым
NoGravity, NoAI, Silent, Invulnerable Настраивают служебное поведение сущности
DeathLootTable Убирает выпадение предметов от хитбокса
minecraft:scale Масштаб коллизии в поддерживающих его версиях
my_model_hitbox_0 Тег конкретного хитбокса, используемый в том числе командами анимации

Координаты уже учитывают экспортное смещение и размер хитбокса. Их не следует заменять координатами визуального дисплея: это разные сущности и разные данные. Символ ~ означает зависимость от позиции выполнения команды.

NBT эффектов и атрибутов зависит от выбранной версии Minecraft. В частности, масштаб хитбокса поддерживается экспортом начиная с Minecraft 1.20.5; для более старых целевых версий используется единичный размер без атрибута масштаба. Синтаксис примера не следует переносить на другую версию без учёта content.version.

Назначение и границы

Хитбокс задаёт физическую коллизию. Области клика interaction, сиденья и команды взаимодействия редактора не становятся записями hitbox. Их создание и обработчики не включаются в серверный JSON текущим экспортёром.

Анимированный хитбокс может иметь команды изменения положения и масштаба в datapack.anim_keyframes. Само поле hitbox содержит начальные команды создания; оно не запускает анимацию и не содержит универсальный механизм удаления экземпляра.

Подробности событий: anim_keyframes и sound_keyframes. Остальные ограничения: Поддержка экспорта и ограничения.