Hexen 2 Russian Fans Суббота
2024-10-05
13:17:35
Приветствую Вас Гость | RSS Главная страница | Создание объекта в виде спрайта в Hexen 2 - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DraculaX, RaVeN, Reiko  
Создание объекта в виде спрайта в Hexen 2
ReikoДата: Понедельник, 2019-04-15, 14:52:00 | Сообщение # 1
Темный воин внешнего мира
Группа: Модераторы
Сообщений: 2482
Статус: Offline
Спрайты для Hexen 2

Хотите добавить объекты в виде спрайтов к примеру из Heretic в Hexen 2? Отлично начнем, но сперва нам придется покопаться в коде игры, что-бы добавить новый объект в игру. Добавим в Hexen 2 колонну из Heretic.

Добавляем новый объект в игру.

Для тестов сначала сделайте карту в виде комнаты и расположите там какой либо стандартный entity объект, к примеру obj_fountain. Зайдите в его свойства и измените classname с obj_fountain на новый obj_BrownPillar . Запомните это название, сохраните карту, компилируйте. Теперь перейдем к кодингу.

Качаем нужное.
Идем на сайт http://uhexen2.sourceforge.net/download.html и в разделе "Sources for the 1.5.9 version:" качаем hexen2source-gamecode-1.5.9.tgz ,а также в разделе "Windows 32 bit (x86) zip files for the 1.5.9 version:"(если другая ос ищем другое) и качаем hexen2-utils-1.5.9
В папке с hexen 2 Создаем папку для мода testmod, в создаем еще одну папку - hcode. Открываем архив hexen2source-gamecode-1.5.9 и распкаковываем содержимое из "hexen2source-gamecode-1.5.9.tgz\hexen2source-gamecode-1.5.9.tar\gamecode-1.29b\hc\portals\" в созданную папку hcode.
Распаковываем из архива hexen2-utils-1.5.9 файл hcc.exe в нашу папку hcode. Для теста можем запустить hcc.exe и если все сделали правильно, то в папке hcode пойвится файл progs.dat. Удаляем его. Теперь будем добавлять новое.

progs.src
в нем изменяем строчку 
Код
progs.dat


на
Код
../progs.dat


это позволит создать файл в папке мода testmod
переходим в конец файла и добавляем новую строку
Код
heretic.hc


spawn.hc
Здесь ищем строку 
Код
float ENT_DRAGLION            = 91;


после нее начинаем новую строку и пишем
Код
float ENT_BROWN_PILLLAR         = 92;


Теперь находим строку 
Код
float entity_spawnvalues[552] =//6 per entity


и добавляем к числу 552 шестерку.
Код
float entity_spawnvalues[558] =//6 per entity


ниже находим такое:
   
Код
100,     200,       0,            3,             1,            1   // ENT_DRAGLION
};//Health    Mass    Movetype         Solid    Thingtype        DamageType


и после ENT_DRAGLION добавляем новую строку для нашего объекта
   
Код
100,     200,       0,            3,             1,            1,   // ENT_DRAGLION
     1000,     0,       0,            3,             1,            1   // ENT_BROWN_PILLLAR
};//Health    Mass    Movetype         Solid    Thingtype        DamageType


чуть ниже видим 
Код
vector entity_box[184] =


изменяем на
Код
vector entity_box[186] =


ниже находим (размер незримой коробки)
Код
' -25  -25   0',   ' 25  25  62'         // ENT_DRAGLION
};


и меняем на
Код
' -25  -25   0',   ' 25  25  62',         // ENT_DRAGLION
   ' -24  -24    0',   ' 24  24  80'         // ENT_BROWN_PILLLAR
};


Теперь создаем файл heretic.hc и там пишем:

Код
void obj_BrownPillar (void)
{
   precache_model2("models/BRPLA0.spr");
   CreateEntityNew(self,ENT_BROWN_PILLLAR,"models/BRPLA0.spr",chunk_death);
}


obj_BrownPillar - тот самый который будет располагаться в редакторе карт.
BRPLA0.spr - будущий спрайт который мы создадим далее.
ENT_BROWN_PILLLAR - новое свойство объекта добавленное нами в spawn.hc

Сохраняем и запускаем hcc.exe , если все прошло без ошибок, то в папке мода testmod создастся progs.dat

На данный момент у нас должно быть так: в папке с игрой создана папка testmod. В ней:
Папка Hcode - папка где лежит игровой код и hcc.exe;
Файл Progs.dat - файл скомпилированный из папки Hcode

Можно попробовать протестировать запустив игру но объект не появится на карте т.к. еще нет спрайта smile


аниме спасет мир :3
 
ReikoДата: Понедельник, 2019-04-15, 15:02:05 | Сообщение # 2
Темный воин внешнего мира
Группа: Модераторы
Сообщений: 2482
Статус: Offline
СОЗДАЕМ СПРАЙТ

Потребуется:

Slade - https://u.to/n8UgFQ

heretic.wad - https://u.to/pcUgFQ

Fimg - (прикреплю к посту)

Запускаем slade, открываем heretic.wad и ищем в нем BRPLA0. Создаем в слейде новый wad (ctrl+shift+w) и копируем туда BRPLA0.



выбираем его и в меню сверху жмем graphic > convert to. и делаем так же как на скриншоте и жмем convert



Затем справа в Entry Contents жмем Save (спрайт в wad'e сохранится в png), затем выбираем спрайт и эксортируем его куда-нибудь (Ctrl+e). Закрываем полностью slade.

Открываем теперь fimg. В ней импотируем наш png файл через меню Animation > Import & Append Frame(s)


Как я понял, по умолчанию fimg использует палитру quake 1, поэтому надо поменять на hexen 2.

Добавляем палитру hexen 2 через меню Image > Edit Palette... > Load и там выбираем palette.lmp что находится в папке с программой fimg (файл палитры hexen 2) будет как на скриншоте:


Сохраняем теперь File > Save As как BRPLA0.spr . Появится окошко связанное с glquake но игнорируем и жмем ок.

Теперь в папке testmod создаем папку models и помещаем туда наш файл BRPLA0.spr
В итоге получится нечто такое:

Если спрайт в полу или над полом, то можно поиграться с восотой объекта в редакторе карт или поменять высоту в fimg в меню Animation > Frame Properties




Fimg с палитрой Hexen 2: https://yadi.sk/d/_wbnvpv63b4UQA
Папка с testmod с примером: https://yadi.sk/d/CjSOezy8ZIMqHA


аниме спасет мир :3

Сообщение отредактировал Reiko - Понедельник, 2019-04-15, 15:08:12
 
TancreDimДата: Понедельник, 2019-04-15, 23:44:01 | Сообщение # 3
Искушённый
Группа: Хранители
Сообщений: 180
Статус: Offline
Одобрямс.

Единственно замечу что тут:
Цитата Reiko ()
выбираем его и в меню сверху жмем graphic > convert to. и делаем так же как на скриншоте и жмем convert
нужно чуток конкретизировать. Необходимо чтобы обе картинки были без цветной заливки фона.
В слэйде по умолчанию выбран "Transparent Colour" как "Cyan" (r\g\b = 0\255\255) и обычно спрайты используют именно этот цвет в качестве прозрачного фона, однако бывают спрайты с фоном других цветов.
В этом случае следует выставить галку на строку "Transparent Colour" и чтобы не подбирать вручную оный "Transparent Colour" из палитры (где цветное окошко), достаточно лишь ЛКМ на фоне левой (обрабатываемой) пикчи, - необходимый "Transparent Colour" подберётся автоматически.

Да, собс-но я это уже писал:
Цитата TancreDim ()
5. Выбираем опцию "Transparent Colour" И кликаем на фон (в нашем случае белый) => прозрачным становится именно данный цвет.
Как раз в твоём примере цвет фона был белый.


Пишите в личку если что.

"Poor HeXen. Along with Strife, it's been the neglected red-headed stepchild."

NaN is my favourite number.


Сообщение отредактировал TancreDim - Понедельник, 2019-04-15, 23:54:19
 
Heku4Дата: Пятница, 2019-07-05, 17:32:18 | Сообщение # 4
Постигнувший
Группа: Хранители
Сообщений: 92
Статус: Offline
Вероятно глупый вопрос, но все-же. Возможно-ли создать подобную текстуру для Х2 и использовать ее в брашах?

Жизь одинакова для всех, почти...
 
ReikoДата: Воскресенье, 2019-07-14, 13:59:00 | Сообщение # 5
Темный воин внешнего мира
Группа: Модераторы
Сообщений: 2482
Статус: Offline
Heku4, нет

аниме спасет мир :3
 
Heku4Дата: Пятница, 2020-05-08, 21:28:14 | Сообщение # 6
Постигнувший
Группа: Хранители
Сообщений: 92
Статус: Offline
Что-то я не могу понять. У меня при открытии элементов меню из Hexen II при смене палитры все равно какая-то ерунда получается. =(
Может что-то не так делаю?

Прикрепления: 6296393.jpg (204.4 Kb)


Жизь одинакова для всех, почти...

Сообщение отредактировал Heku4 - Пятница, 2020-05-08, 21:28:50
 
  • Страница 1 из 1
  • 1
Поиск:


Hexen 2 Russian Fans © 2006-2024 Хостинг от uCoz