САЙТ В ПРОЦЕССЕ РАЗРАБОТКИ
Главное меню сайта
Делаем сами
настройки игры
качаем общие файлы
качаем для клиента
качаем для сервера
качаем проги и др.
трюки
разное
урок 4.3 создание текстур


 Как сделать свой WAD-файл?
В этой статье мы расскажем, как сделать свой собственный текстурный файл, чтобы использовать его на карте.
Очень часто мапперы создают свои WAD-файлы, в которые включают текстуры из каких-то других игр или свои собственные. Простой пример, когда может пригодиться своя текстура — это создание секретной комнаты (т.н. Easter Eggs) с информацией о карте, об авторе или о людях, помогавших делать карту.
Для создания своего WAD-файла понадобится программа Wally.
Итак, допустим мы хотим разместить на карте фотографию своего города (см. рис. ниже).

Картинка для текстуры должна удовлетворять следующим требованиям:
размеры (высота и ширина) картинки в пикселях должны быть кратны 16
картинка должна быть одного из следующих форматов: BMP (256 цветов), JPG, TGA, PCX, PNG
Оба требования являются обязательными, т.е. необходимо изменить размеры изображения, чтобы они без остатка делились на 16 (например: 256х256, 144х64, 128х64 и т.п.) и сохранить изображение в одном из перечисленных форматов. Помните, что перед сохранением картинки в формате BMP, ее предварительно нужно перевести в 256 цветов, иначе Wally не сможет ее открыть. Чтобы сделать картинку 256-цветной можно в частности в PhotoShop'e в меню «Image/Mode/Indexed Color...» выбрать «Local (Selective)» или «Local Adaptive» (в русской версии: «Изображение/Режим/Индексированный цвет...», «Локально-выборочный»). Затем сохраните изображение в формате BMP, 8-bit.
Если Вы сохраняете картинку в формате JPG, то имеет смысл ставить максимальное качество изображения, чтобы было как можно меньше потерь от сжатия.
Затем запускаем Wally. Создаем новый текстурный файл для Half-Life (см. рис. ниже).

Копируем картинку в буфер обмена (например, из ACDSee или IrfanView) и вставляем в только что созданный файл: Paste (можно нажать Ctrl-E). Сохраняем WAD-файл под каким-нибудь названием.
После того, как WAD-файл создан, его необходимо подключить к редактору. Делается это в меню «Tools/Options...», вкладка «Textures». Теперь Вы можете использовать свои текстуры на карте.
Следует помнить, что все нестандартные текстуры (т.е. те, которые не идут вместе с Half-Life и CS) нужно распространять вместе с картой (в одном архиве), иначе другие люди не смогут запустить Вашу карту. Half-Life при запуске карты проверяет наличие всех необходимых текстурных WAD-файлов. Эту проблему можно решить по-другому: «включив» (записав) WAD-файл или несколько WAD-файлов в саму карту (непосредственно в BSP-файл). Это делается определенными параметрами при компиляции карты.
В принципе не следует включать в BSP-файл карты или в распространяемый WAD-файл текстуры из официальных CS-карт (например: de_dust, de_train), т.к. эти текстуры у всех есть. Однако существует некая вероятность, что эти WAD-файлы могуть быть изменены разработчиками или вовсе удалены и тогда Ваша карта не запустится. Так что все-таки, наверное, лучше включать текстуры от этих карт в свою карту — так надежнее.

Как сделать прозрачную текстуру?
В этой статье мы рассмотрим создание прозрачных текстур (или текстур с маской), которые применяются для создания лестниц, решеток, заборов, деревьев и пр.
Узнать прозрачную текстуру очень просто: она имеет ярко-синий фон (правда, иногда в программе Wally отображается другой фон, но последний цвет в таблице цветов правильный — ярко-синий); в названии такой текстуры в самом начале есть фигурная скобка «{».
Чтобы синие части текстуры в игре стали прозрачными, мы должны использовать для энтити-объекта режим: Render Mode: Solid и FX Amount: 255, это известно из статьи «Параметры отображения энтити-объектов».
На рисунке ниже показана текстура, синие места которой в игре будут прозрачными.

Основные трудности при создании текстур с маской возникают из-за оттенков синего цвета, которые необходимо закрасить чистым синим цветом (RGB: 0—0—255). Рекомендуем закрашивать в PhotoShop не кистью, а карандашом, т.к. он не дает оттенков цвета. Посмотрите на рисунок ниже:

Слева показан пример с большим количеством оттенков синего. В игре такая текстура, скорее всего, не будет прозрачной. Справа показан правильный вариант текстуры, на которой все оттенки синего закрашены чистым синим цветом (RGB: 0—0—255).

Техника создания прозрачной текстуры
Дальше мы приводим несколько хитрый метод создания прозрачной текстуры :) Дело в том, что все текстуры в Half-Life имеют максимум 256 цветов (прозрачные текстуры не исключение). Мы можем в PhotoShop'e посмотреть таблицу цветов, где видно какие цвета используются в картинке. В прозрачных текстурах последний цвет (нижний правый) определяет прозрачный фон и он должен быть чистым синим (RGB: 0—0—255).
Предположим мы хотим создать прозрачную текстуру из такой картинки:
Для начала необходимо карандашом прокрасить все «прозрачные» места синим цветом (RGB: 0—0—255). Затем нужно перевести картинку в индексированный цвет (т.е. 256 цветов) и посмотреть под каким номером идет этот синий цвет.

Выбираем «Local (Selective)».

Далее заходим в «Image\Mode\Color Table...» и смотрим под каким цветом идет у нас синий. Нужно, чтобы он шел последним — нижним правым, если это не так — необходимо поменять палитру.

Как видим, нам немного не повезло, и синий цвет идет в 3-м квадрате. Такая картинка прозрачной не будет, даже если мы выставим правильные параметры отображения для энтити-объекта.

Необходимо поправить палитру. Заменим 3-й цвет (сейчас он синий) на любой другой. А последний квадрат (правый нижний) сделаем синим (RGB: 0—0—255).

В итоге наша палитра будет выглядеть так:

В таком виде мы и сохраняем ПАЛИТРУ, но не картинку (кнопка «Save...»).
ВНИМАНИЕ! Теперь закрываем картинку, не сохраняя ее! На данном этапе нам нужно было лишь сохранить правильную палитру. Ведь когда мы поменяли синий цвет на другой, то и фон нашей картинки изменился на него.
Теперь второй раз открываем картинку и переводим ее в индексированный (256 цветов) цвет. НО НА ЭТОТ РАЗ выбираем палитру «Custom...» и загружаем нашу сохраненную палитру.

После всех этих операций синий цвет будет последним, что обеспечит его прозрачность в игре. Сохраняем картинку как BMP, 8-bit и вставляем в новый документ в программе Wally, чтобы превратить в текстуру.
Помните, что текстурам с маской следует давать названия начинающиеся с фигурной скобки «{». Примеры названий: {ladder1, {fence05, {grate37. Ну, и еще раз повторимся, что частично прозрачным может быть только энтити-объект, но никак не обычный браш. Для энтити-объекта необходимо выставить параметры: Render Mode: Solid, FX Amount: 255.

 Светящиеся текстуры (создание RAD-файла)
Любая текстура в Half-Life может излучать свет. Но для этого она должна быть прописана в RAD-файле (файл текстового типа). Данный файл должен быть «подключен» при компиляции. О создании такого файла и пойдет речь в данной статье.
Зачем нужны светящиеся текстуры?
Как нам кажется, следующая картинка наглядно демонстрирует «зачем»:

Как видно из рисунка, светящаяся текстура делает лампу как бы действительно включенной. А вот если использовать обычный источник света — объект light, то стороны лампы получаются темными.
Есть, кстати, и еще один способ заставить объект светиться. Только при этом он абсолютно не будет излучать свет, а просто будет ярким. Существенным преимуществом данного метода перед светящимися текстурами является гораздо меньшее время компиляции.
Метод: превратите лампу в энтити-объект (func_wall, func_illusionary, возможно, какой-то другой объект) и выставьте параметр Minimum light level (иногда встречается _minlight) в какое-нибудь значение отличное от 0, например, 0.5. Теперь лампа будет обладать минимальной яркостью. Около лампы нужно будет создать источник света light, т.к. сама она свет не излучает.
Замечание: чтобы использовать выше описанный совет, у Вас должна быть новая версия FGD-файла (0.7.7 и выше) и компиляторы ZHLT 2.5.3 и выше.
Возвращаясь к светящимся текстурам, скажем что их можно использовать вместо источников света (light и light_spot), только делать это надо аккуратно и особо не увлекаться, ибо чревато большим (и очень большим) временем компиляции.
Свет, испускаемый такими текстурами, более реалистичен, чем при использовании вышеупомянутых объектов. Недостатком светящихся текстур является ограничение на их использование: на одном объекте не может быть больше 8 различных светящихся текстур, также ОЧЕНЬ нежелательно использовать много таких текстур на карте, т.к. для расчета освещения потребуется больше памяти и соответственно увеличится время компиляции. Кстати, при компиляции карты со светящимися текстурами неправильно отображается количество источников света. Их может быть написано, например, 1520, тогда как реально их создано не более 20 или 25. Виноваты светящиеся текстуры.
RAD-файл представляет из себя обычный текстовый файл, имеющий расширение *.rad. Давайте посмотрим на синтаксис этого файла.
+0~GENERIC65 255 255 255 100
+0~GENERIC86B 60 220 170 7500
EMERGLIGHT 255 200 100 50000
Здесь все просто. Каждая светящаяся текстура описывается в отдельной строке. Сначала идет точное название текстуры, например, EMERGLIGHT, затем в трех последующих числах указывается цвет испускаемого света в формате RGB. Его Вы можете подобрать в любом графическом редакторе, хотя бы в обычном Paint Brush. После 3-х чисел цвета ставится еще одно число, обозначающее яркость света. Яркость определяется не так, как для объектов light. Как видите, она может быть и 100 и 50000 и даже больше.
При определении яркости руководствоваться стоит размерами текстуры. Например, текстура с размерами 16х16 и текстура с размерами 256х160 при одинаковой яркости будут излучать разное количество света. Если необходимо, чтобы небольшая текстура (используемая, например, как лампочка) освещала всю комнату, то нужно выставлять довольно большие значения яркости (десятки тысяч). Для создания простой светящейся рекламы подойдет небольшое значение (100-200).

Как подключить rad-файл при компиляции?
По умолчанию компилятор HLRAD использует информацию о светящихся текстурах из файлов lights.rad и имя_карты.rad. Таким образом, чтобы текстура в игре излучала свет, необходимо создать rad-файл с именем карты (например, карта называется mybest.map, тогда rad-файл необходимо назвать mybest.rad), записать в него названия текстур, подобрать для них цвет света и его яркость и поместить rad-файл в папку к компиляторам. Все дополнительно ничего делать не требуется, т.е. не надо ничего дописывать к компиляторам, они сами найдут этот файл по имени.
Если имя у rad-файла другое, то здесь уже придется указать компилятору HLRAD (а именно он использует rad-файл) название rad-файла. Делается это при помощи параметра -lights. Пишем: -lights имя_файла.rad. Но в любом случае rad-файл должен находится в одной директории с компиляторами.

Звучащие текстуры
В данной статье речь пойдет о том, как заставить текстуры в Counter-Strike звучать, т.е. когда игрок ходит по разным поверхностям, чтобы звуки шагов были разными, то же самое касается стрельбы: звуки попадания в дерево и металл должны различаться. Вот об этом и пойдет речь.
Статья (с некоторыми изменениями) публикуется с разрешения автора — PYaEe, http://www.cstrike.wallst.ru/. Благодарим PYaEe за прекрасную статью!
Прежде всего необходимо сказать — для того, чтобы текстура зазвучала, её имя должно быть прописано в файле materials.txt, который находится в папке «cstrike\sound». Проблема в том, что мы не можем изменять этот файл и распространять его вместе с картой, потому что на другой карте, созданной Васей Пупкиным — свои звучащие текстуры, и он тоже «обновит» materials.txt, а это означает, что Ваши текстуры звучать уже не будут.
Выход есть и он довольно простой. Как мы знаем, движок Half-Life, выбирая материал текстуры, учитывает только первые 12 знаков её названия. А максимальная длина названия текстуры — 15 знаков. Значит, у нас есть 3 знака в запасе. Этого хватит на любую карту — ведь используя, например, эти три знака для чисел, примерно так:
zvukitexturi001
zvukitexturi002
zvukitexturi003
... мы можем получить 999 разных текстур одного типа звучания. А ведь можно использовать ещё и буквы... Так что, этих трех символов нам хватит.
То есть, нам нужно найти в стандартном materials.txt названия текстур, которые составляют 12 или более символов. Оставляем 12 первых, а оставшиеся 3 находятся в нашем распоряжении. Мы облегчим Вам задачу, и скажем как именно нужно называть свои текстуры:
(Звёздочка означает Ваш символ)
Дерево: cstrike_CJ2B***
Металл: cstrike_CE2X***
Плитка: cstrike_FH4W***
Снег: только три варианта: snow; A_snow; znow1 (нет названия стандартной текстуры снега из 12 символов)
Стекло: GLASS_BRIGHT***
Электроника: LAB1_RADSCRN***
Грязь(песок, гравий): cstrike_FT2D***
Вентиляционная труба: Нет стандартных названий в 12 символов — так что используйте либо стандартную, либо называйте свою точно так же, как стандартную.
Жидкость или жидкая грязь: то же самое.
При этом, Вам совершенно не нужно производить никаких манипуляций с materials.txt — ни редактировать, ни распространять.
Для массовых переименований текстур Вам очень пригодится программа просмотра изображений ACDSee. Если Вы уже сделали много текстур, переведите их в BMP (программой Wally), сложите в какую-нибудь папку, потом запустите ACDSee, выберите, например, только деревянные текстуры, нажмите «Rename series» («Переименовать несколько»), в графе «Template» напишите cstrike_CJ2B###, а «Start at» поставьте 000. Запишите исходные и будущие названия текстур и жмите кнопку «OK».
Дальше запускаем Hammer/Worldcraft и активно юзаем «Replace textures»!
Важное замечание:
 текстуры будут звучать только, если они наложены на БРАШИ. Текстуры, наложенные на энтити-объекты (func_wall и пр.) звучать НЕ БУДУТ! Так что помните об этом, создавая, например, ящик с текстурой дерева. Если Вы превратите его в func_wall, то деревянного звука при попадании по ящику не будет... 

Как включить WAD-файл в карту?
В этой статье мы рассмотрим включение своих текстур в карту с использованием официальных компиляторов ZHLT 2.5.3 и их улучшенной версии ZHLT Custom Build (есть некоторые различия).
1. Общий случай (для ZHLT и ZHLT Custom Build)
Итак, у Вас имеется свой WAD-файл с текстурами. Чтобы другие люди могли запустить Вашу карту, необходимо или распространять этот WAD-файл в архиве с картой, или же включить (записать) его непосредственно в саму карту (в BSP-файл).
В общем случае WAD-файлы включаются в карту параметром –wadinclude wad, где wad — имя включаемого WAD-файла без расширения. Этот параметр необходимо вписать к компилятору HLCSG. Допустим на нашей карте мы используем нестандартные текстуры из файла 123.wad и хотим включить его в BSP-файл. Тогда строка запуска компилятора HLCSG в BAT-файле (мы рекомендуем использовать для компиляции BAT-файл) будет выглядеть так:
hlcsg.exe –wadinclude 123 "%mapname%"
Если у нас имеется несколько WAD-файлов, например: 123.wad, 456.wad и 789.wad, то мы должны для каждого WAD-файла написать параметр -wadinclude, т.е. строка запуска HLCSG должна выглядеть так:
hlcsg.exe –wadinclude 123 –wadinclude 456 –wadinclude 789 "%mapname%"
Это все, что необходимо сделать для того, чтобы все нестандартные текстуры были включены в состав BSP-файла карты. Помните, что компиляторы и текстуры должны находится на одном логическом диске (например, на C:\ или на D:\). Такой способ включения WAD-файлов работает как с официальной версией ZHLT, так и с улучшенной версией ZHLT Custom Build.

2. Включение текстур в карту при компиляции утилитами ZHTL Custom Build
Улучшенная версия компиляторов позволяет достаточно гибко управлять WAD-файлами, используемыми при создании карты.
1. Автоматическое определение WAD-файлов (только ZHLT Custom Build)
Эта простая функция дает возможность подключать к редактору любое количество текстурных WAD-файлов, и при этом, только действительно используемые WAD-файлы будут включены в конечный BSP-файл карты.
Чтобы задействовать эту функцию, необходимо в строчку запуска компилятора HLCSG добавить параметр –wadautodetect.
2. Конфигурационный WAD-файл (только ZHLT Custom Build)
Конфигурационный WAD-файл с именем WAD.CFG должен находиться в одной директории с компиляторами. Это очень удобный способ включения нужных текстур в карту.
Используя конфигурационный WAD-файл, мы можем создавать для каждой конкретной карты список из текстурных файлов, которые на ней используются. Списку присваивается имя, дальше записываются пути к WAD-файлам и при запуске компиляции к программе HLCSG.EXE добавляется параметр –wadconfig name, где name — любое имя конфигурации.
Ниже мы приводим синтаксис этого файла:
name
{
c:\111.wad
c:\222.wad
include c:\333.wad
}
где:
name — любое имя конфигурации. Для удобства можно использовать имя карты, для которой предназначена эта конфигурация. Например, если карта называется de_dust7250, то можно написать имя конфигурации de_dust7250, чтобы знать, для какой карты предназначен этот список.
c:\111.wad — полный путь к первому WAD-файлу
c:\222.wad — полный путь ко второму WAD-файлу
....
include c:\333.wad — путь к WAD-файлу, который будет включен (слово include) в карту. Слово include нужно использовать только для нестандартных WAD-файлов. А, например, для стандартных WAD-файлов таких, как: halflife.wad, cstrike.wad и прочих слово include не нужно.
Вы можете использовать неограниченное количество записей в этом файле. Кстати, по количествам записей в последствии можно будет посчитать сколько же попыток создания карт было сделано (не секрет, что не каждая карта доделывается до конца :)
Напомним, что перед компиляцией необходимо добавить к компилятору HLCSG.EXE параметр: –wadconfig name. При этом будут использованы текстуры, записанные в конфигурации, но только текстуры с префиксом include будут включены в BSP-файл.

3. Путь к файлу wad.cfg (только ZHLT Custom Build)
Параметр –wadcfgfile путь позволяет вручную указать путь к файлу wad.cfg. По умолчанию компиляторы ищут этот файл в своей директории и в директории Half-Life. Если wad.cfg находится в какой-то другой директории, то необходимо добавить параметр –wadcfgfile путь в сторку запуска компилятора HLCSG.EXE.

 Как извлечь текстуры из карты?
В этой небольшой статье мы расскажем как можно извлечь текстуры из карты, если они были включены в нее при компиляции.
Довольно часто при компиляции мапперы включают текстуры в состав BSP-файла карты. Это делается при помощи параметра –wadinclude или –wadconfig (если используется конфигурационный WAD-файл и утилиты ZHLT Custom Build). При этом уменьшается общее количество файлов, необходимых для запуска карты. Меньше файлов — проще установить карту. Особенно это касается случаев, когда текстурных файлов несколько. Все эти файлы приходится копировать в папку «Cstrike», а когда нужно будет удалить карту, то вряд ли Вы вспомните, какие текстуры больше не используется ни одной другой картой.
Также включение текстур в карту немного помогает защитить Ваши оригинальные текстуры от нелегального использования. Но действительно лишь «немного»... Все в этом мире воруют друг у друга :) Поэтому нет ничего криминального, если Вы воспользуетесь текстурами уже украденными до Вас (шутка).
Кстати, опознать карту с включенными в нее текстурами довольно просто. Если в архиве с картой нет WAD-файлов, это означает одно из двух: 1) или карта использует только стандартные текстуры (тогда с нее взять нечего); 2) или же текстуры включены в карту.

Извлекаем текстуры
Для извлечения текстур понадобится небольшая консольная программа Textract .
Кладем программу в одну папку с картой, запускаем командную строку (Windows-R или «Пуск/Выпонить...»), находим кнопкой «Обзор» нашу программу.
Дальше пишем, например:
TEXTRACT.EXE  de_dust2.BSP  de_dust2.WAD
На выходе получаем текстурный файл со всеми включенными в карту текстурами. Кстати, возможна ситуация, когда некоторые текстуры запишутся некорректно. Сделать здесь ничего невозможно.

Форма входа
Поиск по сайту
Наш опрос
Оцените наш сайт
Всего ответов: 14
Мини-чат
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
qwertys © 2025
Сделать бесплатный сайт с uCoz