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, придайте им разрешение 512x512 и положите в папку 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 FilesValveSteamSteamAppsваш_аккаунтsourcesdkbin
Теперь лёгким движением руки перетаскивайте по очереди каждую текстуру на значок vtex.exe, лежащий в папке bin.
В принципе с тем же успехом вы можете создать ярлык для этой проги и
перенести его в папку materialsrc, а затем таскать текстуры на него.
Заходите в папку material, вашего мода и смотрите, появились ли там
шесть файлов с расширением .vtf. Создайте там же папку skybox и скиньте
файлы в неё.
Теперь осталось для каждого файла создать одноимённый .vmt со следующим содержанием:
Получаем: '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 и компилируйте карту. Если
вместо неба увидите чёрно-фиолетовую текстуру, раскраски а-ля
'шахматная доска для эпилептиков' - то это означает что вы его
неправильно скомпилировали.