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

passengers: визуальные части

Визуальные части модели: строки SNBT, трансформации и теги сущностей.

content.passengers содержит визуальные части модели: блоки, предметы и текст, представленные сущностями block_display, item_display и text_display.

Список строк

Поле имеет тип массив строк. Внутри каждой строки находится SNBT, текстовое представление данных Minecraft. Одна запись может объединять несколько сущностей через запятую:

{
"passengers": [
"{id:\"minecraft:block_display\",block_state:{Name:\"minecraft:stone\"},Tags:[\"my_model_0\"]},{id:\"minecraft:block_display\",block_state:{Name:\"minecraft:oak_planks\"},Tags:[\"my_model_1\"]}"
]
}

Это сокращённый учебный фрагмент: трансформации и дополнительные свойства опущены. Длина массива не определяет количество сущностей. Не разбивайте строку простым разделением по запятым: они также встречаются внутри составных значений SNBT.

После разбора внешнего JSON вы получаете строку, а не объект сущности и не команду summon. Для понимания её структуры нужен разбор SNBT, а не повторный JSON.parse().

Разбор визуальной части

Так может выглядеть строка одной части после снятия JSON-экранирования:

{id:"minecraft:block_display",block_state:{Name:"minecraft:stone"},transformation:[1f,0f,0f,0f,0f,1f,0f,0f,0f,0f,1f,0f,0f,0f,0f,1f],Tags:["my_model_0"]}
Часть SNBT Назначение
id Тип сущности Minecraft
block_state Блок и, при необходимости, его состояния для block_display
item Данные предмета для item_display
text и свойства текста Содержимое и оформление text_display
transformation Преобразование визуальной части; текущий экспортёр записывает матрицу из 16 чисел
Tags Теги, в том числе тег части, используемый командами анимации

В строке могут присутствовать яркость, свечение и пользовательские NBT-свойства. Состав зависит от объекта. Синтаксис предметов и текста меняется между версиями Minecraft, поэтому пример для одной версии не задаёт схему всех остальных.

Координаты и теги частей

Трансформация уже учитывает положение объекта в сцене и преобразования родительских групп. Матрица описывает отображение части относительно системы координат модели; место появления модели в мире определяет интеграция. Повторно применять к ней трансформации групп редактора не требуется.

Экспортёр назначает визуальным частям теги вида [BDESERVERTAG]_0, [BDESERVERTAG]_1 и далее. После запроса с tag=my_model они становятся my_model_0, my_model_1 и так далее. Команды кадров ссылаются на эти теги. Индексы обозначают части конкретного экспорта, а не постоянные ID объектов редактора.

Пользовательские теги также могут сохраняться в данных. Подстановка меняет маркер [BDESERVERTAG], а не произвольно переименовывает все пользовательские теги. Правила: Параметр tag.

Пустые и неподдерживаемые данные

Если визуальных частей нет, passengers может отсутствовать: текущий экспортёр не добавляет поле с пустой строкой. Пустой массив также не содержит визуальных частей, но не следует требовать именно такую форму для отсутствующих данных.

Настоящие блоки структуры не превращаются в block_display автоматически. Серверный экспорт с настоящими структурами не поддерживается. Хитбоксы описаны отдельным полем hitbox и не должны считаться визуальными частями модели.

Связанные материалы: Типы полей и Поддержка экспорта и ограничения.