Создание скайбоксов
1. Intro.
В этом туториале я постараюсь объяснить как устроено небо в играх на движке Source и как использовать его на своих картах.
Небо — так называемый скайбокс (от англ. 'skybox'- небесная коробка) состоит из шести изображений. Пол, потолок и четыре стены — всё вместе это образует своеобразную коробку, которая окружает уровень и придаёт ему большую реалистичность. Этот метод построения небес на картах широко использовался в большинстве известных игр, таких как Quake 2, Half-life 1−2 и т.д. и продолжает использоваться до сих пор.

Создание неба для движка Source, пламенного сердца Half-life 2, практически не отличается от аналогичной операции в отношении Half-life. Различие составляет лишь то, что сейчас текстуры требуют упаковки в формат .vtf и создания индивидуально для каждой файла .vmt, содержащего в своём теле описание некоторых свойств текстуры.

2. Создание и компиляция текстур.

Сейчас мы на примере рассмотрим создание скайбокса и установку его на вашу карту в Half-life 2. Для начала нам нужны шесть изображений неба.
Нарисовать их можно и самому в Photoshop, главное чтобы четыре боковых изображения могли быть соединены в одно непрерывное изображение (xxxlt, xxxft, xxxrt, xxxbk), а две оставшиеся представляли собой верх и низ скайбокса (xxxup, xxxdn) и могли состыковываться с любой боковой текстурой.
Текстуры должны быть представлены в формате .tga (targa), глубиной цвета 16, 24 или 32 бита. Размеры должны быть эквивалентны числу 2: 512×512 пикселей — оптимальное разрешение.

Идём дальше. Конвертируйте текстуры в .tga, придайте им разрешение 512×512 и положите в папку materialsrc вашего мода.
Теперь придайте текстурам имена, подходящие для компиляции скайбокса:
К примеру ваш скайбокс будет называться nebo. Тогда текстура, на которой изображён низ скайбокса получает имя 'nebodn.tga'. 'dn' - означает 'down', что в переводе с английского — 'низ'. По аналогии, верх скайбокса 'neboup.tga' (up — верх), а боковые стороны 'nebolf.tga','nebort.tga','neboft.tga' и 'nebobk.tga'. Left, right, front и back соответственно.

Каждая текстура при компиляции использует текстовый документ, имеющий имя текстуры и содержащий команды для компилятора. В принципе, если его нет, компилятор создаст пустой файл, но нам необходимо указать в нём параметр $skybox, тогда при игре на небе не будет 'швов' Создайте шесть текстовых документов и назовите их также как и текстуры, но расширение оставьте .txt. В каждом из них поместите вышеуказанный параметр $skybox. Всё готово для компиляции.

Запустите Steam и откройте новое окно, в котором прописан путь до папки bin, вашего SDK. C:\Program Files\Valve\Steam\SteamApps\ваш_аккаунт\sourcesdk\bin Теперь лёгким движением руки перетаскивайте по очереди каждую текстуру на значок vtex.exe, лежащий в папке bin.
В принципе с тем же успехом вы можете создать ярлык для этой проги и перенести его в папку materialsrc, а затем таскать текстуры на него.

Заходите в папку material, вашего мода и смотрите, появились ли там шесть файлов с расширением .vtf. Создайте там же папку skybox и скиньте файлы в неё.

Теперь осталось для каждого файла создать одноимённый .vmt со следующим содержанием:
«UnlitGeneric»
{
«$basetexture» «skybox/имя_текстуры_без_расширения»
«$nofog» 1
$ignorez 1
}
Получаем: 'nebolf.vmt','nebort.vmt','nebobk.vmt','neboft.vmt','neboup.vmt' и 'nebodn.vmt'

3. Установка скайбокса на карте и компиляция.

Запустите Хаммер, настроенный для работы с вашим модом. Создайте новую карту и в ней большую коробку. Нажмите на полученный куб правой кнопкой мыши, выберите пункт 'hollow' и нажмите enter. Внутри куба, который теперь стал пустотелым, создайте площадку, киньте на неё info_player_start, light_environment и наконец покрасьте куб в текстуру скайбокса.
Для этого откройте браузер текстур и наберите в строке поиска tools/. Видите голубую текстуру с именем tools/toolsskybox? Выбирайте её, смело щёлкая по изображению левой кнопкой мыши. Закройте панель текстур. Теперь выделите куб, которому предназначено быть скайбоксом и нажмите на значок apply current texture, чтобы куб окрасился в выбранную текстуру.
Последний штрих: в свойствах карты надо указать используемый скайбокс, по умолчанию стоит sky_wasteland02. Для этого заходим в меню map → map properties…, выбираем строку SkyBox Texture Name и вписываем туда своё небо. Точнее то самое ключевое слово, которое присутствует в именах всех шести текстур — nebo…
Ес-сно без расширения.

Вроде ничего не забыл. Ладно, жмите уже F9 и компилируйте карту. Если вместо неба увидите чёрно-фиолетовую текстуру, раскраски а-ля 'шахматная доска для эпилептиков' - то это означает что вы его неправильно скомпилировали.
Автор: Small Link.
19 ноября 2005, 11:11