Детали и материалы

В этом туториале я расскажу вам все о деталях в материалах.

Содержание

1 Что это такое
2 Как этоработает
3 Применение в КСС
4 Внутренние детали
5 Настройки
6 Свои детали

Что это такое

Материалы, кроме информации о смешивании (blending), могут еще содержать еще и информацию о моделях и спрайтах на ней. Для примера посмотрите на эту траву в ХЛ2:

herbes_HL2.jpg

Как это работает

В папке мода (cstrike, hl2) должен содержаться файл detail.vbsp. Он нужен только для компилятора и не нуждается во включении в архив с картой или вшивани в BSP. После компиляции, доведенной до конца, детали сами появятся на вашей карте. Каждый абзац в этом файле обращается к именам, указанным в vmt-файле. В ХЛ2 этот файл очень полный и содержит детали на все случаи жизни, а в КСС к сожалению содержит всего лишь два пункта: для Prodigy и Compound:(


Применение в КСС

К сожалению, в то время, как в ХЛ2 легко использовать детали и создавать классную растительность, в КСС те же самые текстуры мало чего позволяют, так как их почти нет=(. Мы попробуем создать пример, используя blendrockgrass00a (материал ХЛ2). Сначала создадим браш и покроем его нашей текстурой и...???... ничего не происходит!!! Почему же? Давайте заглянем внутрь vmt-файла(кто не знает, нужно нажать на Open Source в окошке с каталогом тестур):

"WorldVertexTransition"
{
"$basetexture" "nature/rockfloor005a"
"$basetexture2" "nature/dirtfloor006a"
"%tooltexture" "nature/blendrockgrass004a_tooltexture"
"$basetexturetransform" "center .5 .5 scale 1 1 rotate 0 translate 0 0"
"$basetexturetransform2" "center .5 .5 scale 1 1 rotate 10 translate 0 0"
"%detailtype" "coastline_redgrass01"
"$surfaceprop" "dirt"
"%keywords" "coastline"
"$bumpmap" "nature/rockfloor005a_normal"
}

Нас интересует следующая строка:

"%detailtype" "coastline_redgrass01"

Материал буде использовать пункт coastline_redgrass01 в качестве свойств деталей для нашего материала. Ну что, теперь пришла пора заглянуть в detail.vbsp, лежащий в half-life 2\hl2, и посмотреть в нем пункт coastline_redgrass01:

"coastline_redgrass01"
//reduced size by 0.75(размер уменьшен до 0.75)
{
"density" "600.0"
Group1
{
"alpha" "1"
Model1
{
"sprite" "288 0 128 128 512"
"spritesize" "0.5 0.0 19 25"
"spriterandomscale" "0.2"
"amount" "0.2"
"detailOrientation" "2"
}
Model2
{
"sprite" "0 0 128 128 512"
"spritesize" "0.5 0.0 23 30"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
Model3
{
"sprite" "144 0 128 128 512"
"spritesize" "0.5 0.0 15 15"
"spriterandomscale" "0.2"
"amount" "0.15"
"detailOrientation" "2"
}
Model4
{
"sprite" "144 144 128 128 512"
"spritesize" "0.5 0.0 18 21"
"spriterandomscale" "0.2"
"amount" "0.2"
"detailOrientation" "2"
}
//shrub(куст)
Model5
{
"sprite" "144 288 128 128 512"
"spritesize" "0.5 0.0 38 38"
"spriterandomscale" "0.2"
"amount" "0.2"
"detailOrientation" "2"
}
Model6
{
"sprite" "0 288 128 128 512"
"spritesize" "0.5 0.0 23 23"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
Model7
{
"sprite" "288 288 128 128 512"
"spritesize" "0.5 0.0 42 42"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
}
Group2
{
"alpha" "0.0"
}
}

И вы скажете мне: "Них%% как тут все запутано[beep]!!!" Нееет... тут все очень легко: просто скопируйте все это безобразие в detail.vbsp, лежащий в папке cstrike, и, о чудо! моя трава выросла!!!:) А я не сыпал туда никаких удобрений, чесслово;)

Внутренние детали

Материал, используемый для создания деталей в ХЛ2 и КСС - это detailsprites.vtf, который находится в materialsource.gcf в папке hl2/materials/Detail. А вот и он:

detailsprites.jpg

Мы видим 9 спрайтов, каждое размером 128x128 пикселей (это очень важно).

Настройки

Это может показаться сложным, но без этого никуда... Ниже приведены параметры, которые я применил к карте КСС:

"coastline_redgrass01"
{
"density" "300.0"
Group1
{
"alpha" "1"
Model1
{
"sprite" "288 288 128 128 512"
"spritesize" "0.5 0.0 15 15"
"spriterandomscale" "0.2"
"amount" "0.4"
"detailOrientation" "2"
}
Model2
{
"sprite" "144 288 128 128 512"
"spritesize" "0.5 0.0 18 21"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
}
Group2
{
"alpha" "0.0"
}
}

В итоге наш спрайт будет выглядеть вот так:

detailspritesPerso.jpg

Также в качестве деталей можно использовать модели. Я думаю не стоит говорить, что они будут расходовать больше ресурсов(хотя я это уже только что сказал;)). На Prodigy это сделано так:

"model" "models/props/de_prodigy/prodgrassa.mdl"

Свои детали

Конечно же, за этим последуют возгласы: "Вау, какая фича, но я хочу сделать собственную травку/камешки/еще-че-нить!" Короче, по правде говоря, у меня не было времени протестировать этот способ, так что это только теория, но надеюсь, она вам поможет:)

Создайте текстуру по такому же шаблону, что и detailsprites.vtf и замените ей оригинальный файл в папке materials/Detail. Все должно работать, правда, я сомневаюсь, что игрокам это понравится:((прим. переводчика можно попробовать также не стирать ничего, а просто добавить новых спрайтов, увеличив размер самой текстуры)

Также можно попробовать вшить свои детали в BSP с помощью BSPZip. При использовании этого метода ваши детали будут загружаться в память вместе с картой и тогда детали на других картах останутся прежними.

Автор: Dawa

Перевод AndrewDragon`а
Приятного вам маппинга:)

Взято с "http://www.hl2world.com/wiki/index.php/Details_on_materials_(like_grass)"
Источник: CS-Mapping.com.ua

CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0044 ]