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 |