Участник:KnottyManatee55/Проекты/Черновик3

Disambig color.svg Эта страница — о пакетах ресурсов, начиная с версии 1.6.1. О пользовательских текстурах мира и окружения до 13w24a (1.6.1) см. Пакет текстур; о модели игрока см. скин.

Система пакетов ресурсов позволяет игрокам настраивать текстуры, модели, музыку, звуки, языки, поэму Края, сплеши и шрифты без какой-либо модификации кода.

Java Edition

Поведение

Параметры пакетов ресурсов по умолчанию c версии 1.14

Пакеты ресурсов можно поместить в папку resourcepacks внутри папки .minecraft. Каждый пакет ресурсов представляет собой подпапку или .zip файл в папке resourcepacks. Попав в папку, пакет ресурсов можно добавить из настроек, где пакеты ресурсов можно перемещать между «Доступными» и «Выбранными». Раздел «Выбранные» по умолчанию в низу содержит Default набор ресурсов, который нельзя удалить.

Пакеты ресурсов загружают свои ресурсы в соответствии с порядком пакетов в списке. Сначала загружается самый нижний пакет, затем каждый пакет, помещенный над ним, заменяя файлы с тем же именем своими файлами.

Пакеты ресурсов по умолчанию

Пакет ресурсов можно связать с миром, сохранив его под именем resources и поместив непосредственно в папку мира. При игре в мире этот пакет ресурсов отображается по умолчанию прямо над стандартным пакетом ресурсов.

Меню выбора пакета ресурсов, показывающее два активных пакета ресурсов (не включая пакет Default) и различные другие пакеты ресурсов, доступные для выбора

Пакет ресурсов по умолчанию также можно установить на сервере, добавив ссылку на загрузку файла .zip после строки resource-pack= в файле свойств сервера. Но игроки смогут отказаться от использования пакета ресурсов или не загружать его.

Старые (до 1.14) текстуры доступны в пакете ресурсов под названием «Programmer Art», однако в 1.16 он по умолчанию отключён.

Структура папок

  • (resource pack name)
    • pack.mcmeta
    • pack.png
    • assets
      • icons
        • icon_16x16.png
        • icon_32x32.png
        • minecraft.icns
      • (namespace)
        • sounds.json
        • blockstates
          • (blockstate).json
        • gpu_warnlist.json
        • font
          • (font)
        • icons
          • icon_16x16.png
          • icon_32x32.png
          • minecraft.icns
        • lang
          • (lang).json
        • models
          • block
            • (model).json
          • item
            • (model).json
        • particles
          • (particle).json
        • sounds
          • (sound).ogg
        • shaders
          • post
            • (post).json
          • program
            • (fragment shader).fsh
            • (program).json
            • (vertex shader).vsh
        • texts
          • (text).txt
        • textures
          • block
            • (texture).png
          • colormap
            • (texture).png
          • effect
            • (texture).png
          • entity
            • (texture).png
            • (entity type)
              • (texture).png
          • environment
            • (texture).png
          • font
            • (texture).png
          • gui
            • (texture).png
            • advancements
              • (texture).png
              • backgrounds
                • (texture).png
            • container
              • (texture).png
              • creative_inventory
                • (texture).png
            • presets
              • (texture).png
            • title
              • (texture).png
              • background
                • (texture).png
          • item
            • (texture).png
          • map
            • (texture).png
          • misc
            • (texture).png
          • mob_effect
            • (texture).png
          • models
            • armor
              • (texture).png
          • painting
            • (texture).png
          • particle
            • (texture).png
В каталоге assets может существовать более одного каталога для разных пространств имен.

Содержание

Пакет ресурсов идентифицируется как «Minecraft» на основании наличия файла pack.mcmeta в корневом каталоге, который содержит файл JSON со следующей информацией:
  • Корневой тег
    •  pack: Содержит информацию о пакете ресурсов
      •  pack_format: Версия пакета. Если это число не совпадает с текущим требуемым числом, в пакете ресурсов отображается ошибка и требуется дополнительное подтверждение для загрузки пакета. Требуется 1 для 1.6.11.8.9, 2 для 1.91.10.2, 3 для 1.111.12.2, 4 для 1.131.14.4, 5 для 1.151.16.1 и 6 для 1.16.2.
      •  description: Текст, отображаемый под названием пакета в меню пакета ресурсов. Текст отображается на двух строках. Если текст слишком длинный, он обрезается.
      •  description: Хранит сырой JSON текст, который отображается вместо описания пакета в меню пакета ресурсов. То же поведение, что и версия string тега description, но они не могут существовать вместе.
    •  language: Содержит дополнительные языки для добавления в языковое меню
      • Код языка для языка, соответствующий файлу .json с тем же именем в папке assets/<пространство имён>/lang.
        •  name: Полное название языка
        •  region: Название страны или региона
        •  bidirectional: Если установлено значение true, язык читается справа налево.

Корневой каталог также содержит необязательное изображение с именем pack.png, которое появляется в виде эскиза пакета в меню выбора пакета ресурсов.

Язык

Пакеты ресурсов могут содержать языковые файлы типаe .json в папке assets/<пространство имён>/lang. Каждый файл либо заменяет информацию из файла с тем же именем в пакете по умолчанию или в пакете более низкого уровня, либо создает новый язык, как определено в pack.mcmeta.

Каждая строка в файле .json имеет стандартный формат json:"идентификатор":"название", за которым следует запятая, если в следующей строке следует другое значение. Идентификатор — название, которое ищет игра, чтобы определить название для чего-либо, и поэтому его нельзя изменять. Название — отображаемое название. Например, камень в языковом файле по умолчанию - это "block.minecraft.stone":"Камень", где block.minecraft.stone является идентификатором, а Камень — отображаемым именем. Пустые строки игнорируются. Файл должен иметь допустимый синтаксис JSON, то есть он начинается с {, имеет запятую после каждого значения, кроме последненго и } по завершению.

В языковые файлы нужно добавлять только те строки, которые изменяются пакетом. Любые имена, которых нет в пакете, загружаются из пакета ниже или стандартного пакета, если ни один пакет не меняет названия.

Модели

Модели - это файлы в формате JSON с расширением .json, которые определяют форму и текстуры блоков и предметов.

Блоки используют файл состояния блока из assets/minecraft/blockstates чтобы определить, какая модель загружается для каждого варианта из папки assets/minecraft/models/block. Для определения своей модели, которая либо загружается из модели блока, либо содержит данные для своей собственной пользовательской модели, либо использует стандартную «плоскую» или «сущностную» модель.

Модели и состояния блоков, используемые в пакетах ниже верхнего, по-прежнему загружаются, если они не переопределены в верхнем пакете, что может привести к тому, что некоторые текстуры и модели, используемые верхним пакетом, больше не будут загружаться.

Звуки

Пакеты ресурсов загружают дополнительные звуки с типом файла .ogg. Каждый звук, помещенный в пакет, переопределяет звуки из пакетов ниже. Пакеты также содержат файл с именем sounds.json, который помещается в assets/minecraft. В отличие от большинства других файлов в пакетах ресурсов, sounds.json объединяет звуковую информацию из пакетов ниже верхнего пакета, а не каждый файл sounds.json полностью заменяет предыдущий.

Текстуры

«Отсутствующая текстура» для недопустимых или отсутствующих текстур.

Для функционирования текстур блоков или предметов текстуры должны иметь одинаковую ширину и высоту (или высоту, кратную ширине при анимации); в противном случае они выглядит как пурпурно-черная шахматная доска. Для большинства других текстур файл растягивается до необходимых размеров.

Большинство твердых блоков делают любую прозрачную область полностью непрозрачной. Некоторые другие блоки, которые имеют "вырезанную" прозрачность (например, стекло), превращают все пиксели с непрозрачностью менее 10% полностью прозрачными, а все остальные пиксели полностью непрозрачными. Каждый второй блок рендерит текстуры с полупрозрачностью как есть. Все элементы и любые блоки или объекты, которые по умолчанию являются полупрозрачными, поддерживают полупрозрачность.

Если файл не существует ни в одном пакете ресурсов, включая файл по умолчанию, он отображается как пурпурно-черная текстура шахматной доски с использованием цветов (
 #f800f8 и
 #000000).

Анимация

Текстуры блоков и предметов поддерживают анимацию, помещая каждый дополнительный кадр ниже последнего. Анимация управляется с помощью файла .mcmeta в формате JSON с тем же именем и .png в конце имени файла в том же каталоге. Например, файл .mcmeta для stone.png будет иметь вид stone.png.mcmeta.

  • Корневой тег
    •  animation: Содержит данные для анимации
      •  interpolate: Если true,, Minecraft генерирует дополнительные кадры между кадрами с временем кадра больше 1 между ними. По умолчанию false.
      •  width: Ширина текстуры, как прямое отношение, а не в пикселях. This is unused in vanilla's Это не используется в файлах vanilla, но может использоваться пакетами ресурсов для создания кадров, не являющихся точными квадратами.
      •  height: Высота текстуры в прямых пикселях, а не в пикселях. Это не используется в файлах vanilla, но может использоваться пакетами ресурсов для создания кадров, не являющихся точными квадратами.
      •  frametime: Устанавливает время по умолчанию для каждого кадра с шагом в один игровой тик. По умолчанию 1.
      •  frames: Содержит список фреймов. По умолчанию все кадры отображаются сверху вниз.
        • Число, соответствующее положению кадра сверху, где верхний кадр равен 0.
        • Фрейм определяет фрейм с дополнительными данными.
          •  index: Число, соответствующее положению кадра сверху, где верхний кадр равен 0
          •  time: Время в тиках, чтобы показать этот кадр, переопределяя "frametime" выше.

Если файл .mcmeta не существует в пакете, а текстура есть, игра предполагает, что текстура не анимирована, а не загружает файл .mcmeta из пакета ниже этого пакета. Если для текстуры с разными размерами не существует файла .mcmeta , текстура отображается в виде фиолетово-чёрной шахматной доски.

Деревенские жители

Текстуры из assets/minecraft/textures/entity/villager и assets/minecraft/textures/entity/zombie_villager поддерживают файл .mcmeta в формате JSON, содержащий дополнительные эффекты для применения к слою шляпы. Файл содержится в том же каталоге, что и текстура, и имеет то же имя, что и текстура, за исключением добавления .mcmeta. Например, файл profession/farmer.png может иметь файл свойств с именем profession/farmer.png.mcmeta.

  • The root tag
    •  villager: Contains data for the texture
      •  hat: Whether the villager type's hat layer should still render (default), or not full. Шаблон:More info

If the .mcmeta file does not exist in the pack and the texture does, the game loads the default settings, rather than loading a .mcmeta file from a pack below that pack.

Цветовые карты

Цветовые карты - это изображения размером 256×256 пикселей, которые сообщают игре, какой цвет использовать в каждом биоме. Они расположены в assets/minecraft/textures/colormap. Игра содержит две цветовые карты, foliage.png which colors plants such as leaves (except birch and spruce) and vines, and grass.png which colors grass and grass blocks. Colormaps can be disabled on individual blocks by removing the tintindex tag from the block model.

Свойства

Текстуры из assets/minecraft/textures/misc поддерживают файл .mcmeta в формате JSON, содержащий дополнительные эффекты для применения к текстуре. Файл содержится в том же каталоге, что и текстура, и имеет то же имя, что и текстура, за исключением добавления .mcmeta. Например, файл pumpkinblur.png может иметь файл свойств с именем pumpkinblur.png.mcmeta.

  • Корневой тег
    •  texture: Содержит данные для текстуры.
      •  blur: При просмотре с близкого расстояния текстура размывается. По умолчанию false.
      •  clamp: Заставляет текстуру растягиваться вместо мозаики в тех случаях, когда иначе, например, на тени. По умолчанию false.
      •  mipmaps: Пользовательские значения MIP-карты для текстуры.

Если файл .mcmeta не существует в пакете, а текстура существует, игра загружает настройки по умолчанию, а не загружает файл .mcmeta из пакета ниже этого пакета.

В данной статье используются материалы из статьи «Участник:KnottyManatee55/Проекты/Черновик3» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0. Авторы статьи.