Четверг, 26.12.2024, 13:13

logo

Пользовательский поиск

Меню сайта
Категории раздела
Разное [13]
Tutorials
Создание моделей [2]
Создание карт [26]
Кодинг [24]
Форма входа
Наш сервер CS 1.6
Поиск
Наш опрос
Ваш телефон
Всего ответов: 183
Друзья сайта


Главная » Статьи » HL Source Development » Создание карт


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

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

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

Содержание

Что это такое

Материалы, кроме информации о смешивании (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"
}
}
  • density 300.0: плотность(кучность) травы. Чем больше значение, тем больше будет на вашей земле травы. Заметьте, я поставил значение, вдвое меньшее, чем в ХЛ2, так как это все-таки мультиплеер+чтобы не тормозило на слабых компах. Значение будет одинаково для всех спрайтов этого материала.
  • sprite 288 288 128 128 512: здесь написаны координаты нужного нам спрайта: 288, 288 - координаты точки A, 128, 128 - координаты точки  B относительно координат точки A, 512 - общий размер материала.

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

detailspritesPerso.jpg

  • spritesize 0.5 0.0 15 15: тут все ясно, можете сами поиграться с размерами.
  • spriterandomscale 0.2 величина рандомности(беспорядочности, случайности) расположения спрайтов.
  • detailOrientation 2: ориентация(естесственно на карте, а не половая:)), используются значения 1 и 2.

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

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

Свои детали

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

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

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

Автор: Dawa

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

Взято с "www.hl2world.com"
Категория: Создание карт | Добавил: SuperStart (18.09.2010)
Просмотров: 4296 | Рейтинг: 0.0/0 |



Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright www.akksimo.net © 2024