Создание наборов параметров
Эту статью нужно срочно переписать!
Вы можете помочь, исправив и дополнив еë.
|
Только для Bedrock Edition |
Данное руководство поможет вам создать свой первый набор параметров для Bedrock Edition.
Вводный урок
Требования
Требуемые программы | Требуемая платформа | Требуемая версия игры |
---|---|---|
Любой удобный текстовый редактор | Любая платформа, поддерживающая Bedrock Edition и текстовый редактор | 1.12+ |
В этом руководстве будет рассмотрено:
- Формат данных JSON.
- Как создать набор параметров.
- Как изменить поведение моба.
Для того, чтобы понять данное руководство, потребуется его изучение по порядку.
Формат данных JSON
Для создания набора параметров потребуется понять способ работы JSON, на котором будет написан будущий аддон. Важно знать лишь самое основное.
В JSON существует лишь два типа данных:
- Имя и значение данных
- «Имя»: значение
- Список (Массив) значений данных
- [значение, значение, значение]
В коде объект с именем и значением располагается в коде в разбросанном порядке.
Имя — это что-то навроде команды или названия, которое регулирует то, с чем будет связано значение.
Образец кода
"minecraft: scale" : {
"value" : 0.7
}
В данном объекте, являющемся парой, «minecraft: scale» (рус. Minecraft: размер) является именем, а значением является другая пара — «value» : 0.7 («Значение»: 0.7). Чаще всего значение заключено в фигурные скобки.
Работа json кода
"Имя" : {
"Значение"
}
Данный отрывок кода повторяет самый первый.
Образец с двумя парами
{
"minecraft: health" : {
"value" : 20 ,
"max" : 20
}
}
В данном образце вместо одного значения присутствуют сразу два значения в виде пар, они пишутся через запятую.
Имя это Minecraft: health (minecraft: здоровье), которое задаёт то, что измеряет значение, далее значение в фигурных скобках, тут их два: «value» : 20, «max» : 20. Первое определяет количество жизней изначально у моба, второе обозначает максимум его жизней.
Образец с массивом
{
"minecraft: type_family" : {
"family" : [
"monster" ,
"undead"
]
}
}
В этом отрывке кода присутствует имя и значение, которое имеет массив (список). В данном отрывке кода одна пара имени и значения вложена в другую.
Здесь определяется тип, к которому относится моб.
В данном случае значение представлено списком в квадратных скобках.
Примечание Очень важно, чтобы имена и значения имели начальные и конечные фигурные скобки. Иначе в коде возникнет ошибка и аддон не будет работать должным образом.
Создание набора параметров
Наборы параметров позволяют игроку изменить характеристики предметов, блоков, мобов, добавить оружие и биомы, а также создать новую модель для моба и анимацию. В данном руководстве рассмотрен пример создания коровы, превращающейся в свинью, но перед этим требуется создать сам набор. Для этого необходимо создать папку с любым названием по пути.
- Для Android-устройств:
games/com.mojang./development_behaivor_pack.
- Для Windows 10
%userprofile%\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs\tutorial_behavior_pack.
- Далее в этой папке требуется создать JSON файл с именем
manifest.json
.
manifest.json Данный файл укажет игре, что папка является аддоном.
{
"format_version": 1,
"header": {
"description": "Здесь будет описание аддона",
"name": "Имя аддона",
"uuid": "13ec24c0-b7ce-4a89-882f-a2a2a3795257",
"version": [
1,
8,
0
],
"min_engine_version": [
1,
12,
0
]
},
"modules": [
{
"description": "dhdgushshegehe by vfshdhd",
"type": "data",
"uuid": "35579ef3-50f6-4f02-b6e5-a71ad4e14eca",
"version": [
1,
8,
0
]
}
],
"dependencies": null
}
Перед окончанием создания набора параметров следует отредактировать код на своё усмотрение.
- «min_engine_version»: [1,12,0] — минимальная версия игры для запуска.
- «version»: [1,0,0] — личная версия набора, отвечает лишь за визуальный вид.
Примечание Для правильной работы набора параметров необходимо создать два новых UUID — «номера» вашего набора. Их нужно вставить в объект «UUID»: «(Ваш UUID набора)» . Важно! Они должны быть разными.
Зависимый набор ресурсов Некоторые наборы параметров имеют при себе зависимый набор ресурсов, это сделано для того, чтобы вместе с настройками аддона скачивались не только они, но и текстуры мобов, предметов и блоков.
"dependencies": [
{
"uuid": "66c6e9a8-3093-462a-9c36-dbb052165822",
"version": [0,0,1]
}
]
}
Для привязки набора ресурсов к нашему набору параметров в данном коде требуется заменить UUID на UUID заголовка зависимого набора ресурсов и добавить этот отрывок кода в конец основного, в текущем начальном коде вкладка привязанного набора не указана, она выглядит как «null».
Примечание В конце любой пары «Имя: значение» должна ставится запятая. Существуют исключения, но чаще всего это так, об этом не стоит забывать, иначе всё сломается.
Создание иконки Для того, чтобы будущий аддон имел свою собственную иконку, нужно загрузить изображение размером 128×128 пикселей в папку с аддоном и переименовать его на «pack_icon.png». После этого будет получен следующий результат:
Настройка файловой системы
Перед началом создания аддона, нам требуется настроить систему файлов, которые будут располагаться в аддоне. Необходимо создать в папке аддона ещё одну папку с названием «entities». В этой папке будет храниться вся информация о мобах будущего аддона. Далее требуется скачать шаблонный набор параметров от разработчиков игры. Их можно найти в разделе шаблонов в статье «Аддоны». Шаблон регулярно обновляется и соответствует самой новой версии игры. Далее нужно скопировать из шаблонного набора параметров, по пути «/Vanilla_Behaivor_Pack/entity/cow.json» в папке entities
файл cow.json
, файл коровы и переместить его в папку entities
, но только в свой набор параметров по пути: games/com.mojang/development_behaivor_packs/(Папка вашего аддона)/entities
.
После этого необходимо открыть его в своём текстовом редакторе.
Изучение JSON-кода моба
Перед началом изменения коровы, требуется понять, как работают сущности в аддонах. Настоящий код коровы довольно сложен, поэтому будет использоваться нерабочий код, чтобы примерно объяснить, как работают мобы.
Нерабочий пример кода
{
"minecraft:entity": {cow} scale 11.111
"format_version": "1.16.0",
"component_groups": { группы компонентов пишутся обычно здесь },
"components": { компоненты моба будут писаться здесь },
"events": { события мобов будут прописаны здесь }
}
}
Данный код является нерабочим, код коровы выглядит совсем иначе.
Примечание «format version» является версией кода, которую нужно прочитать игре. Его нельзя менять!
component_groups (группы компонентов) Компоненты групп используются для настройки поведения моба и присваивания ему поведения в зависимости от группы. К примеру, если свинья является поросёнком, то она будет следовать за своим родителем и иметь определённую скорость, однако после подрастания она будет иметь другую группу поведения, следовательно поведение изменится. Обычно у коровы есть 2 и более групп, среди которых «cow_baby» — корова-малыш и «cow_adult» — взрослая корова. Группы меняются в зависимости от событий и других признаков.
components (компоненты) Компоненты определяют постоянное (индивидуальное) поведение моба, к примеру, свинья будет превращаться в зомбифицированного пиглина при попадании молнии в неё. Она также всегда относится к типу свиньи, мобов. Этими качествами моб будет обладать всегда.
events (события) События могу добавлять или удалять группы компонентов из мобов, они могут быть активированы от компонента или от отдельного кода. Таким образом при ударе молнии (компонент) активируется нужное событие и свинья получит группу компонентов «Зомби».
Заметки для компонентов
minecraft: identifier
С помощью данного компонента определяется название моба, который расписан в файле.
Идентификатор свиньи
{
"identifier" : "minecraft:pig"
}
minecraft: type_family
С помощью данного компонента определяется, к какому семейству (типу мобов) подходит данный моб.
Свинья относится к типам: «Моб»,"Свинья".
{
"minecraft:type_family" : {
"family" : ["mob","pig"]
}
}
minecraft: entity_spawned
Данный компонент является событием и запускается в случае, если в мире появляется моб нужного типа. В cow.json
используется функция, с помощью которой случайным образом рождается взрослый или детёныш.
Изменение кода
Самое время заняться самой функцией аддона, нужно сделать так, чтобы корова превращалась в свинью, если её ударил игрок. Аддон будет забавным и хорошо подойдёт для новичков.
Для начала стоит объяснить, как будет работать аддон. Нужно зайти в файл cow.json
и начать работу. Мы должны проверить, ударил ли игрок корову. Это мы проверим с помощью постоянного поведения моба (компонента) «minecraft: damage_sensor», который реагирует на нанесение урона. Мы вставим его в «components» коровы.
Важно! После каждого компонента, события или группы следует ставить запятую, также важно соблюдать фигурные скобки, для того, чтобы не запутаться в коде, проще всего добавлять всё новое в самом начале, когда код ещё не настолько запутан и его легко понять.
"components": {
"minecraft:damage_sensor": {
"triggers": {
"on_damage": {
"filters": {
"test" : "is_family", "subject" : "other", "value" : "player" },
"event": "become_pig"
},
"deals_damage": false
}
},
«minecraft: damage_sensor» нужно добавить в фигурные скобки, он должен быть в фигурных скобках «components». Так должен выглядеть код после изменения.
Примечание В данном коде есть единственная пара «Имя: Значение», а в той паре куча таких же пар. Если вы будете это понимать, то вам не трудно будет ориентироваться здесь.
minecraft: damage_sensor Компонент реагирует на нанесение урона каким-либо способом.
«triggers» — является группой компонентов, которая ставит игре или мобу условия, с помощью других компонентов. Сам по себе «triggers» не имеет функционала, а лишь называет категорию компонентов.
«on_damage» — ставит игре условие, выполняет другой, нижний компонент, если мобу нанесен какой-либо урон. Существует только в группе «triggers» (триггеров).
«filters» — также, как и «triggers», является группой компонентов, которые фильтруют целевых (мобов, которых назначают сами игроки) мобов, на что либо.
«test» : «is_family» — «test» является именем значения, которое фильтрует определённого моба по типам. В значением здесь является фильтр «is_family», оно проверяет, относится ли целевой моб к определённому семейству мобов, существует множество видов фильтров, кроме этого, которые проверяют мобов на другое.
«subject» : «other» — является частью прошлого фильтра. Указывает, какой моб будет фильтроваться по типам, в данном случае по семейству. «subject» является именем, а «other» — значением, определяющим моба, который будет проверяться на принадлежность к семейству. other — означает, что проверяться будет не сам моб — корова, а другой моб, который ударил корову.
«value» : «player» — определяет, какой именно моб будет проверяться, в данном случае проверяется моб, который ударил корову. Здесь им является «player» — игрок. Это значит, что если во время нанесения урона по корове, будет проверяться, является ли «other» — другой моб, а именно нанесший урон, игроком, если это так, то выполняется следующий компонент и аддон понимает, что удар по мобу совершил именно игрок.
«event» : «become_pig» — выполняет события из «events». В данном случае выполняется событие «become_pig» (стать свиньёй), которое мы настроим позже. Событие выполняется, если в прошлом фильтре оказалось, что урон нанес игрок.
«deals_damage» — отвечает за то, чтобы моб получал урон, или игнорировал его. Нужно поставить либо «true» (правда), либо «false» (ложь).
Добавление событий После этого следует добавить событие, которые будут отвечать за превращение коровы в свинью.
"events": {
"become_pig": {
"remove": {
},
"add": {
"component_groups": [
"minecraft:cow_transform"
]
}
},
Точно также, как и в прошлый раз, следует скопировать или написать самому нужный код. Как вы помните, мы сделали так, чтобы если игрок ударял свинью, активировалось событие с названием «become_pig». В «events» мы пишем название этого события и начинаем его редактировать. Это событие ничего не удаляет, но добавляет к корове группу компонентов «minecraft: cow_transform». Это значит, что теперь она имеет группу трансформации и мы можем изменить поведение при наличии этой группы. Позже вы увидите, для чего это нужно.
«add» и «remove» — добавляют и удаляют группы компонентов.
Группы компонентов С помощью событий мы добавляем сущности группу компонентов, которая отвечает за превращение в свинью, теперь мы должны добавить эту группу в «components_groups».
"component_groups": {
"minecraft:cow_transform": {
"minecraft:transformation": {
"into": "minecraft:pig",
"delay": 0.5
}
},
Как обычно, поставьте внутри «components_groups» название нашей группы, которую мы активировали событием. Далее в этой группе расписывает пару «Имени: значения», то есть компонент.
«minecraft: transformation» — компонент, который трансформирует моба в другую сущность.
Далее расписываем, в кого трансформируется наш моб — корова. «into» (в) : «minecraft: pig» (свинью, на этом месте нужен идентификатор моба, в которого превратиться наш моб, идентификаторы можно посмотреть в файлах других мобов в ванильном шаблоне, обычно он начинается с "minecraft: ").
«delay» — Задержка в превращении в другую сущность в секундах.
Вот и готов набор параметров или аддон. Теперь самое время протестировать его!
- Зайдите в Minecraft.
- Создайте новый мир.
- Включите в нём ваш набор параметров.
- Зайдите в мир.
- Ударьте корову.
- Получите результат!
Результат
Отлично! Если у вас всё заработало, то вы отлично освоили Аддоны и теперь можете приступить к более сложным мобам, предметам или другим вещам. Если вы хотите продолжить изучение наборов параметров, рекомендуем вам узнать больше о компонентах сущностей, с помощью которых вы сможете настроить их поведение!
Ошибки Если у возникли проблемы и аддон не сработал, рекомендуем :
- Проверить правильность написания JSON кода, нельзя пропускать фигурные скобки и запятые.
- Важно правильно расписывать все названия, без опечаток.
- Проверьте, что папки находятся на своих местах.
Как поделиться набором Для того, чтобы отправить набор параметров:
- Заходим в папку нашего аддона и выделяем все файлы внутри, тоесть на папку аддона, а то, что внутри. Далее сжимаем наши файлы в «mcpack». После этого вы можете выложить этот файл куда угодно.
Проверка файла Для проверки работоспособности вашего файла, удалите ваш аддон из Minecraft (сделайте копию) и откройте mcpack. Готово.