Робота з текстурами до гри - стаття на сайті hlra

Статті по роботі з текстурами під движком Gold Source (гри Half-Life 1 і Quake 1 і 2)

Робота з текстурами до гри

А тепер ось що пораджу при роботі з текстурами, товариші розробники (і не тільки проекту Half-Life Red Alert mod, а й багатьох інших), особливо коли проекти стають великими, а текстури численними:

1а) Створити збірку текстур для локалізації, щоб було простіше випускати патчі для гравців з іншими мовами.
Всі текстури, що вимагають перекладу на інші мови на зразок написів в секретки "Map by Roofman", особливо які необхідні для кращого розуміння сюжету гравцями були перенесені в файл localization.wad

Поки такий розклад з файлами працює оптимально. З інших нетекстурних wad-ників залишилися:
cached.wad - conback.bmp фон в консолі орісовивается 3d движком і повинен бути завантажений як текстура, а також loading.bmp замість Фрімена зі словом лоадінг
gfx.wad - картинка "Loading" і консолі backtile.bmp, conchars.bmp, creditsfont.bmp, lambda.bmp, lambda32.bmp, lambda64.bmp і paused.bmp
pldecal.wad - аерозольні емблемки
У нас зроблена пара варіантів емблемки бетатестером для pldecal.wad, якій ви можете відзначати;) вимагають виправлення ділянки: напівпрозорий помаранчевий знак

pldecal.wad і - pldecal.wad з кольоровим знаком.


До речі, як буде по-татарськи "зроби краще!" ?

3) В Half-Life останній колірної індекс в 256-ти кольоровій палітрі використовується для позначення прозорості в точках текстури, зафарбованих цим кольором в режимі відображення "Solid" (у брашевих ентіті в параметрі Render Mode вибирається значення Solid. А в параметрі Fx Amount = 255 задається максимальний ступінь непрозорості іншого зображення на текстурі). Іноді потрібно створити ентітей з Брашей, забарвлених в кілька текстур, одна-дві з яких вимагають такої прозорості, а інші повинні залишитися суцільними текстурами, тому що на них не повинно бути дірок, коротше, виглядати як звичайні текстури.
Тому навіть якщо ваші текстури не вимагають прозорості, заздалегідь робіть текстури 255-й кольоровими, а не 256-ти кольоровими, залишаючи останній колір в резерві, щоб складні кострукції було швидше переводити в режим відображення Solid. Заодно уникнете випадкових помилок на кшталт ящиків в незрозумілих дірках. Спотикався я про такі в деме. Тоді випадково виставили режим Solid, а якби текстура була 255-ти кольоровий, то можна було б не виправляти. Так, звичайно текстури з прозорістю мають приставку:

, але всі інші текстури так само можуть бути використані в режимі з прозорістю.
До речі, ніхто не пробував ефекти в цьому режимі зі значеннями Fx Amount в середині діапазону між 0 і 255? Можна зробити кольорові скла на екранчика приладів, буде реалістичніше.

255-ти кольорові палітри замість 256 кольорових - це зручно, але зрідка багатобарвним структурам потрібно більше квітів при перекладі в 8-бітову палітру, і я все-таки роблю палітру на всі 256 квітів, і то мало допомагає. Можна спробувати дифузне розмивання при зменшенні кількості квітів палітри.

Вікна на великих будівлях часто для економії ресурсів роблять плоскою текстурою, причому Half-Life 2 тут теж не оригінальна. А ми підемо іншим шляхом і зробимо вікна об'ємними за допомогою ефекту альфа-каналу:

Робота з текстурами до гри - стаття на сайті hlra

Робота з текстурами до гри - стаття на сайті hlra

Робота з текстурами до гри - стаття на сайті hlra
Робота з текстурами до гри - стаття на сайті hlra

Завантажити повний 7z-архів з 6 текстур можна за цим посиланням. В останній колір палітри пофарбований не традиційним синім, а світло-сіро-коричневим, тому що край прозорих областей при відображенні текстур з альфа-каналом в грі забарвлюється тонкої каймою кольору для альфа-каналу. Тут по периметру вікна синя облямівка заважатиме, а сіро-коричневий - навпаки губитися поруч з цегляною кладкою.

4) 3 і 4 Ідекс палітри у текстури рідини в Half-Life використовуються для позначення кольору каламуті і ступеня каламутності. Як відомо, текстура рідини завжди має приставку. Між іншим у всіх інших файлах, крім текстур, приставка до файлу. в проекті Red Alert означає, що файл застарів або для чогось переведений в резерв, а замість нього вже є робочий файл без знаку оклику.
А в 4-му індексі кольору текстури рідини за ступінь каламутності відповідає червона складова (менше значення - слабше муть).

Робота з текстурами до гри - стаття на сайті hlra
Для чого зарезервовані зелена і синя складові - залишається тільки здогадуватися, але думаю, що зелена - для коефіцієнта заломлення, а синя - для коефіцієнта розсіювання (або светорассеяния, через якого зменшується різкість і з'являються ореоли).

Ще в Gimp пригождается для імітації екранчиків з рядками ефект зафарбовування кожної парної рядки (можна непарної)
В меню фільтри-> Іскаженія-> Очистити кожну другий рядок


6) У проекті задіяні ще три спеціальні текстури 000grid, aaabiggrid і aaametr.

Робота з текстурами до гри - стаття на сайті hlra

aaaBiggid із зображенням квадрата 512x512 для вимірювання протяжних відстаней на карті.

Робота з текстурами до гри - стаття на сайті hlra

aaametr із зображенням квадратів 40x40 використовується для вимірювання в метрах. Вважається, що метру відповідають 40 умовних одиниць відстані в ігровому просторі aka unit-ів. Точніше 1 у.о. - це практично дюйм, але для зручності приймемо, що 40 у.о. = 1 м. Накладаючи текстуру 1: 1, можна вимірювати відстані.

Робота з текстурами до гри - стаття на сайті hlra

Ці 3 текстури можна завантажити в файлі zhlt2.wad [19 кб в zip].

Є відома текстура aaatrigger із зображенням "емо-лямбда", якій для зручності затекстурівают поверхні невидимих ​​брашевих об'єктів - в першу чергу об'ємних тригерів і по-друге непрохідних рухаються об'єктів, нагадую, невидимих, хоча якщо знайдете до чого ще прилаштувати. Але буває так, що багатогранники тригерів скупчені в одному місці, і тоді для розрізнення ми накладаємо на частину тригерів ще більш невигадливу текстуру red. Цією ж текстурою фарбуються тригери, на які слід звертати підвищену увагу.

Під час створення першої демки традицію використання aaatrigger для тригерів не підтримували, використовувалися текстури які траплялося. Один раз Руф пофарбував кілька тригерів на першій карті мода світиться текстурою

spotblue. і коли після кількох змін карти я не звернув на це увагу і скомпілював, то отримав загадкове освітлення від невидимого синього об'єкта:

Робота з текстурами до гри - стаття на сайті hlra
Робота з текстурами до гри - стаття на сайті hlra
Незвичайна помилка, але десь можна задіяти і таке інше.

Тепер про порядок в структурах: коли ваш проект завершений (особливо мод на багато карт, з однією картою можна при компіляції вбудувати текстури в файл bsp), потрібно якось видалити незадействвованние текстури, яких буває дуже багато. При випуску першої демоверсії HLRA для того, щоб підчистити wad-файли, Дзугару і Руфмену довелося виписати назви текстур в зошит, і довго звіряти, які з текстур залишаються.

Тепер для bsp формату карт Half-Life і збірників текстур типу wad3 тов. XaeroX Створено утиліту WadClean. яка видаляє незадіяні в bsp картах текстури з wad. Для цього потрібно скопіювати wad-файли і bsp карти вашого проекту в одну папку з утилітою, а в командному рядку задати назви ваших карт через пробіл:

wadclean [-d] karta1.bsp [karta2.bsp. ]

Після її роботи створяться wad-и, які стануть містити тільки задіяні в картах текстури, а оригінали wad-файлів змінять розширення c .wad на .bak (скорочено від back, що в перекладі самі знаєте, що означає). Правда є один виняток - файл decals.wad утиліта не зачепить. Необов'язковий параметр -d створює текстовий файл зі списком віддалених текстур. Завантажити WadClean можна в розділі Інструменти.

Подтекстури або MIP-текстури - це додаткові до вихідної текстурі текстури, зменшені в кратне двом число раз (тепер здогадуєтеся, чому розмір текстури кратний 16?). Вони використовуються на далеких відстанях, коли знижується деталізація, щоб зменшити обсяг пам'яті, який використовується для текстур. У движку GoldSource для кожної текстури використовуються три подтекстури в масштабі 1 до 2, 1 до 4 і 1 до 8. MIP скорочено від крилатого латинського виразу "multum in parvo", яке означає "коротко, але змістовно", або якщо зовсім буквально, нехай і не літературно, то "багато в малому".

Різкість підвищують для більшої краси, так як у багатьох випадках зменшене виглядати починає краще. Коли йде робота з текстурою, в якій використовуються області прозорості (той самий альфа-канал на останньому індексі палітри), згладжування як правило заважає, і тому його відключають:

зменшено по ширині і по висоті

Схожі статті