Найти тему
Пафнутий (в спячке)

"Курс базовый" - Основы создания модов на Vintage Story.

Оглавление

Гой еси, любопытные читатели, и возможно будущие (а может быть и настоящие) мододелы. В оном руководстве я попробую объяснить основы модов на винтажку, чтобы после Вам был понятнее мой ещё не вышедший дневник о создании собственного мода. Рассказать попробую как можно проще, чтобы даже самовары уразумели, хотя и не уверен что у меня получиться. И да, в подробности очень сильно вдаваться в не собираюсь - поскольку моя цель - объяснить только основы.

Расположение файлов

Пожалуй первое дело, что среднестатистическому Полуэкту придётся сделать, коли он надумал создать мод - создание системы папок его мода. Для этого открываем папку "Vintagestory", ищем в ней папку "Mods", и создаём там папку, одноимённую с будущим модом.

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

В папке вашего мода (у Полуэкта это просто"mod") создаём папку "assets", а в нёй ещё одну папку с именем вашего мода. После этого можно создавать последние папки, в которые мы и будем сохранять файлы. Это такие папки как "textures" (текстуры), "shapes" (модели), "sounds" (звуки), "entities" (сущности, т.е. животные), "itemtypes" и "blocktypes" (предметы и блоки соответственно) и другие.

В этих папках, если нам приспичит, можно создать ещё папки, для большего порядка.

-2

Создание блока и основы работы с файлами

Допустим, среднестатистический Полуэкт решил создать блок. Для этого на потребуется создать текстовый файл, в любом текстовом редакторе, использовать можно "Visual Studio Code", "Notepad++" и другие, а я делая первые шаги, даже в блокноте умудрялся работать.

Писать файл мы будем в формате Json -- этаком "недокоде". Принцип его работы станет понятным чуть позже, без примеров я объяснить не смогу. Поэтому перейдём к примеру - а именно файлу нашего (Ан нет, Полуэтоковского) блока. А добавить Полуэкт решил блок "чего-нибудь".

После изнурительных 5 часов работы, Полуэкт написал примерно это:

-3
Сейчас будет очень подробное объяснение этого текста, те кто что-нибудь понимают в программировании могут пролистать немного вперёд

Жёлтые фигурные скобки открывают и закрывают файл блока, внутри которого перечисляются свойства блока.

Первым ключевым словом, которое попалось Полуэкту стало "code". (Именно в кавычках, всё ключевые слова желательно писать в кавычках. Желательно, потому что может, да и часто работает, код и без них). Это слово определяет название, под которым будет "закодирован" блок. Полуэкт, не обладающий фантазией написал "блок-чего-нибудь". После этого он поставил запятую, поскольку вообще-то в файле идёт перечисление свойств, и между ними необходимо ставить запятую.

Потом Полуэкту пришлось попотеть, но он старательно написал "creativeinventory". Это слово определяет, в каких вкладках творческого инвентаря можно будет его отыскать. Поскольку вкладок несколько, далее идёт отдельное перечисление, которое тоже заключено в фигурные скобки. Итак, блок чего-нибудь будет находиться во вкладках "general" (всё), "terrain" (ландшафт) и "construction" (строительство). И да, не пугайтесь ["*"] - это обозначает, что в этих вкладках будут все разновидности блока (у Полуэкта разновидностей нет, но всё же).

Далее всё проще, "drawtype" определяет форму блока - "cube" - для простого кубика и "Json" для модельки. "textures" - естественно выбирает текстуру для блока, это даже Полуэкт сразу понял. С нашем случае идёт немного сложная конструкция, которая необходима для разновидностей блоков, но я укороченной версией никогда не пользовался. И { "base": "block/chego-nibud" } - значит, что текстуру надо искать в папках мода (Это определяет "base", если бы пришлось искать среди уже присутствующих в игре, надо было бы поставить "game"), внутри папки "block" по именем "chego-nibud".

Теперь сохраняем файл, и указываем что это файл формата Json. На первых порах этого хватит, запускаем!

-4

Файл мода

Ах да, прежде чем запускать мод, следует создать файлик с информацией о моде и сохранить его в первую папку с именем вашего мода (у меня это "mod") под именем "modinfo". И не забываем указать, что это файл типа Json.

Содержание файла будет примерно таким:

-5

Разберём подробно все эти каляки.

  • Строки 1 и 11 - открывают и закрывают "ящик с информацией"
  • 2 - слово "type" определяет тип мода. "content" - это тип мода, который может добавлять блоки, предметы, даже сущности не используя настоящий код на C# . "code" - для тех кто умеет и хочет программировать на C#. Есть ещё третий тип - "theme packs" - для того, кто хочет только текстуры и модели менять.
  • 3, 4 - "modid" - это имя мода для программы, а "name" - имя мода для публики.
  • 5 - "authors" - список авторов, и поскольку это список, он заключён в скобки.
  • 6 - description - описание мода. То что написано дальше, можно и не пытаться расшифровать, у Полуэкта что-то с клавиатурой.
  • 7 - версия мода, а 8, 9, 10 - необходимые вещи - в том числе версия игры.

Запускаем!

Включаем мод, среди других:

-6

Заходим в мир, ищем блок в инвентаре, ставим и...

Вот так вот.
Вот так вот.

Текстуры и модели

Ага, я забыл создать и сохранить текстуры! -- сообразил Полуэкт. Текстуры винтажка принимает любые, главное чтобы размеры были кратны 8, но обычно это 32х32. Поскольку блок у нас чего-нибудь, текстуру для него Полуэкт сделал подобающую.

-8

После длительной работы с текстурой, Полуэкт может дать несколько советов:

  1. Как основу для текстуры очень удобно брать фото из интернета и уменьшать это до нужных размеров.
  2. Постарайтесь не делать текстуру совсем однотонной, желательно чтобы каждый соседний пиксель имел немного другой оттенок.
  3. Если вы делаете текстуру для блока, следите за тем, чтобы она была бесшовной - по текстуре не было видно где кончается один блок, а где начинается другой. У Полуэкта это не вышло.
-9

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

-10

Управление редактора простое - создаем куб, меняет его положение, размер, вращение по 3-м осям. Полуэкт кое-как разобрался, предполагаю кто-нибудь другой тоже сможет. Потом может и напишу руководство...

Моделька для чего-нибудь готова.
Моделька для чего-нибудь готова.

Сохраняем модель, в папку block (она вроде не обязательна, но так лучше) в папке shapes и идём редактировать файл Блока. Вписиваем туды "shape" : { "base" : "block/chego-nibud" }, чтобы игра знала, где искать модель; меняем "drawtype": "cube", на "drawtype": "json", для лучшей отрисовки модельки игрой, пишем:

"sidesolid": { "all" : "false" },
"sideopaque": { "all" : "false" }

Сохраняем всё. Получается что-то такое:

-12

Теперь у нас есть моделька блока, и она работает!

-13

Тут среднестатистическая мама погнала среднестатистического Полуэкта спать, и он больше не смог ничего сделать. Надеюсь после этого "руководства по созданию модов" среднестатистический читатель будет понимать что творится в дневниках разработки мода, и я ничего критичного не забыл. Тех, кого создание модов на винтажку увлекло, я коварно отправлю разбираться в вики, где есть всё-всё.

Конец!

Нет, нет не конец, Продолжение следует. По крайней мере хоть одна статья дневника точно будет!