Для начала, что такое СПРАЙТ???
Спрайт - это обыкновенная картинка, запакованная в spr формат. У этого формата есть много общего с форматом GIF, а именно:
- в файле spr может хранится как статичная картинка, так и последовательность (анимированная картинка);
- ограничение на колличество цветов – 256 (впрочем как и везде в игре);
- есть поддержка прозрачности 2х видов: а) с одним прозрачным цветом (например сетка оптического прицела);
б) с полу прозрачностью (например радар или свечение около источника света).
Спрайтами в игре представлен HUD (Holographical Unit Display), прицелы, дым, свечение, вспышки от выстрелов и т.д.
С помощью программы Sprite Viewer можно спрайты смотреть, а с помощью программы Sprite Wizard делать самому.
Делаем СВОИ спрайты!
Попробуем сварганить парочку спрайтов: новый прицел и, например, спрайт какого-нибудь ствола. Нам понадобится:
- Photoshop любой версии или любой другой графический редактор;
- SpriteViewer для просмотра спрайтов и сохранения их в BMP;
- SpriteWizzard для конвертации из BMP в SPR.
Начнём с прицела – всё делается очень просто: в Photoshop создаётся холст с размерами 256х256 (больше нельзя), заполняем его белым цветом (так удобнее), а дальше карандашом толщиной в 1 точку рисуем всё то, что составляет сетку будущего прицела. Не забывайте как-то отметить центр, иначе сами же будите мазать. Разумеется, рисовать можно разными цветами. Например: сетка чёрным цветом, циферки всякие красным и т.д. Когда с рисованием будет покончено, сделаем рисунок 256-цветным: меню ImageModeIndexed color. А теперь самое главное – нужно чтобы в таблице цветов последним был белый, он же фоновый. Идём ImageModeColor Table и заполняем последнюю ячейку белым цветом. Сохраняем рисунок в формате BMP. На этом работа с Photoshop закончена, дальше открываем программу Sprite Wizzard. Как видно из названия – это пошаговый мастер. Следуя инструкциям, открываем сохранённую картинку – тут всё просто за исключением последней страницы - там нужно указать тип прозрачности:
- Additive – 256 colors with additive transparency.
- Alphatest – 255 colors; last color is transparency.
- Indexalpha – Grayscale; last color is the sprite color.
- Normal – 256 colors; no blending or transparency.
Последнии два пункта нас вообще не интересует, а вот первые два рассмотрим поподробнее:
Additive
– этот способ прозрачности заключается в том, что степень прозрачности
определяется цветом – чем темнее, тем прозрачнее. Следовательно, чёрный
цвет самый прозрачный, белый самый непрозрачный, а всё что между ними
полупрозрачное;
Alphatest – отличие этого способа от предыдущего в том, что здесь прозрачный цвет только один – последний в таблице цветов.
Нас будет интересовать второй способ (Alphatest) с одним прозрачным цветом. Сохраняем файл с именем sniper_scope.spr, копируем его в папку Sprites, запускаем игру, и смотрим что получилось.
Теперь рассмотрим пример создания спрайта оружия (элемент HUD). Все инструменты те же, что и в предыдущем примере.
Делаем тот же холст с такими же размерами, фон делаем любым, только не чёрным (так удобнее). Теперь оставим большой холст и создадим два файла с размерами 170х45 с чёрным цветом в качестве фона. Теперь нам понадобится уменьшенная картинка оружия (фотка, рендер из 3D MAX, или просто скриншот из Model Viewer) до размеров 170х45. Вставляем её в качестве нового слоя в оба маленьких файла. Причём в одном из них к слою с изображением ствола применяем ну, например, эффект свечения. Склеиваем слои в обоих файлах. Выделяем всю область в одном маленьком файле, копируем и вставляем её в качестве нового слоя в большой холст. Тоже самое проделываем со вторым файлом.
Тут
нужно немного пояснить, почему именно 170х45 и почему две картинки.
Картинка со свечением показывается на экране, когда игрок подбирает
оружие, а картинка без свечения показывается, когда игрок выбирает
оружие цифровыми клавишами. Размеры 170х45 являются стандартными, но
могут быть и другими. Чтобы правильно использовать спрайты с другими
размерами нужно будет подправить текстовый файл в каталоге Sprites, например weapon_scout.txt. Он примерно вот такого содержания:
14
weapon 320 320hud1 0 80 80 20
weapon_s 320 640hud7 72 72 24 24
ammo 320 640hud7 72 72 24 24
crosshair 320 crosshair 24 0 24 24
autoaim 320 crosshairs 0 72 24 24
zoom 320 ch_sniper 0 0 256 256
zoom_autoaim 320 ch_sniper 0 0 256 256
weapon 640 springfield 0 0 170 45
weapon_s 640 springfield 0 45 170 45
ammo 640 640hud7 72 72 24 24
crosshair 640 crosshairs 24 0 24 24
autoaim 640 crosshairs 0 72 24 24
zoom 640 svd_scope 0 0 256 256
zoom_autoaim 640 svd_scope 0 0 256 256
Жирным цветом выделены те строчки, которые нам нужны. В первой описывается первая картинка, во второй вторая. Сначала указывается имя файла (без расширения, вданном случае springfield), где содержатся нужные картинки. Потом идут цифры: первые две указывают на верхний левый угол картинки (0 0), а вторые две на нижний правый (170 45). Тоже самое и со второй строчкой. Опять же повторюсь, что редактирование этого файла нужно в том случае, если у ваших спрайтов нестандартные имя файла и размеры.
Здесь же есть строка (вернее две), в которой указывается какой файл прицела использовать при зуме. Вот они:
- zoom 640 svd_scope 0 0 256 256
- zoom_autoaim 640 svd_scope 0 0 256 256
Если прицел делался со стандартными размерами, то тут требуется изменить лишь имя файла (если нужно).
Теперь опять переводим всю картинку в 256-цветный режим, не трогаем таблицу цветов, сохраняем.
Дальше открываем Sprite Wizzard, открываем нашу картинку и в качестве способа прозрачности указываем Additive.
Сохраняем файл спрайта и кидаем его в каталог Sprites. Редактируем
текстовый файл, если нужно. Запускаем игру и смотрим, что получилось.
Разобравшись с этими двумя способами, можно сделать абсолютно любой спрайт к игре. А ведь есть ещё анимированные спрайты...