[MCreator] Основы и функции, создаем свои моды без кодинга
Всем привет! На связи Alex.
Cегодня я бы хотел поделиться с вами своими знаниями в области моддинга в программе MCreator. Статья довольно большая. Я старался.
Вообще, многие недооценивают эту программу. Благодаря ней, у вас открывается куча возможностей, например — быстро сделать мод для карты с теми предметами, которые Вам нужны. Её функционал не настолько мал, чтобы обходить программу стороной.
Моя версия MCreator — 2020.2. Она последняя, которая поддерживает версия Minecraft 1.12.2.
Давайте не будем медлить, начнем!
1. Основы
Во-первых,
Мне бы хотелось быстренько провести Вас по интерфейсу. Он не настолько сложный, как многие думают.
Интерфейс
По самой верхней колонке ничего говорить я не буду. т.к. там все просто, такие есть почти в каждой программе.
А вот нижняя нам нужна. Её и будем разбирать.
1 — Create texture from scratch…
Нажав на кнопку, у нас откроется меню, в котором Вы можете сделать свою текстуру. Для начала — выбирайте фон, затем — разрешение (советуем не использовать текстуры больше 64x64, они мало подходят под общую стилистику Minecraft).
Говорить про него я не буду, это мы разберем в следующих уроках. Сегодня мы будем использовать готовые текстуры.
2 — Create animated texture...
Кнопочка позволит нам создавать свои анимированные текстуры, например — порошок, с которого будут осыпаться частички. Это мы тоже разберем в следующем мини-уроке по текстурированию.
3 - 5 — Import block, item, GUI, logo, mob, etc texture(s)…
Следующие 3 кнопки я сложил в 1, так как они по сути выполняют одну и ту же роль — добавляют картинки с компьютера в MCreator. Если у вас есть готовая PNG текстура, нажимайте на одну из 3 кнопок. Если вы нарисовали/скачали текстуру меча, нажимайте на Import item texture(s)… Текстура к блоку — в Import block texture(s), к животному, броне и тому подобному — Import mob, GUI, etc texture(s).
6 — Import OGG sound(s).
Позволяет добавить свои звуки в мод (обязательно в расширении OGG).
7 — Import structures
Кнопка позволяет вам добавить в мод свои структуры. Это мы рассмотрим конкретнее в след. уроках. (Кстати, там нам пригодятся умения из туториала Влада (Darvin) по структурным блокам. Советую прочитать — Статья)
8-10 — Import Java, JSON, OBJ+MTL 3D Model…
Я объединил под этот заголовок три кнопки. Они позволяют нам загружать в мод свои/скачанные/купленные 3D модели 3-х форматов — JSON, Java, OBJ.
Из всех кнопок сбоку, я выделил только Mod Elements, Resources и Localization.
Первая — Mod Elements, самая основная. В ней находятся все наши созданные блоки, итемы т т.п.
Вторая — Resources, по сути, является заменой верхних кнопок. Но также, там мы можем задать текстуры нашим 3D моделям и посмотреть, правильную ли мы загрузили текстуру.
Третья — Localization, она позволит нам перевести название предметов на русский и другие языки.
Давайте перейдём к главной части этого урока - создание своих предметов.
В следующих шагах мы глубже разберем процедуры, текстурирование внутри самой программы, импорт 3D и так далее.
Шаг 2. Предметы, блоки, функции.
Начнём с определений, которые я использую для удобства.
Процедуры - способ программирования в визуальной среде посредством выбора определённых блоков и их логической связки. Функции - все, что предоставляет сама программа для изменения/создания элементов. Но не будем заострять на этом внимание.
Перейдём к основной части - создание меча со своими уникальными свойствами.
1 — УНИКАЛЬНЫЙ МЕЧ.
Во-первых, поясню пару вещей.
Использовать мы будет 2D текстуру, нарисованную Максимом Скороходом. Пример импорта 3D моделей я покажу на блоке.
Если возникнут какие-то проблемы, пишите мне в личные сообщения. Помогу вам чем смогу.
Также, я оставлю полезные ссылки —
https://minecraft.gamepedia.com/Item_durability#Tool_durability
https://minecraft.gamepedia.com/Damage
https://mcreator.fandom.com/ru/wiki/MCreator_вики
Поехали!
Давайте, для начала, определимся с типом — 2D или 3D. Для большой RPG карты я советую использовать 2D текстуры, т.к. оружия много. Но, тут вы делаете свой выбор. Я остановлюсь на 2D.
Далее, давайте определим, каков будет сам меч. По текстуре ясно, что меч обладает неким «энергетическим» свойством. Урон я бы поставил на 10, оружие с таким видом должно кромсать всех на пути. Для баланса, кол-во ударов для предмета я поставлю на 700-800.
Перейдем к самому созданию.
Нажмите на кнопку Add new mod elements (зеленый плюсик на меню сбоку).
В появившемся окошке листаем вниз, выбираем TOOL. Эта кнопка позволит нам создавать инструменты, по типу лопаты, кирки, топора и меча (который нам и нужен).
Задаем название нашему предмету.
В появившемся окне мы должны выбрать текстуру или модель нашему мечу. Нажимаем на квадратик Tool texture и выбираем загруженную текстуру.
У вас изначально не будет такого количества текстур. Их я загрузил до урока.
Итак, выбрав нужную нам текстуру, мы можем нажать на Next page.
На данной странице мы настроим параметры нашему предмету. Давайте по порядку.
P.S. Если вам не понятны какие-либо параметры, не стыдитесь нажимать на значок вопроса рядом. У вас откроется англоязычный форум, на котором вы сможете найти описание/решение проблем с этим параметром.
Name in GUI. Тут все просто — название предмета в самом Minecraft. Думаю, объяснять не стоит.
Creative inventory tab. Отвечает за то, в какой вкладке креатива будет находится ваш предмет. Вы можете создавать свои вкладки.
Type. Тип предмета. Будет ваш инструмент киркой/топором/мотыгой/мечом и т.д.
Harvest Level. Подходит кирки/лопаты/топора. Предметы какого уровня сможет сломать ваш инструмент.
Ванильные значения на определенный материал :
Wood/Gold = 0;
Stone = 1;
Iron = 2;
Diamond = 3
Efficiency. Эффективность предмета, т.е. скорость и легкость добычи.
Ванильные значения на определенный материал :
Wood: 2
Stone: 4
Iron: 6
Diamond: 8
Gold: 10
Enchantability. Чем больше уровень, тем больше зачарований высокого уровня вы сможете сделать с предметом/броней.
Ванильные значения на определённый материал :
Wood — Tools = 15; Armor = /
Stone — Tools = 5; Armor = /
Iron — Tools = 14; Armor = 9.
Gold — Tools = 22; Armor = 25.
Diamond — Tools = 10; Armor = 10.
Leather — Tools = /; Armor = 15.
Chainmail — Tools = /; Armor = 12.
Attack speed. Скорость атаки вашего предмета.
К сожалению, я не нашел ванильных значений, поэтому, ищите свой вариант путем проб и ошибок.
Damage vs mod/animals (melee damage). Урон по мобам, животным. игрокам. Хочу сказать, что у многих (у себя я не проверял скажу честно) MCreator завышает урон на 1 единицу, поэтому, во избежании таких же проблем, протестируйте у себя данную ошибку. Если что, убавляйте 1 от задуманного урона.
Урон по каждому материалу писать смысла нет, так как много разных факторов влияют на итоговый дамаг. Тут уже ваша фантазия и умение искать.
Number of uses. Кол-во ударов по блоку/мобу. Если его превысить, предмет сломается.
Ванильные значения на определённый материал :
Gold — 32 uses
Wood — 59 uses
Stone — 131 uses
Iron — 250 uses
Diamond — 1561 uses
Repair items. Элемент(ы), который может быть отремонтирован в наковальне.
Blocks affected. На каких блоках можно использовать инструмент. Это для расширенных типов инструментов.
Enable glowing effect. Включение этой функции придаст инструменту очаровательный светящийся эффект.
P.S. Ставить мечу Harvest level и Efficiency — нет НИКАКОГО смысла. От этого не меняется ничего. Паутина ломается так же, дроп с мобов такой же.
После того, как мы все настроили, переходим на 2 страницу.
На 2 странице мы выбираем/создаем процедуры для наших предметов.
У вас есть 2 способа. Первый — сделать их отдельно, и загрузить в этом меню. Второй — нажать на + в нужном вам триггере. Я пользуюсь первым, и вам советую. Не знаю, на что это влияет. Просто советую.
Итак, жмешь на клавишу «Save mod element», и выходим из данного меню. Наш меч создан. Все счастливы и рады. Но… Чего-то не хватает… Предмет слишком простой, мы хотим добавить ему особенность. Для этого нам нужны процедуры.
Жмем на плюс, из меню выбираем «Procedure».
У нас открывается жутко непонятное меню.
Буквы сбоку — НОДЫ (кирпичики), соединяя которые мы строим цельную логическую связь. Например:
Взяв блок «Add potion» в категории Entity, соединив к нему блок «Cooldown current item», указав нужные значения, мы получи цельную процедуру. А как это работает? — всё просто!
НОД Add Potion (по переводу понятно) налаживает любой эффект на существо, которое использует предмет. Add potion with level «» and duration «» to provided entity: «» = Добавить эффект с уровнем «» и длительностью «» на данную сущность: «». Банально переводя каждый блок, мы начинаем понимать, для чего он нужен. Если перевести оба НОДа, и сложить их в логической связи, получим цельный текст:
Добавить эффект на сущность, с уровнем 2 и длительностью 200 тиков, эффект — СИЛА. Сделать кулдаун (перезарядку) после наложенного эффекта этому предмету 200 тиков для этой сущности.
P.S. — в 1 секунде 20 тиков.
Предмет даст вам эффект силы на 10 секунд, потом вас нужно будет ждать 10 секунд, что бы вы могли использовать предмет повторно.
Вам не кажется, что это ОЧЕНЬ просто в освоении? Этот пример — самый легкий, есть вещи куда сложнее, но даже их понять — дело времени.
Сделаем что-то похожее. Когда предмет в руках у игрока и он бежит, то игроку дается скорость и сила, с помощью чего Вы сможете резать всех на своем пути с бешеной скоростью. Думаю, звучит круто!
Процедура выглядит так:
Давайте разбираться.
Логический блок if — новое для вас. Находится он в категории Logic and loops.
Он имеет 2 части. Первая — If. Тут идет проверка определенного условия. В моем случае, If — is entity sprinring = Если — сущность бежит
Мы проверяем, бежит ли наш игрок.
С If разобрались.
Вторая часть — Do. По переводу слова понятно, что она выполняет какое-либо действие, если условие выполнилось.
В моем случае — Выполнить — Дать эффект 2 уровня на 1 тик, эмбиент выкл партиклы выкл. эффект — скорость; сила.
Если сложить все вместе, получится это:
Если игрок бежит, дать ему эффект скорости и силы на 1 тик, 2 уровня, отключить частицы и эмбиент.
Я надеюсь, вы поняли как работает IF/Do. В следующих уроках я вам расскажу про более сложные процедуры.
ПРЕДМЕТ СОЗДАН!
Перейдем к следующей части урока.
2 — Блок со своей 3D моделью.
Итак, мы разобрались с предметом, теперь блок.
У нас есть своя 3D модель. Нам нужно поставить ее на блок. Для этого. используя кнопки, о которых я рассказывал в начале урока, переходим в меню экспорта JSON модели.
Ищем нашу модель на компьютере, открываем ее.
В появившемся окне, нажимаем на квадратик (у меня он 1, т.к. текстура одна).
ОПЯТЬ открывается меню. В нем нам нужно указать саму текстуру. Но сначала ее нужно загрузить.
Жмем на «Import texture for block», находим нашу текстуру и импортируем ее. После этого в списке появится ваша текстура. Выбираете ее.
ВНИМАНИЕ!
Если в вашей модели несколько текстур, вы должны поставить в MCreator их в таком порядке, в котором они идут в вашей программе для моделирования (в моем случае BlockBench).
Далее жмем на «Save Mapping».
Ура! Наша модель в MCreator. Чтобы посмотреть, перейдите во вкладку Resources, дальше в «3D models and texture mapping». Ваша модель будет красоваться там.
-Отлично, что дальше?
Дальше — больше. Переходим обратно, нажимаем на привычный нам плюсик, выбираем в списке «Block».
Открывается меню выбора текстуры/модели.
Текстуры мы уже разобрали. Теперь приступаем к модели.
В параметре «Block Model» выбираете вашу загруженную модель.
В параметре текстур выбираете ЛЮБУЮ текстуру. Абсолютно. Хоть ту, которую загрузили до этого.
В параметре Rotation советую всегда выбирать первый. Он делает так, чтобы предмет поворачивался в зависимости от того, куда смотрит сам игрок.
В параметре Transparency особо ничего менять не надо.
Следующий параметр отвечает за коллизию блока.
Мне нужно, что бы игрок мог ходить сквозь блок. Для этого в Max X;Y;Z; coord я ставлю 0,1. Я смогу ходить сквозь блок, и игра будет считать, что я хожу по блоку. Это мне пригодится в будущем. Если у вас блок 2 размера в высоту, я в ширину, расчитывайте расстояние по вашей программе для моделирования и вписывайте их туда.
Допустим, блок в высоту 1,5. Ставим в Max Y — 1,5. И так в других полях. Если вам нужно, что бы у блока был снизу воздух (стол), и туда можно было бы поставить блок, то делайте Min (X, Y, Z) столько, сколько вам нужно. Думаю, суть коллизии вы поняли.
На следующей странице у нас много разных параметров.
Material. Параметр отвечает за то, из чего сделан предмет.
Creative inventory tab. В какой вкладке креатива находится ваш блок.
Step sound. Звук ходьбы по блоку. Скорее тип звука. По железу, дереву, стеклуи т.д.
Hardness. Уровень прочности блока
https://minecraft.gamepedia.com/Module:Hardness_values
Уровни прочти ВСЕХ блоков.
Resistance. Уровень прочности блока для взрывов. Чем больше значение, тем сложнее его уничтожить.
https://minecraft.gamepedia.com/Module:Blast_resistance_values
Уровни сопротивления взрыву для ВСЕХ блоков
Luminace. Светится ли блок. Если да — насколько ярко.
Light opacity. Этот параметр означает проводимость света через блок. 0 — свет не проходит через блок.
Has gravity? Будет ли блок падать как песок. Галочка = да.
Can walk through the block? Можно ли ходить сквозь блок. Галочка = да
Custom drop. Какой предмет выпадет при ломании блока.
Drop amount. Кол-во дропа выбранного предмета.
Affected by silk touch. Стоит ли шелковое касание на блок. Галочка = да
Creative pick item. Подходит для растений, у который несколько стадий выращивания.
Tool able destroy it. Какой нужен тип предмета чтобы сломать этот блок. Если ничего не выбрано — любой.
Tool harvest level to break with drop. Какой нужен уровень кирки/топора/лопаты чтобы получить дроп при добычи.
Is unbreakable? Неразрушаемый? Галочка = да.
Is replaceable? Если поставить блок на предмет, он исчезнет. Например — снег. Галочка = да.
Тааак-с. С параметрами вроде бы все. Посмотрите на мои настройки.
ЧАСТИЦЫ
Advanced block properties. Эти параметры я никогда не трогал. Я не считаю их нужными, поэтому их мы перескочим.
Particle properties. Если вам нужны частицы, которые будут исходить от блока — читайте внимательно.
Ставим галочку на Spawn particles around block (если нужно)
Particle type. Вид частиц (текстура).
Particle spawning shape. Форма спавна частиц
Average particle amount. Кол-во частиц, которые буду спавнится одновременно.
Particle spawning condition. Определяет условие, когда будет появляться частица. Загляните сюда для получения большей информации про условия.
Переходим на следующую страницу. На ней у нас настройка GUI. Я не советую использовать ее. Лучше сделать свой GUI и настроить его через процедуры. Это умнее и перед Вами открывается больше возможностей.
На следующей странице у нас процедуры. Как я и говорил, их лучше делать отдельно, и просто привязывать тут.
ГЕНЕРАЦИЯ БЛОКОВ
Dimensions to generate in. В каких измерениях будут спавниться ваши блоки. Если хотите отключить спавн — пропустите это поле.
Blocks this ore can place. На каких блоках может спавнится ваша руда.
Restriction biome. В каких биомах будет спавнится ваша руда. Оставьте поле пустым, тогда блоки будут спавнится везде.
Average amount of ore group per chunk. Кол-во жил руд на 1 чанк.
Ванильные значения:
Coal Ore - 20
Iron Ore - 20
Gold Ore - 2
Redstone Ore - 8
Diamond Ore - 1
Lazurite (Lapis Lazuli) - 1
Average amount of ores in a group. Сколько блоков руд в среднем в 1 вене.
Ванильные значения :
Coal Ore - 17
Iron Ore - 9
Gold Ore - 9
Redstone Ore - 8
Diamond Ore - 8
Lazurite - 7
Minimal height. Минимальная высота спавна
Maximal height. Максимальная высота спавна.
Что же, сам блок создан. Теперь давайте придумаем для него какую-нибудь интересную механику. Кто смотрел скриншоты — видел, что моя залитая модель — пики, но по моей глупости вместо пик будет капкан, который закрывается, если игрок пройдется по нему, нанесет урон и сломает ногу, от чего Вы не сможете двигаться некоторое время.
Перед этим — загрузим звук.
Для этого, нам нужен звук в формате OGG.
Выходим на главное меню. Жмем на кнопку сверху (Import OGG). Выбираем наш звук. В этом меню, даем название нашему звуку. Далее выбираем ему категорию. Я выбрал Ambient. Это значит, что его слышат все вокруг самого источника. Нажимаем на Import sound. Наш звук залит.
Создаем процедуру
Моя процедура выглядит так -
Как видите, всё довольно просто.
Пояснение: я привязал процедуру к триггеру When entity walks on the block
P.S. За кадром я создал второй блок, а точнее закрытый капкан. Он будет ставиться при попадании игрока на блок.
Разберемся. Для начала переводим.
Добавить эффект уровня 6 длительностью 100 тиков эмбиент выключить партиклы выключить, эффект — МЕДЛИТЕЛЬНОСТЬ.
Удалить блок на данных координатах.
Разместить блок PIKI_2 на данных координатах..
Нанести 10 единиц урона данной сущности, тип урона — ЛЮБОЙ.
Произвести звук PIKI, уровень громкости 1 высота 1.
Сводим все в один текст.
Наложить эффект МЕДЛИТЕЛЬНОСТЬ 6 уровня, на 100 тиков (5 секунд), затем удалить блок на данных координатах (позиция блока/игрока, в зависимости от того к чему привязано), далее разместить блок PIKI_2 на данных координатах, после чего нанести игроку 10 единиц урона и произвести звук PIKI громкостью 1, высотой 1.
Думаю, тут все ясно и без объяснения. Я очень надеюсь, что вы поняли, как работают процедуры и как их делать. Более сложные примеры мы разберем в следующих уроках.
Можно сделать такую простую процедуру, которая удаляет блок на данных координатах и ставит блок открытого капкана. после чего привязать всю систему к триггеру On block right clicked (к блоку закрытого капкана). Тогда, при нажатии правой кнопкой по капкану, он будет «открываться», и работать до тех пор, пока кто-нибудь на него не наступит.
Но, вспомнил я об этом только после написания статьи, поэтому не успел ее добавить. Вы же не забывайте.
3 — Тест.
Допустим, вы сделали все, что вам нужно. Надо протестировать. Но… Как?
Рассмотрим эту «полоску» из кнопок.
Первые 3 кнопки нам пока что не нужны.
4 — Workspace settings…
Настройки нашего рабочего места. Описание мода, версия, авторы, сайт и т.д.
5 — Regenerate code and build
Делает повторную проверку всего кода и «строит» рабочую среду. Пригодится, если нужно проверить вашего проекта на наличие ошибок.
6 — The action will regenerate…. the gradle project
Аналогично предыдущей кнопке, эта делает повторную проверку всего Workspace, только на этот раз уже проверяет все предметы, блоки и процедуры.
7 — Run client
Запускает Minecraft с вашим модом (это нам и нужно для теста)
8 — Run server and client
Запускает сервер для теста онлайн-фич
9 — Cancel gradle task
Остановить компиляцию проекта.
10 — Export the mod for distribution
Экспорт мода (вывести мод в JAR файл).
СОХРАНЕНИЕ МОДА
Как только вы протестируете ваш мод через кнопку «Run client», вы можете сохранить его. Например, чтобы добавить в свою карту или сборку. Нажимаем на «Export the mod for distribution»
После окончания Build процесса, откроется меню с донатом.
Мы, люди богатые, но как-нибудь в следующий раз.
Жмём «Export the mod without donating», выбираем место для экспорта, обзываем файл, и все готово!
КОНЕЦ
Сегодня мы довольно многому с вами научились. Я вскоре начну писать вторую часть данного цикла уроков.
Спасибо за внимание, до следующего урока!
