Начнем с того, что понятие "текстуры" в “Source” было заменено на "материалы". Материал состоит из графического файла\файлов (в принципе той же текстуры) формата *.vtf и файла *.vmt, который содержит в себе описание свойств материала, о которых будет сказано ниже. (*.VTF) - что скрывает в себе этот файл. А скрывает он изображение TGA формата сжатое для потребления меньшего кол-ва видеопамяти. Чтобы создать материал для "Source" необходимо подготовить текстуру TGA формата с глубиной цвета 24 или 32bit, в зависимости от назначения будущего материала. Размер TGA файла должен быть обязательно кратным 2, а именно стороны текстуры могут иметь размеры значений: 16,32,64,128,256,512,1024 и т.д. Существуют и промежуточные значения кратные двум. Я перечислил самые "ходовые" из них. (*.VMT) - это ТЕКСТОВЫЙ файл, в котором описаны СВОЙСТВА материала. Звук, издаваемый им при попадании пули, равно как и звуки шагов игрока. Прозрачность. То как материал будет отражать окружающие предметы (cubemap) и в каких областях изображения (envmapmask). Bump mapping (указывается файл карты нормалей [normal map] для текстуры). Переходим непосредственно к теме тутора - созданию материалов. Для работы с TGA нам будет необходим Adobe Photoshop любой версии. Я использовал Photoshop CS (8й). Задача - сделать материал "гравий". Создайте в папке \\sourcesdk_content\cstrike\materialsrc директорию с именем test. Подберите подходящее изображения гравия, и сохраните из Photoshop`a (save as) указав формат .tga и глубину цвета - 24bit в вашу директорию папке \\sourcesdk_content\cstrike\materialsrc\test , назвав его gravy Для конвертирования *.tga ---> *.vtf понадобится VTF плагин для Photoshop. Взять его можно здесь: http://nemesis.thewavelength.net/index.php?p=39 . После установки плагина в меню “save as” появится формат *.VTF. При сохранении для того чтобы оптимизировать качество выбираете из предустановленных настроек какого типа текстуру вы создали. То есть : Compressed Texture - обычная текстура без альфы и не карта нормалей. Просто текса. Compressed Texture With Alpha – эта делается из ТГАшки с альфа каналом для создания деколей или других видов материалов с прозрачными областями. DuDv Map – не пригодится вам если вы читаете этот тутор Generic (Default) – без сжатия. Normal Map - карта нормалей, в простонародье - бамп. Normal Map With Alpha – карта нормалей с альфа каналом. Sky – если вы вдруг решите создать свой скайбокс. Uncompressed Texture – без сжатия Uncompressed Texture With Alpha – без сжатия с альфой. В нашем случае выбор в пользу опции Compressed Texture. Сохраняем текстуру в папку cstrike\materials\test под именем gravy. Теперь чтобы движок принял наш материальчик ему нужно объяснить что мы ему скормим , как оно будет звучать, освещаться и т.п. Для этого создадим VMT файл к материалу. Воспользуемся программой vmtCREATE. Скачать ее можно здесь: http://exgray.cs-mapping.com.ua/ima...l/vmtCREATE.rar Программа ставится копированием содержимого архива в папку sourcesdk\bin Первым запуском прога спросит пути к папкам materialsrc и materials соотв. : укажите свои. Думаю знаете о чем речь. Далее программа предложит сделать соответствующие настройки . Нам нужно выбрать тип материала LightMappedGeneric и свойство поверхности ($surfaceprop) – gravel Теперь материал "гравий" в игре будет соответственно звучать, ну и в зависимости от исходного TGA выглядеть. ВСЕ доступные свойства материалов Вы можете найти во вкладке Surface Prop этой программы.. Следующий шаг. Создадим материал с эффектом BUMP MAPPING. Придется скачать плюшку от nVidia для Photoshop которая позволяет открывать DDS файлы и делать из текстуры NormalMap. После чего в фотошопе в меню Filter появится подменю "nVtools". Возьмем тот gravy.tga что использовался в предыдущем пояснении. Ему же и придадим объем. Откройте gravy.tga в Photoshop и в меню "Filters" выберем"nVTools" - "Normal map filter". В этом окне ВСЕ настройки за исключением полей "Alpha field" и "3D View options" отвечают за шкалу "объема" текстуры и регулируют высоту выпуклостей. С этим надо экспериментировать. Но наша задача создать, значит двигаемся далее. В поле "Alternate Conversions" отметьте точкой значение "Max RGB" и нажмите "Ok". Наш гравий преобразится и станет фиолетовых оттенков с уже видимым объемом. Сохраните результат в папку cstrike\materials\test с именем gravy_normal. Открывайте в блокноте GRAVY.VMT и добавьте строку "$bumpmap" "proba/gravy_bump". Получим: "LightmappedGeneric" { "$baseTexture" "proba/gravy" "$surfaceprop" "gravel" "$bumpmap" "proba/gravy_bump" } Сохраните. Готово! теперь запустив карту с этим материалом увидим объем на текстуре. Эффект CUBEMAP (отражение мира) Сделайте материал типа "стекло" (имеется ввиду изображение окна или чего то стеклянного) и откройте его файл *.vmt . Бампмэп ему не нужен. Добавьте строку: "$envmap" "env_cubemap" Для того чтобы на карте корректно в стекле отражалось окружение, нужно поставить неподалеку ентити "env_cubemap" и после компиляции в консоли игры набрать "buildcubemaps". Эта команда служит для просчета отражений в той ли иной части карты (считает столько cubemaps , сколько ентитей env_cubmap есть на карте). Информация о cubmap после этой команды записывается в BSP карты. Материалы с эффектом прозрачности и альфа-канал в TGA. Открываем в Рhotoshop текстуру, на которой создадим эффект прозрачности. Здесь нам поможет альфа-канал. Текстура: [window] Выделяем стекла - это будут прозрачные области. Теперь как показано на рисунке: Переходим к вкладке "Channels" и жмем на кнопку создания альфы: при выделении которое вы сделали на изображении нажмите Del, после чего увидите следующее: . Сохраните это как cstrike\materials\test\window.vtf. Откройте его .VMT файл и приведите в такой вид: "LightmappedGeneric" { "$baseTexture" "proba/okno" "$translucent" 1 } Если все сделали нормально, то теперь уже в HAMMERe увидите, что материал прозрачен там, где и было задумано! Светящиеся материалы (SELFILLUM) Принцип их создания и использования абсолютно такой же, как и для HL1. Но все же вкратце расскажу. Допустим у нас в cstrike\materials\test лежит материал svet.vtf Создаете материал. в VMT добавляете строку "$selfillum" 1. Будет что-то типа: "LightmappedGeneric" { "$baseTexture" "test/svet" "$selfillum" 1 } Открывайте файл lights.rad , который лежит в папке cstrike, и пишите там путь и параметры своей текстуры... На практике же просто добавляете строчку текста: test/svet 255 255 255 40000 . С путем вопросов нет. А по цифрам слева - направо: интенсивность красного (255), интенсивность зеленого (255), интенсивность синего (255) оттенков, сила света (40000) - Это не максимум. Таким образом, варьируя значения интенсивности цветов, Вы можете задать материалу свет любого тона и насыщенности. С такими значениями (255 255 255 40000) свет белый, очень яркий. ------- P.S.: Теперь, когда Вы умеете создавать материалы - создание спрайтов, текстур для моделей, в общем ГРАФИКИ движка Source уже не будет для Вас проблемой потому что все они так же представлены файлами *.vmt и *.vtf и базы TGA. Поизучайте оригинальные *.vmt файлы Half – Life 2, CSS и Вы увидите какие графические чудеса можно творить на Source.
Источник: http://cs-mapping.com.ua/forum/showthread.php?t=2292 |