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. Остальные ограничения: Поддержка экспорта и ограничения.