Diablo 2: Создание новых монстров с новым токеном, основы анимации

Анимация персонажей, монстров и НПС находится в файлах формата .dcc. Вся анимация монстров находится в папке Monsters. Каждая папка имеет название, которое соответствует названию Токена или Кода монстра (этот код можно найти в файле monstats.txt в колонке CODE). Например, токен фаллена это «fa». Внутри папки с именем токена, лежат еще папки с названиями части тел (hd – head, tr – torso, lh – left hand, rh – right hand, ra – right arm, la – left arm, lg – legs, sh – shield, s1 – first overlay). Если вы загляните, например, в папку таких монстров как Corrupted Rogues то увидите что их «ra» и «la» анимации содержат различные типы оружия. Таким образом, игра генерирует разновидности монстров, с разным оружием, доспехами шлемами и тд. Но не все монстры состоят из разных частей, некоторые состоят из только одной. Поэтому, с этого момента мы будем разделять два понятия: много-компонентные (multi-part) и одно-компонентные (one-part). Также в папке монстра есть папка cof, где лежат контрольные файлы анимации. Очень важно указывать правильное название файлов, потому что от этого зависит все. Рассмотрим пример опять таки на Фалленах.

Fatrlita1hth.dcc – это название одного из файлов анимации. За что же он отвечает? Если разбить название на части мы увидим: Fa – это название токена Фаллена, tr – указывает что это Тело (Torso), lit – значит Легкий вариант брони (light), a1 – указывает тип анимации (Атака 1), hth – указывает класс оружия (hth – hand to hand, то есть ручной бой). Что мы должны помнить всегда? Что, создавая новых монстров мы будем использовать только часть тела “tr”, только класс брони “lit” и только класс оружия “hth”. Потому что на самом деле не важно, что у нашего нового монстра будет в руках топор или меч, мы сейчас говорим о коде игры, а не о то, что изображено на анимации. Теперь пару слов про .cof файлы. Это контрольные файлы, которые указывают игре, сколько кадров есть в .dcc файлах, сколько направлений у юнита, какой кадр является действием и тд. Название .cof файлов должно состоять из токена монстра, типа анимации и класса оружия (FAA1HTH.cof).

В Diablo 2, монстры имеют 8 направлений. Направления нужно указывать только в таком порядке как на картинке. В каждом направлении должно быть одинаковое количество кадров.

 

Подготовка .gif анимации и создание .dcc анимации

Допустим у вас уже есть кадры из которых можно создать гифку подходящую для конвертации в Д2. Но этого мало. Нужно еще обработать эти кадры и подготовить гифку для конвертации в .dcc. Для этого вам понадобиться Gamani Gif Movie Gear. Первое что надо это сделать фон прозрачным. Нажимаем Frame > Global Properties ставим галочку возле слова Transparent и назначаем фоновый цвет прозрачным. Далее внизу надо установить Restore to background. Переходим на следующую вкладку Animation и нажимаем на кнопку возле GIF Bk Color – это цвет фона гифки. Здесь необходимо назначить тот же цвет, который мы сделали прозрачным. Теперь нажмите на кнопку Edit возле слов Global Palette и посмотрите на коды красок – здесь наша задача избавиться от красок с кодом 0,1,2 и 3, потому что игра их не читает. Все просто – если увидите где-то 0,1,2 или 3, просто поменяйте его на 4. От этого цвет не изменится, но будет читаться игрой. И последний штрих, надо продублировать первый кадр. Просто скопируйте первый кадр и вставьте его перед вторым (правая кнопка мышки > Paste before). Если все сделали, нажимаем File > Save Gif animation as…, укажите имя, типа файла .Gif и стиль Animation.

Когда гифка готова, можно конвертировать ее в .dcc. Для этого нам надо программку CV5. Откройте программу, найдите свою гифку, установите Frame from = 1, и нажимайте Save. Выберите тип файла .dcc и укажите имя. Перед вами откроется DCC save settings.

Сверху указываем, что у нашего монстра 8 направлений, а внизу надо поставить палитру Units. А теперь самое сложное и самое главное – это могучие Офсеты. Офсеты нужно вводить со знаком минус «-». Картинка с боку позволяет нам подобрать правильные офсеты на глаз. Чтобы понять какие-именно офсеты вводить вот несколько советов:

С помощью CV5 откройте .dcc файлы монстров из Д2 и пересохраните их как .dcc. Вы увидите, как расположены офсеты у стандартных мобов. Не смотрите на числа – смотрите на место, где линии пересекаются.

Почти всегда место пересечения линий – это возле ног юнита.

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

 

Создание .cof файлов

Для создания .cof файла нам понадобится Сof Editor. У этой программы нет интерфейса поэтому придется работать в DOS’е. Для начала откроем файл new.cof.ini и разберемся с функциями:

  • dcc_file = здесь нужно указать имя .dcc файла из которого мы делаем .cof. Файл должен лежать в папке программы
  • cof_token = это Токен или Код анимации (мы уже обсуждали это выше)
  • cof_mode = тип анимации (ходьба, бег и тд.)
  • cof_class = класс оружия (у нас будет всегда HTH)
  • nb_layers = количество слоев анимации (у нас будет всегда 1)
  • xmin = -512, xmax = 512, ymin = -512, ymax = 512 – всегда должно быть так
  • trigger_value = является ли данный тип анимации действием (атака или каст). 0=нет, 1=да
  • trigger_frame = кадр, в котором происходит действие (вводим номер кадра)
  • layer_order = порядок слоев. У нас всегда = 01

И дальше все оставляем как есть:

  • layer_composit_01 = 01
  • transparency_01 = NO
  • layer_class_01 = hth

Теперь открываем DOS и прописываем путь к программе. Когда оказались в папке с файлом .exe, прописываем команду cofedit.exe –generate new.cof.ini

Таким образом, вы создали файл .cof. Перенесите его в папку «cof» своего нового монстра.

 

Работа с файлом Animdata.d2

Файл Animdata.d2 хранит в себе всю информацию об анимации в игре. Сам файл находится в папке data\global. Для его модификации нам надо скачать программку Animdata_edit_v2.1. Скачайте и скопируйте содержимое в любую папку. Запустите файл Extract.bat. У вас появится файл AnimData.txt. Этот файл нам и надо модифицировать. В этом гайде мы учимся создавать новых монстров с новыми токенами, поэтому мы не будем модифицировать уже существующую информацию, а будем добавлять новую. Теперь рассмотрим, что означают названия колонок:

CofName – надо указать, как называется ваш Cof файл.

FramesPerDirection – количество кадров в одном направлении.

AnimationSpeed – скорость анимации.

FrameData000-FrameData143 – это инфомация о кадрах. Помните мы говорили про кадр, в котором происходит действие? Если данный Cof файл является действием (атака или каст), нужно указать в каком кадре происходит действие. Если при создании Cof файла вы указали что действие происходит, например, в кадре 8, то здесь найдите колонку FrameData008 и поставьте там «1». Все остальное должно быть «0». Нельзя ставить единицы в файлах, где действие не происходит, и нельзя ставить единицы в двух кадрах. Если закончили, сохраняйте файл, и запустите файл Pack.bat в папке с программой. Теперь найдите файл AnimData.d2 в той же папке и скопируйте его с заменой в data\global. Все, вы создали новый токен для монстра.

Есть еще одна полезная программка COFTXT, которая извлекает информацию из ваших Cof файлов и генерирует строки для файла AnimData.txt. Я ней не особо пользуюсь, но полезно ее иметь при себе и знать, как она работает.

 

Создание нового монстра в monstats.txt и monstats2.txt

Откроем monstats.txt и создадим новую строку внизу. Всегда лучше копировать какую-нибудь строку из уже готовых и вставить внизу. Здесь главное указать в колонке Code токен вашего нового монстра. Функции остальных строк можно найти в полном описании файла monstats.txt, но пару советов все же дам.

  • Название в колонке MonStatsEx всегда должно соответствовать названию в файле monstats2.txt;
  • Не забудьте выбрать подходящий AI для своего монстра, здесь можно много эксперементировать;
  • В колонке enabled всегда ставьте 1;

Теперь откройте monstats2.txt. Id должно соответствовать имени в колонке MonStatsEx в файле monstats.txt. Скопируйте первую строку и вставьте внизу как новую. Нас интересуют только следующие колонки:

MeleeRng – дистанция, из которой монстр сможет вас атаковать;

TRv = «lit» (остальные пустые)

TR = 1 (остальные пустые)

TotalPieces =1

Колонки mDT mNU mWL mGH mA1 mA2 mBL mSC mS1 mS2 mS3 mS4 mDD mKB mSQ mRN – это типы анимации вашего монстра. Я же не знаю, сколько их у вас будет. Если например, у вашего монстра есть анимация ходьбы, то поставьте «1» в колонке mWL. И так далее.

Restore – всегда «1»!!! (О, Боже, сколько проблем мне доставила эта колонка).

isSel – позволяет навести на монстра мышкой.

corpseSel – позволяет навести на труп мышкой.

isAtt – позволяет атаковать.

Revive – позволяет оживить.

Если все готово, откройте файл levels.txt, найдите строку Act 1 - Wilderness 1, найдите колонки mon1-25 и вставьте здесь имя своего нового монстра. Он должен появиться на Кровавом Болоте. Пойдите, посмотрите что получилось.

P.S.

В данном архиве вы сможете найти кадры анимации юнита из игры Златогорье 2. Вы можете испольовать их чтобы потренироваться использовать советы в гайде на практике.

 

Вернуться к разделу Diablo 2: Создание своих модов


Автор: JetaMan


Смотрите также:


Итоги новогоднего конкурса скриншотов


Diablo 2 – Камни
и их свойства при добавлении в предметы


Diablo 2 – Билды на Некроманта



Комментарии

Cristi 2018-01-12 17:34:44
Salut m poi ajuta i pe mine te rog sa fac montrii noi ?

Ответить
? +3 ?
alkargames 2017-12-30 22:12:50
Alkar Games, сервер Diablo II, Ladder Reset 22.12.2017
ex-alkar.net

Ответить
? +2 ?
Арлекино 2017-09-02 13:10:30
Вожусь с жучиными королевами и никак не могу задать им такой размео, чтобы персонаж и монстры не ходили через тело королевы. Есть ли возможность пофиксить этот баг?

Ответить
? +3 ?
Я 2016-08-22 20:43:56
Супер! Как насчёт создать на сайте базу данных с пользовательскими монстрами?

Ответить
? +7 ?
Просто юзер 2016-08-20 14:03:07
Наркоманы насилуют игру (нет, вы действительно думаете, что у вас получится создать хороший мод, который сможет хотя бы приблизится к тому же зу-елю или чему-то подобному?), нормальные игроки наслаждаются оригиналом.

Ответить
? -7 ?
CoCo 2016-10-13 03:49:00
Если бы все так думали, то не было бы и зу-эля и медиана (над марконекросом кстати смеялись и говорили что он идиот и ничего у него не получится, а результат лучший мод истории + сигму сейчас готовит, где ещё больше наворотов и приятностей). т.ч. неуместны твои слова, ни капли...

Ответить
? +8 ?
Moe 2016-08-19 19:27:56
Почему так мало новостей выходит? Я уже месяц нового жду.

Ответить
? +3 ?
Конкере 2016-08-19 05:59:41
Колонки "mDT mNU mWL mGH mA1 mA2 mBL mSC mS1 mS2 mS3 mS4 mDD mKB mSQ mRN" - было бы здорово расшифровку колонок иметь. потому что я могу только предполагать, что mWL означает monster WaLking,да и то потому что ты про это написал, а чего значат другие сокращения - фз. особенно с цифрами 1 и 2. полагаю это две вариации чего-то одного, но...

Ответить
? +2 ?
Jetaman 2016-08-19 19:25:02
Буква "m" значит не "monster", а "mode", то-есть режим анимации (ходьба, бег и тд). А теперь что они означают:
DT - смерть
NU - нейтральный
WL - ходьба
GH - получил удар
A1 - атака 1
A2 - атака 2
BL - блок
SC - каст
S1 - скилл 1 (и тд)
DD - труп
KB - копнуть
SQ - sequence (особенная анимация конкретных АИ)

Ответить
? +5 ?
Aрлекино 2016-08-18 22:12:59
Отличный гайд!!!
А зачем дублировать в gif первый кадр?

Ответить
? +2 ?
Jetaman 2016-08-19 19:31:32
На это есть две причины:
1 - программа CV5 немного забагована, и если при сохранении указать начало с кадра 0 (а первый кадр это не 1 ,а 0) то при проигрывании анимации первый кадр всегда будет очень искаженным.
2 - есть лимит на размер .dcc файла, это 255х255. То-есть, если гифку больше данного размера конвертировать в .dcc игра выдаст ошибку. А данный трюк позволяет это ограничение обойти. Не на много конечно, но насколько я помню размер в 300х300 или 400х400 получалось.

Ответить
? +2 ?
Арлекино 2016-08-19 22:01:59
Насчет обхода лимита не совсем понял, как повторный кадр позволяет его обойти?

Ответить
? +1 ?
Jetaman 2016-08-19 22:08:21
Я точно не знаю как это работает и почему, но точно работает. Повторный кадр позволяет запихнуть в игру гифку больше 255x255. В личку кинул ссылку на доказательство.

Ответить
? +2 ?
Арлекино 2016-08-20 09:14:21
Да я вот как раз и подумал о подобном монстре. Но не совсем понимаю, нулевой кадр должен быть точно таким же как и первый или не больше 255х255, а остальные уже большего размера?

Ответить
? +1 ?
Jetaman 2016-08-20 19:12:28
Таким же как и первый. Они должны быть одинаковы. Просто дублируем первый кадр.

Ответить
? +3 ?
Cristi 2018-04-21 22:02:28
Hi bro can you please help me create a new monster with new token ?
Please contact me my adress facebook.com/kyky1416

Ответить
? +2 ?
Арлекино 2016-08-20 19:58:13
Спасибо!

Ответить
? +3 ?
Страницы:

Ваше имя
Комментарий



Реклама:

Наша командаРазработка глобального обновления

При поддержке Сил Преисподней
2008-2024