Все про створення спрайтів

Що таке спрайт і з чим їх їдять?

Слово "sprite", дослівно перекладається як "двомірне зображення на екрані". Спрайт - двомірні файли анімації. Можуть бути як невеликий мульт з декількох кадрів, так і один статичний кадр.
В HL спрайт іспользуютс на кожному кроці - ви просто не могли їх не помітити. Це анімації вибухів, вогню, диму, крапельки води (дощ, сніг), різні спалахи, так звані "оптичні" ефекти (сліпучі ореоли ламп) і т.д. Находяться в папці x: / half-life / cstrike / sprites. Мають розширення * .spr.


Гідності й недоліки


Для професійно маппера спрайт незамінні. Вони жодним чином не впливають на r_speeds, що не може не радувати! 8) Мені відомо три види спрайтів, які мають свої переваги і недоліки.


1) Паралельні спрайт. Створюють ілюзію тривимірності об'єкта, за рахунок того, що вони завжди паралельні по відношенню до гравця. Приклад - на карті cs_nnd, спрайтом виконаний білліярдний куля, який здається гравцеві повністю тривимірним; на de_crater_club, паралельними спрайтами виконані кеглі і кулі для боулінгу (Рис. 1).

Все про створення спрайтів


2) Орієнтовані спрайт. Це справжнє відкриття для маппера! Дозволяють орієнтувати спрайт в будь-яку сторону. Виглядає як текстура, накладена на звичайний браш. Дуже зручно використовувати орієнтовані спрайт замість звичайних entity з текстурами, які містять прозорі області (бітову маску). До того ж, використання таких спрайтів допоможе вам технологічно знизити r_speeds! Дивимося Рис. 2.

Все про створення спрайтів


На карті cs_costabrava за допомогою орієнтованих спрайтів створена листя дерев. Виглядає чертовски реалістично і найголовніше - прийом економить дорогоцінні w_poly!


3) Фіксовані спрайт. Являють собою паралельні спрайт, зафіксовані по вертикалі. Такий спрайт буде завжди паралельний до гравця, за винятком випадків, коли гравець дивиться на нього зверху чи знизу. Приклад - трава на мапі cs_BbICOTKA (Рис. 3).

Все про створення спрайтів

На жаль, спрайт так само мають і свої недоліки Головний недолік - обмежена кількість використовуваних спрайтів. Справа в тому, що при завантаженні спрайтів, моделей і entity, для них резервується обмежене місце в пам'яті. Тому, кількість спрайтів, використаних вами, бажано не повинно перевищувати 200 штук. Інакше ваша карта просто не завантажиться, вже повірте мені Ех! Прощай мрія про створення величезного спрайтові конопляного поля. )


Колірна палітра спрайту - всього 256 квітів. Обмеження на розмір 256х256 пікселів.
Ще один недолік - на спрайт ніяким чином не впливають тіні, що відкидаються брашами, а також джерела світла (тобто. При компіляції спрайт не обробляється hlrad-му). Якщо спрайт буде перебувати в повній темряві - він буде виглядати світиться. Приклад - кеглі і кулі для боулінгу на de_crater_club (Рис. 1). Погодьтеся, виглядає дивно.
Але все ж існують випадки, коли цей недолік можна звернути гідністю.

Все про створення спрайтів


Мультфільм, який йде по телевізору на мапі cs_bikini (Рис. 4) виконаний орієнтованим спрайтом з декількома кадрами. У кімнаті трохи темнувато, тому що світиться спрайт-екран виглядає дуже реалістично, при цьому немає необхідності робити кожен окремий кадр анимированной текстурою і поміщати її в wad! 8)


Вчимося робити спрайт


Прийшов час вчитися робити просунуті спрайт!


Отже, спробуємо разом замутити орієнтований спрайт трави. Для початку нам необхідно створити малюнок у форматі bmp, який стане спрайтом. Пам'ятайте про обмеження: 256 кольорів, що не більше 256х256, значення кратне числу 16 (як у звичайній текстури). Якщо малюнок містить прозорі області - останній колір RGB в його палітрі повинен дорівнювати R = 0, G = 0, B = 255. Що б уникнути глюків з отоображеніем спрайту, бажано відступати кілька пікселів від країв малюнка. Вобщем, у мене вийшло так (Рис. 5):


Зберігаємо малюнок в папку c: # 92; makesprite. В цю ж папку копіюємо утиліту SpriteGen.
Створюємо текстовий файл з ім'ям primer.qc. Туди ми занесемо спеціальні команди, які допоможуть нашій текстурки стати спрайтом Виглядати це повинно приблизно так (Рис. 6):

Спочатку пишемо шлях до папки з матеріалами - в нашому випадку c: # 92; makesprite (Рис. 6-1). Потім вказуємо ім'я спрайту newsprite (Рис. 6-2), тип спрайту - oriented (Рис. 6-3), параметр відображення текстури - alphatest (Рис. 6-4), ім'я малюнка - newsprite.bmp (Рис. 6-5 ), розміри текстури - 256 на 64 (Рис. 6-6). Наш primer.qc готовий! Зберігаємо його в папку c: # 92; makesprite # 92 ;. Залишилося створити bat-файл і зберегти в ту ж папку. Туди ми вписуємо ім'я нового спрайту (Рис. 7-1) і шлях до primer.qc (Рис. 7-2):


Сміливо запускайте bat-файл. Якщо все зроблено правильно, то у нас повинен вийшов справжнісінький орієнтований спрайт! У вашу карту спрайт вставляється за допомогою entity env_glow.
У властивостях енітітькі налаштовуємо:


Model (шлях до спрайту) - sprites / newsprite.spr
Render mode (параметр відображення) - Solid
FXAmount (прозорість) - 255


Важливо вказати напрямок спрайту за допомогою angle. Пам'ятайте - напрямок стрілки показує сторону, в яку спрайт поверне "задом"! Після компіляції карти у мене вийшло ось така симпатична травичка (Рис. 8):

Все про створення спрайтів


Типи спрайтів при значенні:
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. На жаль, вона дозволяє создвать тільки паралельні спрайт. Але зате в роботі дуже проста і невибаглива - досить усього лише знайти свій БМП-файл і вибрати тип відображення текстури! Усе! Спрайт в кишені!


Сподіваюся цей тутор допоможе вам опанувати технікою створення і правильного використання спрайтів! Успіхів! ;)