Моддинг Disciples II, часть 5: добавляем нового юнита в игру
Если вы читаете сразу пятую часть, то рекомендую сначала прочитать прошлые, чтоб мне не надо было много повторяться: Моддинг Disciples 2
Для начала разберемся, что из себя представляет юнит в Disciples 2? Это набор зааписей в DBF файлах + набор статичных картинок для портретов + набор анимаций для боев и, опциально, для передвижения на глобальной карте.
Если с DBF и статичными картинками все более-менее понятно и просто, то, как быть с анимациями?
У вас есть 3 пути.
Первый, самый простой, вытащить из игры уже имеющиеся анимации и отредактировать их в фотошопе.
Второй, самый дорогой и сложный, пойти по тому же пути, что и оригинальные разработчики. То есть создать 3D модель, сделать ей анимации, записать их в gif и импортировать в игру. Этим путем идем мы при создании нашего мода на шестую фрацию Племен Зеленокожих. (Юнит для шестой фракции в Disciples II - Племен зеленокожих)
Третий, средний вариант, который я и покажу. Взять уже готовые анимации из другой игры, при необходимости отредактировать их, и импортировать в игру.
Где достать нужные анимации? Ищите их среди старых, изометрических рпг и стратегий.
Например, вот на этом сайте есть сразу собранные анимации: https://d2mods.info/resources/infinitum/index-anims-ac.html
Можете попытать удачу и здесь: https://www.spriters-resource.com/pc_computer/A/
В общем пригодится, что угодно. Я решил попробовать импортировать радскорпиона из fallout 2 со второго источника. Там есть вот такая картинка со всеми кадрами каждой анимации:
Скачиваем эту или любую другую анимацию. Оригинальные спрайты в игре в разрешении 800 на 600 пикселей, при чем сам юнит занимает лишь малую часть этого пространства, но важно расположить вашего нового юнита в той же точке, что располагаются и остальные юниты, иначе ваш новый юнит будет улетать куда-то в сторону. Как это сделать проще всего? Вытащить любую анимацию и расположить свои кадры поверх оригинальных, а оригинальные удалить.
В 4 части урока по моддингу я показывал программу D2ResExplorer v2.10, которая нам понадобиться для работы с анимациями, поэтому её качаем обязательно. Указываем путь к игре, сканируем папку и открываем контейнер BatUnits.ff. В идеале ищем статичкую "анимацию" паралича юнита, что состоит из одного кадра.
ВАЖНО!!! Измените формат в который будете извлекать анимации. Нас интересует только GIF.
Далее придется работать с анимацией покадрово. Я использую старенькую версию Photoshop, но вы можете работать с тем, что вам удобнее, если знаете аналоги.
Открываем анимацию и видим, что у нас всего 1 кадр, да ещё и режим индексирования цвета. Надо исправлять.
Меняем режим на RGB, иначе у вас не будет возможности работать с анимацией.
Далее идем нарезать кадры для скорпиона. Для начала уберем лишний черный фон. Правой кнопкой мыши кликаем на единственный фоновый слов и убираем его с заднего плана.
Затем, убираем черный фон со слоя. Дважды кликаем на получившийся слой и двигаем аккуратно ползунок, пока не пропадет фон.
Теперь можно выделять понравившийся кадр и копировать его на новый слой, а затем перетаскивать поверх анимации парализованного сквайра.
Слой со сквайром удаляем, а сами делаем новые кадры в анимации.
Для плавной анимации понадобится около 20-30 кадров. Если в оригинале кадров не хватает вы можете их задублировать кадр, как это сделал я. В фоллауте у атаки "покоя" радскорпиона около 11 кадров, поэтому я каждый использовал дважды, чтоб получить 22 кадра.
Далле нам нужно сохранить для web устройств. Это и будет сохранение в gif формате.
Одна анимация готова. Но таких надо минимум 6: анимация покоя вид спереди и вид сзади, анимация атаки вид спереди и вид сзади, анимация получения урона вид спереди и вид сзади.
Все делается аналогично, поэтому показывать смысла нет. Как сделать портрет для юнита я показывал тут: Моддинг Disciples II, часть 4: добавляем новые портреты в игру
Я лично взял изображения древесного скорпиона из Fallout New Vegas, отдал его Chat GPT, уменьшид контраст и насыщенность цветов, затем прогнал через энкодер для индексации цветов упомянутый в 4 части уроков по моддингу и получил на выходе это.
Но нам нужный ещё две миниатюры, чтоб было корректное отображение юнита в отряде. Иначе вы увидите заглушку.
Для начала извлекаем любую пару FACE и FACEB, чтоб было проще подогнать размеры.
Размещайте также ваши кадры поверх извлеченных и сохраняйте с другим именем. Не забываем пронать через энкодер, чтоб индексировать цвета.
По итогу должно получится как-то так (второй, квадратный фейс не дает загрузить на пикабу, видать слишком низкое разрешение у изображения, но думаю вы поняли).
Теперь нужно добавить несколько записей в DBF файлы, прежде, чем внедрять наши спрайты.
Нам понадобится создать записи в Tglobal.dbf с именем и описанием нового юнита, а также с названием его атаки.
Главное не повторяйте уже сущесствующие идентификаторы TXT_ID
Далее добавим уникальную атаку "удар жалом" для скорпиона. Для этого надо добавить запись в Gattacks.dbf. Здесь также обязательно должен быть уникальный идентификатор ATT_ID. А в полях NAME_TXT и DESC_TXT оставляем идентификатор текстового названия атаки из прошлого шага. За что отвечают другие характеристики можно прочесть в одном из прошлых уроков: Моддинг Disciples II, часть 3: меняем характеристики юнитам
И главное, добавляем запись в Gunits.dbf. Тут важно дать уникальный идентификатор UNIT_ID, а затем указываем новую атаку, описание и название юнита. Остальные характеристики можно догадаться для чего нужны или опять же обратиться к "уроку 3" по ссылке выше.
Теперь закрываем редактор DBF файлов и переходим к импорту новых спрайтов через D2ResExplorer. Сначала мы должны верно обозвать анимации и портреты, чтоб они привязались к новому юниту.
ОЧЕНЬ ВАЖНО правильно назвать файлы перед импортом. У квадратного минипортрета название это идентификатор юнита из Gunits + FACE, а у круглого идентификатор юнита из Gunits + FACEB.
Ищем контейнер Faces.ff и добавляем туда два "минипортрета"
Затем идем в Event.ff и делаем все, как в Моддинг Disciples II, часть 4: добавляем новые портреты в игру
И наконец нас интересуют анимации, тут тоже важно верно назвать их. Опять же идентификатор юнита из Gunits, который вы сами придумали, окончания:
HHITA1A00 гифка получения урона вид спереди.
HHITA1D00 гифка получения урона вид сзади.
HMOVA1A00 гифка атаки вид спереди.
HMOVA1D00 гифка атаки вид сзади.
IDLEA1A00 гифка покоая вид спереди.
IDLEA1D00 гифка покоая вид сзади.
STIL1A00 гифка из ОДНОГО кадра для парализованного юнита вид спереди.
STIL1D00 гифка из ОДНОГО кадра для парализованного юнита вид сзади.
Находим контейнер BatUnis.ff, раскрываем AnimMap и добавляем через "импорт анимации из гиф" все наши гифки.
Затем правой кнопкой мыши щелкаем по InexMap и сортируем записи.
Теперь всё готово. Любуемся результатом.













































