Guides / Building & Resources

Для пользовательских картин и дисков нужны два пака, и установка одного из них — типичная ошибка

Датапак регистрирует контент; ресурспак предоставляет текстуру и звук. Один только датапак регистрирует, но ничего не показывает. Плюс ограничение 4×4 и почему длина диска — это не просто косметика.

Картины и музыкальные диски — это полноценные реестры в современной Java-версии, что означает, что вы можете добавлять их, а не заменять ванильные. Ничто из того, что вы добавите, не вытеснит существующую картину или диск.

Загвоздка в том, что контент разделён между двумя разными типами паков, и каждый из них бесполезен по отдельности.

Что куда идёт

Датапак регистрирует предмет:

data/<ns>/painting_variant/<id>.json    asset_id, width, height, title, author
data/<ns>/jukebox_song/<id>.json        sound_event, description, length, comparator

Ресурспак предоставляет то, что вы видите и слышите:

assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json

Установите только датапак, и контент успешно зарегистрируется — он существует, /give его находит, но просто нет текстуры и звука. Это гораздо более запутанный результат, чем явный сбой, и это обычная причина, по которой пользовательская картина «не сработала». Инструмент на этой странице поставляется в одном ZIP-архиве именно для того, чтобы их нельзя было разделить.

Обратите внимание на два файла pack.mcmeta. Это отдельные паки с отдельными идентификаторами; нет комбинированного формата, который бы содержал оба.

Идентификаторы реестра строже, чем имена файлов

Идентификатор может содержать только a-z, 0-9, _, . и -. Всё остальное, и пак не загрузится — не одна повреждённая запись, а весь пак. Заглавные буквы и пробелы — это две вещи, которые сбивают с толку, потому что оба совершенно обычны в имени файла, который вы перетащили.

Картины: от 1×1 до 4×4

Ванильные размеры варьируются от 1 × 1 до 4 × 4 блоков, что даёт шестнадцать возможных форм. Вариант за пределами этого диапазона всё равно будет отображаться — игра не отклонит его — но его нельзя будет повесить на стену ожидаемого игроками размера, поэтому он фактически неразмещаем в обычной постройке.

Размер объявляется в JSON как width и height, в блоках. Он не выводится из PNG, поэтому картина 3 × 1, текстура которой квадратная, является допустимым файлом, который отображается растянутым.

Длина диска — это не просто метка

length_in_seconds управляет двумя вещами: временем воспроизведения проигрывателя (Jukebox) и нарастанием сигнала компаратора — сигнал, который компаратор считывает с играющего проигрывателя, увеличивается в течение заявленной продолжительности трека.

Таким образом, неточная длина — это не косметическая ошибка. Объявите 200-секундный трек как 100-секундный, и компаратор завершит своё нарастание на полпути, что незаметно нарушит любую редстоун-схему, привязанную к окончанию диска. Этот инструмент считывает реальную продолжительность из файла, а не просит вас ввести её, именно по этой причине.

Треки также записываются с "stream": true в sounds.json. Музыка длинная, и загрузка полного трека в память перед воспроизведением вызывает заикания — потоковая передача (streaming) является правильным поведением по умолчанию для всего, что имеет длину диска, и неправильным для короткого звукового эффекта.

Свои картины и музыкальные пластинки →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.