* * * Форумы на Наша-Life THREAD * * * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- THREAD : Создание скайбоксов и установка их на карту [туториал] Started at 17-08-2005 09:10 by [Small_Link] Visit at https://bbs.cs-source.ru/showthread.php?threadid=18515 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 1] Author : [Small_Link] Date : 17-08-2005 09:10 Title : Создание скайбоксов и установка их на карту [туториал] Оригинал туториала + превьюшки скайбоксов хл2, ксс, хл2 бета, квейк2 здесь: [url]http://xash.ru/q2_skybox.rar[/url] Список остальных файлов: [url]http://xash.ru/link/[/url] [B]1. Intro.[/B] В этом туториале я постараюсь объяснить как устроено небо в играх на движке Source и как использовать его на своих картах. Небо - так называемый скайбокс (от англ. 'skybox'- небесная коробка) состоит из шести изображений. Пол, потолок и четыре стены - всё вместе это образует своеобразную коробку, которая окружает уровень и придаёт ему большую реалистичность. Этот метод построения небес на картах широко использовался в большинстве известных игр, таких как Quake 2, Half-life 1-2 и т.д. и продолжает использоваться до сих пор. Создание неба для движка Source, пламенного сердца Half-life 2, практически не отличается от аналогичной операции в отношении Half-life. Различие составляет лишь то, что сейчас текстуры требуют упаковки в формат .vtf и создания индивидуально для каждой файла .vmt, содержащего в своём теле описание некоторых свойств текстуры. [B]2. Создание и компиляция текстур.[/B] Сейчас мы на примере рассмотрим создание скайбокса и установку его на вашу карту в 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 Files\Valve\Steam\SteamApps\ваш_аккаунт\sourcesdk\bin Теперь лёгким движением руки перетаскивайте по очереди каждую текстуру на значок vtex.exe, лежащий в папке bin. В принципе с тем же успехом вы можете создать ярлык для этой проги и перенести его в папку materialsrc, а затем таскать текстуры на него. Заходите в папку material, вашего мода и смотрите, появились ли там шесть файлов с расширением .vtf. Создайте там же папку skybox и скиньте файлы в неё. Теперь осталось для каждого файла создать одноимённый .vmt со следующим содержанием: [CODE] "UnlitGeneric" { "$basetexture" "skybox/имя_текстуры_без_расширения" "$nofog" 1 $ignorez 1 } [/CODE] Получаем: 'nebolf.vmt','nebort.vmt','nebobk.vmt','neboft.vmt','neboup.vmt' и 'nebodn.vmt' [B]3. Установка скайбокса на карте и компиляция.[/B] Запустите Хаммер, настроенный для работы с вашим модом. Создайте новую карту и в ней большую коробку. Нажмите на полученный куб правой кнопкой мыши, выберите пункт '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. 2005 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 2] Author : orcan Date : 17-08-2005 09:32 мурр.....ну что сказать...РЕСПЕКТ! сейчас votes прибавиться.... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 3] Author : Uragan_Lex Date : 19-09-2005 10:34 Дополнительная информация и комментарии по статье (за статью спасибо :) ): Официальный тутор по созданию скайбокса + скрипт для программы terragen: [url]http://developer.valvesoftware.com/wiki/Creating_a_2D_skybox_with_Terragen[/url] Описание команд и форматов VMT-файлов. [url]http://developer.valvesoftware.com/wiki/VTF[/url] - одним из описанных форматов мы и воспользуемся. При конвертировании tga в vmt рекомендую в одноименных текстовых файлах вписать (в каждом файле) помимо $skybox еще кучу вещей: [b]"nomip" ""[/b] - не делать mip-изображения для этой текстуры [b]"nocompress" "1"[/b] - не сжимать картинку (об этом ниже) [b]"BGR888" ""[/b] - формат картинки(можете вписать любой из описанных в вышепреведенном линке - для эксперимента). 24bit на цвет, нет альфаканала (в отличие от DXT5), поддерживает no compres - то что нужно для качественных картинок с градиентами и без альфаканалов. Размер одного и того же файла(и качества) в dxt5 и в bgr888 различаеться в пользу последнего - на четверть или треть меньше. Итак, с параметром [b]"nocompress" "1"[/b] ваш скайбокс будет не отличим по качеству от оригинальной картинки - [url]http://ProjectD2.com/2006/no_compress_1.jpg[/url] А вот если этот параметр пропустить, получим вот такой скайбокс (вне зависимости от выбранного формата изображения - хоть rgb161616 хоть dxt5 хоть bgr888) - [url]http://ProjectD2.com/2006/compressed.jpg[/url] - желательно смотреть на черном фоне, иначе градиенты плохо видно (в игре то их видно прекрасно, т.к. скайбокс растягиваетсья раза в два и все это лезет некрасиво). Сохраните эти файлы на диск и посмотрите на них внимательно - казалосьбы отличаються, но терпимо - но в реале скайбокс с compressed.jpg будет выглядеть вот так: http://ProjectD2.com/2006/de_nature.jpg[/url] - даже при увеличении размера картинок скайбокса до 2048х2048 точек на каждую сторону от этих градиентов на синем не удавалось избавиться. А вот с параметром [b]no compress 1[/b] все выглядело отлично даже при размере 512х512 (и даже 256х256 было лучше, чем с compressed текстурой). Далее - в начале я упомянул программу terragen. С её помощью (освоил азы за день) я сделал себе не плохой скайбокс - [url]http://ProjectD2.com/2006/de_nature001.jpg[/url] - т.е. чистое безоблачное небо, высоко стоящее солнце (68 град), тропическое море :). Кому надо - можете его скачать (уже в формате vtf в размере 512х512 каждая) - [url]http://ProjectD2.com/2006/skybox.rar[/url] - 500 кил, после распаковки - 6 с хвостом метров. Поместите папку skybox в каталог materials вашего мода и небо добавиться в списке текстур хаммера. Название неба - "clearsky01" . Вернемся к terragen - [url]https://bbs.nashalife.ru/showthread.php?s=&threadid=19535[/url] - там среди спискапрог будет и сам терраген, и туториал на русском к нему и примеры(обалдненные к стати!) и лекарство от головной боли. В первом линке (см. самый верх этого поста) можно скачать скрипт для terragen-a - при его запуске он делает 6 картинок всех сторон пейзажа с идеально сочитающимися краями. Пейзаж ессно надо делать руками до запуска скрипта. ЗЫ большое спасибо Fishman-y за консультацию по качеству картинки :). ЗЫЫ Фиш, помнишь я там пробовал сэкономить на нижней картинки скайбокса (её одну я в VMT загонял в сжатом виде) - при попытке выполнить команду buildcubemaps вылетела ошибка что де все текстуры скайбокса должны быть одинакового формата и с одними и теми же ключами упакованы. Халява не прокатила :) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 4] Author : FishMan Date : 22-09-2005 03:37 [quote]ЗЫЫ Фиш, помнишь я там пробовал сэкономить на нижней картинки скайбокса (её одну я в VMT загонял в сжатом виде) - при попытке выполнить команду buildcubemaps вылетела ошибка что де все текстуры скайбокса должны быть одинакового формата и с одними и теми же ключами упакованы. Халява не прокатила [/quote] Мы с тобой это уже обсудили по аське - сорри тему поздно заметил, так ещё бы на форуме ответил. 2 Олл Короче ребята - чтобы сэкономить на нижней текстуре (в случае если её не будет видно в игре) сделайте следующим образом: Создайте файл *SomeSkyName*dn.vmt И сделайте его такого содержания: "UnlitGeneric" { "$basetexture" "skybox/*SomeSkyName*up" "$nofog" 1 //-при необходимости "$ignorez" 1 } Вместо *SomeSkyName* напишите имя своей скай-текстуры. Принцып прост - просто используем вместо нижней текстуру верхнюю, тем самым экономим место. За качественный результат не отвечаю, кубмапы могут выглядеть коряво(т.е. вместо низа и верха на них будут 2 верха, возможно это будет заметно). Если вы хотите сэкономить - это неплохой способ. Потому что текстуры без компрессии весят раза в 4 больше чем с компрессией. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 5] Author : Uragan_Lex Date : 07-10-2005 22:19 Пришлось таки делать текстуру низа в виде файла - иначе при старте карты не происходит автокомпила скайбокса (хотя команда buildcubemaps в игре работает). Т.е. при компиле карты Хаммер проверяет все шесть файлов текстур скайбокса(не материалов!) - и если одного из них не хватает, он ругаеться что не могет сделать дефолтные куб-мапы. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 6] Author : Freeman43 Date : 08-10-2005 04:28 Уф...Теперь надо что бы кто-то всё это скомпоновал в 1 тутор))) Например автор.:) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 7] Author : monolife Date : 04-10-2006 00:28 как всегда, Респектище! :) Хорошо, что эта тема не загнулась -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The messages has been download from Форумы на Наша-Life at https://bbs.cs-source.ru at 26.09.2024 04:34:26