Что такое спрайт и с чем их едят? Слово "sprite",
дословно переводиться как "двухмерное изображение на экране". Спрайты -
двухмерные файлы анимации. Могут представлять собой как небольшой мульт
из нескольких кадров, так и один статичный кадр. В HL спрайты
используютсья на каждом шагу - вы просто не могли их не заметить. Это
анимации взрывов, огня, дыма, капельки воды(дождь, снег), различные
вспышки, так называемые "оптические" эффекты(слепящие ореолы ламп) и
т.д. Находяться в папке x:/half-life/cstrike/sprites. Имеют расширение
*.spr. Достоинства и недостатки Для
профессионально маппера спрайты незаменимы. Они никоем образом не
влияют на r_speeds, что не может не радовать! 8) Мне известно три вида
спрайтов, которые имеют свои достоинства и недостатки. 1)
Параллельные спрайты. Создают иллюзию трехмерности объекта, за счёт
того, что они всегда параллельны по отношению к игроку. Пример - на
карте cs_nnd, спрайтом выполнен биллиярдный шар, который кажется игроку
полностью трёхмерным; на de_crater_club, параллельными спрайтами
выполнены кегли и шары для боулинга (Рис. 1). Рис. 1 2) Ориентированные спрайты. Это настоящее открытие для маппера!
Позволяют ориентировать спрайт в какую-либо сторону. Выглядит как
текстура, наложенная на обычный браш. Очень удобно использовать
ориентированные спрайты вместо обычных entity с текстурами, которые
содержат прозрачные области (битовую маску). К тому же, использование
таких спрайтов поможет вам технологически снизить r_speeds! Смотрим
Рис. 2. Рис. 2 На
карте cs_costabrava при помощи ориентированных спрайтов создана листва
деревьев. Выглядит чертовски реалистично и самое главное - приём
экономит драгоценные w_poly! 3)
Фиксированные спрайты. Представляют собой параллельные спрайты,
зафиксированные по вертикали. Такой спрайт будет всегда параллелен к
игроку, за исключением случаев, когда игрок смотрит на него сверху или
снизу. Пример - трава на карте cs_BbICOTKA (Рис. 3). Рис. 3 К сожалению, спрайты так же имеют и свои недостатки
Главный недостаток - ограниченное количество используемых спрайтов.
Дело в том, что при загрузке спрайтов, моделей и entity, для них
резервируется ограниченное место в памяти. Поэтому, количество
спрайтов, использованных вами, желательно не должно превышать 200 штук.
Иначе ваша карта попросту не загрузится, уж поверьте мне Эх! Прощай мечта о создании огромного спрайтового конопляного поля. :) Цветовая палитра спрайта - всего 256 цветов. Ограничение на размер 256х256 пикселей. Ещё
один недостаток - на спрайт никаким образом не влияют тени,
отбрасываемые брашами, а так же источники света(т.е. при компиляции
спрайт не обрабатывается hlrad-ом). Если спрайт будет находиться в
полной темноте - он будет выглядеть светящимся. Пример - кегли и шары
для боулинга на de_crater_club (Рис. 1). Согласитесь, смотриться
странно. Но всё же существуют случаи, когда этот недостаток можно обратить достоинством. Рис. 4 Мультфильм,
который идёт по телевизору на карте cs_bikini (Рис. 4) выполнен
ориентированным спрайтом с несколькими кадрами. В комнате немного
темновато, поэтому светящийся спрайт-экран выглядит очень реалистично,
при этом нет необходимости делать каждый отдельный кадр анимированной
текстурой и помещать её в wad! 8) Учимся делать спрайты Пришло время учиться делать продвинутые спрайты! 4) Для
этого нам понадобяться: для создания текстуры - любой графический
редактор (например Paint Shop Pro, который можно слить с FTP); для
создания спрайта - SpriteGen; для просмотра спрайта - SprView. Итак,
попробуем вместе замутить ориентированный спрайт травки. Для начала нам
необходимо создать рисунок в формате bmp, который станет спрайтом.
Помните о ограничениях: 256 цветов, не больше 256х256, значение кратное
числу 16 (как у обычной текстуры). Если рисунок содержит прозрачные
области - последний цвет RGB в его палитре должен равняться R=0, G=0,
B=255. Что бы избежать глюков с отоображением спрайта, желательно
отступать несколько пикселей от краев рисунка. Вобщем, у меня
получилось так (Рис. 5): Рис. 5 Сохраняем рисунок в папку c:\makesprite. В эту же папку копируем утилиту SpriteGen. Создаём текстовый файл с именем primer.qc. Туда мы занесём специальные команды, которые помогут нашей текстурке стать спрайтом Выглядеть это должно примерно так (Рис. 6): Рис. 6 Сначала
пишем путь к папке с материалами - в нашем случае c:\makesprite(Рис.
6-1). Затем указываем имя спрайта newsprite (Рис. 6-2), тип спрайта -
oriented (Рис. 6-3), параметр отображения текстуры - alphatest (Рис.
6-4), имя рисунка - newsprite.bmp (Рис. 6-5), размеры текстуры - 256 на
64 (Рис. 6-6). Наш primer.qc готов! Сохраняем его в папку
c:\makesprite\. Осталось создать bat-файл и сохранить в ту же папку.
Туда мы вписываем имя нового спрайта (Рис. 7-1) и путь к primer.qc
(Рис. 7-2): Рис. 7 Смело
запускайте bat-файл. Если всё сделано верно, то у нас должен получился
самый настоящий ориентированный спрайт! В вашу карту спрайт вставляется
при помощи entity env_glow. В свойствах енититьки настраиваем: Model (путь к спрайту) - sprites/newsprite.spr Render mode (параметр отображения) - Solid FXAmount (прозрачность) - 255 Важно
указать направление спрайта при помощи angle. Помните - направление
стрелки показывает сторону, в которую спрайт повернёться "задом"! После
компиляции карты у меня получилось вот такая симпатичная травка (Рис.
8): Рис. 8 Теперь давайте поподробнее остановимся на параметрах primer.qc, изменяя которые можно создавать различные типы спрайтов. Типы спрайтов при значении: vp_parallel - параллельный спрайт vp_parallel_upright - фиксированный спрайт oriented - ориентированный спрайт Тип отображения текстуры: normal - обычный режим, 256 цветов alphatest - спрайт с битовой маской, 256 цветов, последний цвет в палитре RGB должен быть (R=0,G=0,B=255) additive - спрайт с битовой маской, 256 цветов, последний цвет в палитре RGB должен быть (R=0,G=0,B=255) indexalpha - черно-белый спрайт, последний цвет в палитре - определяет окраску спрайта. Анимация спрайта: При
создании анимации (например из 5 кадров), ваш primer.qc дожен содержать
информацию о дополнительныч кадрах. Делается это добавлением новых
строчек с именами бмп-файлов: $load newsprite001.bmp $frame 0 0 96 128 $load newsprite002.bmp $frame 0 0 96 128 $load newsprite003.bmp $frame 0 0 96 128 и т.д Если
создание спрайтов при помощи SpriteGen вам показалось слишком сложным,
то можно попробовать ещё одну програмку - под названием SpriteWizard. К
сожалению, она позволяет создвать только параллельные спрайты. Но зато
в работе очень проста и неприхотлива - достаточно всего лишь найти свой
бмп-файл и выбрать тип отображения текстуры! Всё! Спрайт в кармане! Надеюсь этот тутор поможет вам овладеть техникой создания и правильного использования спрайтов! Удачи! ;) P.S. Этот прием я использовал на карте CS_BbICOTKA при создании растительности на газонах.
|