HLFX.Ru Forum
Показать все 10 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- Angled Sprite Toolkit (https://hlfx.ru/forum/showthread.php?threadid=2915)


Отправлено Дядя Миша 06-07-2011 в 12:02:

Angled Sprite Toolkit

Меня лефронт попросил ему скомпилить спрайт свиньи из дюк-нюкема для халфовской карты cs_duke, но поскольку у меня нет на это времени, я решил выложить вам полный тулкит с примерами, как это делается для ксаша и как это работает.
Собственно тулкит: www.hlfx.ru/xash/angled_sprite_toolkit.rar - 576 kb

Внутри архива содержится еще три:
xash_tools.rar - тот самый, утерянный xash tools, включает в себя extragen, spritegen, studiomdl, ximage, xwad. Я не буду подробно останавливаться на командах и параметрах данных утилит, поскольку всё это уже неоднократно обсосано, например здесь: http://www.hlfx.ru/forum/showthread...=&threadid=1619
Скажу только, что процесс создания монстров из дуума полностью автоматизирован (вам достаточно лишь сдекомпилить спрайты при помощи extragen, а затем скомпилить их в формат, понятный халфе, при помощи spritegen). Для спрайтов из дюка такой халявы нету, поэтому придется повозиться, расставляя спрайты в нужном порядке.
Вот приблизительное описание одного angled-кадра, для лучшего понимания происходящего.

C++ Source Code:
1
$angled
2
{
3
  // frame 'a'
4
  $resample		64 128
5
  $load		bossa2a8.bmp flip_x
6
  $frame		0 0 42 71 0.1 21 71
7
  $load		bossa1.bmp
8
  $frame		0 0 41 73 0.1 20 73
9
  $load		bossa2a8.bmp
10
  $frame		0 0 42 71 0.1 21 71
11
  $load		bossa3a7.bmp
12
  $frame		0 0 52 69 0.1 26 69
13
  $load		bossa4a6.bmp
14
  $frame		0 0 45 67 0.1 22 67
15
  $load		bossa5.bmp
16
  $frame		0 0 41 67 0.1 20 67
17
  $load		bossa4a6.bmp flip_x
18
  $frame		0 0 45 67 0.1 22 67
19
  $load		bossa3a7.bmp flip_x
20
  $frame		0 0 52 69 0.1 26 69
21
}

Итак, что мы здесь видим?
Команда resample выравнивает все кадры примерно к общему знаменателю (по умолчанию отключена глобальной командой $noreasample), но при сборке эту команду лучше закомментировать.
Далее, команда $load загружает нужную картинку. Обратите внимание - в том же дууме (да наверняка и в дюке) некоторые кадры используются два раза в целях экономии места, а сама картинка флипается по горизонтали. В ксашевском спрайтгене есть специальная команда flip_x специально для этих целей. Для любопытных сообщу, что команда flip_y также присутствует, но в данном случае она нам не понадобится.
теперь описание кадров для команды $frame.
первые четыре параметра, это rectangle картинки. Поскольку наши кадры являются законченными картинками, то туда следует прописывать "0 0 ширина высота". Параметр 0.1 относится к авто-анимации для групповых спрайтов и в данном случае роли не играет. Последние два параметра - это оригин КАДРА (не всего спрайта, а данного кадра), соответственно по ширине и высоте. Ширину всегда следует делить на два, а высоту указывать полную (оригин монстров находится в их ногах, как мы все помним).

Также архив содержит doom_boos_example.rar. Это набор картинок, для сборки одного из монстров doom. Данный набор и скрипт компиляции были получены при помощи extragen, и приложены на всякий случай, если у вас нету под рукой дуума, чтобы проделать тоже самое.
Из этого же скрипта ясно видно как анимация смерти превращается в обычные upright кадры. Словом, получается полноценный монстр из дуума.

Теперь самое интересное - поддержка всего этого добра на уровне ксаша. Я уже упоминал, что она там есть с незапамятных времен, просто лежит невостребованная. Теперь настало время увидеть её в действии:
распакуйте архив Xash Demo.rar в папку с ксашем и запустите demo.bat
Обратите внимание, что монстр берет освещение с уровня и от фонарика тоже, как и полагается всякому приличному монстру .

Задавайте вопросы, постараюсь ответить.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 06-07-2011 в 17:17:

зашибись. а монстру вместо модели это спрайт привязать можно?


Отправлено Дядя Миша 06-07-2011 в 18:12:

только теоретически. Потому что в халфе же всякие эвенты, обратная связь от анимации, на этом весь AI держится.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 06-07-2011 в 18:43:

Дядя Миша, а как устанавливать номер фрейма ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 06-07-2011 в 18:50:

ну очевидно ручками из кода )))
Если пострелять в цыклер на демокарте, то он начнет менять кадры как и полагается циклеру.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено qpAHToMAS 06-07-2011 в 22:25:

Скриншотов готового результата не хватает.


Отправлено LeFront 07-07-2011 в 07:14:

Я думал будет монстор.
Шобы портировать Duke


Отправлено Дядя Миша 07-07-2011 в 07:28:

Цитата:
LeFront писал:
Я думал будет монстор.

Монстров добрый дядя Кутузофф напишет (я надеюсь)
А я взаместо этого сделал в ксаше поддержку детальных текстур как в стим-версии. Скоро выложу на попробовать.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено LeFront 07-07-2011 в 09:51:

Деталки это хорошо. Остался бамп


Отправлено Дядя Миша 07-02-2012 в 10:22:

бамп вам HAWK сделает когда-нибудь

Добавлено сегодня в 14:22:

Поскольку никому особо не надо - удалено с сервера

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 19:53.
Показать все 10 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024