Создание скайбоксов
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 со следующим содержанием: "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 и компилируйте карту. Если вместо неба
увидите чёрно-фиолетовую текстуру, раскраски а-ля 'шахматная доска для
эпилептиков' - то это означает что вы его неправильно скомпилировали.
Источник: http://source-inside.ru/index.php?id=137 |