Detail .vbsp файлы

Помогаем новичкам в создании своего мира
Ответить
Сообщение
Автор
Аватара пользователя
Crash'n'Burn
Маппер
Маппер
Сообщения: 238
Зарегистрирован: 24.03.2007
Благодарил (а): 1 раз
Поблагодарили: 2 раза
Контактная информация:

#1 Сообщение 14.02.2010, 13:30

Для начала нам нужна blend-текстура травы.
В VMT текстуры травы нужно приписать строчку

Код: Выделить всё

"%detailtype" "название_которое_будет_в_vbsp"
Затем создать новый vbsp или изменить уже существующий
Пример detail_sawmill.vbps

Код: Выделить всё

detail
{
tf_granary_grass
	{
		"density" "3000.0"

		Group1
		{
	
			"alpha" "1.0"
		}
		Group2
		{
	
			"alpha" "0.1"

		}
		Group3
		{
			"alpha" "0.0"
			Model1
			{
				"sprite" "0 0 164 256 512" 
				"spritesize" "0.5 0.0 18 27"
				"amount" "0.2"
				"detailOrientation" "2"
			}
			Model2
			{
				"sprite" "197 77 151 180 512" 
				"spritesize" "0.5 0.0 28 36"
				"spriterandomscale" "0.3"
				"amount" "0.8"
				"detailOrientation" "2"
			}
			Model3
			{
				"sprite" "376 0 112 256 512" 
				"spritesize" "0.5 0.0 16 22"
				"amount" "0.4"
				"detailOrientation" "2"
			}
			"alpha" "1.0"
			Model14
			{
				"upright" "1.0"
				"model" "models/props_foliage/grass_02_detailmodel.mdl"
				"amount" "0.025"
			}
		}
	}

tf_forest_grass
	{
		"density" "3000.0"
		Group1
		{
	
			"alpha" "1.0"
			Model1
			{
				"sprite" "0 0 164 256 512" 
				"spritesize" "0.5 0.0 21 48"
				"spriterandomscale" "0.2"
				"amount" ".3"
				"detailOrientation" "0"
			}
			Model2
			{
				"sprite" "200 85 94 172 512" 
				"spritesize" "0.5 0.0 16 37"
				"spriterandomscale" "0.2"
				"amount" ".2"
				"detailOrientation" "0"
			}
			Model3
			{
				"sprite" "354 161 148 96 512" 
				"spritesize" "0.5 0.0 32 32"
				"spriterandomscale" "0.2"
				"amount" ".3"
				"detailOrientation" "0"
			}
			Model4
			{
				"sprite" "32 416 64 96 512" 
				"spritesize" "0.5 0.0 12 16"
				"spriterandomscale" "0.2"
				"amount" ".3"
				"detailOrientation" "0"
			}
			Model5
			{
				"sprite" "217 472 68 40 512" 
				"spritesize" "0.5 0.0 18 12"
				"spriterandomscale" "0.2"
				"amount" ".7"
				"detailOrientation" "0"
			}
			Model6
			{
				"sprite" "418 424 43 88 512" 
				"spritesize" "0.5 0.0 11 22"
				"spriterandomscale" "0.2"
				"amount" ".3"
				"detailOrientation" "0"
			}
		}
		Group2
		{
			"alpha" "0.5"
			Model4
			{
				"sprite" "32 416 64 96 512" 
				"spritesize" "0.5 0.0 12 16"
				"spriterandomscale" "0.2"
				"amount" "0.2"
				"detailOrientation" "2"
			}
			Model5
			{
				"sprite" "217 472 68 40 512" 
				"spritesize" "0.5 0.0 18 12"
				"spriterandomscale" "0.2"
				"amount" "0.5"
				"detailOrientation" "2"
			}
		}
		Group3
		{
			"alpha" "0.25"
		}
		Group4
		{
			"alpha" "0.0"
		}
	}

tf_forest_grass_temp
	{
		"density" "3000.0"
		Group1
		{
	
			"alpha" "1.0"
			Model1
			{
				"sprite" "0 0 164 256 512" 
				"spritesize" "0.5 0.0 21 48"
				"spriterandomscale" "0.2"
				"amount" "0.04"
				"detailOrientation" "0"
			}
			Model2
			{
				"sprite" "200 85 94 172 512" 
				"spritesize" "0.5 0.0 16 37"
				"spriterandomscale" "0.4"
				"amount" "0.05"
				"detailOrientation" "0"
			}
			Model3
			{
				"sprite" "354 161 148 96 512" 
				"spritesize" "0.5 0.0 32 32"
				"spriterandomscale" "0.4"
				"amount" "0.2"
				"detailOrientation" "0"
			}
			Model4
			{
				"sprite" "32 416 64 96 512" 
				"spritesize" "0.5 0.0 12 16"
				"spriterandomscale" "0.3"
				"amount" "0.1"
				"detailOrientation" "0"
			}
			Model5
			{
				"sprite" "217 472 68 40 512" 
				"spritesize" "0.5 0.0 18 12"
				"spriterandomscale" "0.4"
				"amount" "0.25"
				"detailOrientation" "0"
			}
			Model6
			{
				"sprite" "418 424 43 88 512" 
				"spritesize" "0.5 0.0 11 22"
				"spriterandomscale" "0.05"
				"amount" "0.1"
				"detailOrientation" "0"
			}
		}
		Group2
		{
			"alpha" "0.5"
			Model4
			{
				"sprite" "32 416 64 96 512" 
				"spritesize" "0.5 0.0 12 16"
				"spriterandomscale" "0.3"
				"amount" "0.1"
				"detailOrientation" "2"
			}
			Model5
			{
				"sprite" "217 472 68 40 512" 
				"spritesize" "0.5 0.0 18 12"
				"spriterandomscale" "0.4"
				"amount" "0.25"
				"detailOrientation" "2"
			}
		}
		Group3
		{
			"alpha" "0.0"
		}
	}
}
tf_granary_grass - Название, которое было введено к "%detailtype" в VMT текстуры травы
"density" "3000.0" - Плотность спрайтов

Затем создаются группы со значениями alpha (тоесть blend'а 2 текстур).
К каждой группе указаны разные спрайты или модели.
Для указывания каждого отдельного спрайта/модели группы делятся на так называемые "модели"

Каждая текстура с таким же названием как и vbsp файл делится на спрайты.
Деление происходит через комманду

Код: Выделить всё

"sprite" "0 0 164 256 512"
где:
1 число - x координата верхнего левого угла спрайта
2 число - y координата верхнего левого угла спрайта
3 число - Ширина спрайта
4 число - Высота спрайта
5 число - размер текстуры по ширине

"spritesize" - Начало спрайта и его размеры по ширине и высоте
"spriterandomscale" - Насколько разным может быть размер спрайта
"amount" - Число спрайтов на определенной площади (возможно расстояние от одного такого спрайта до другого)
"detailOrientation" - 0 - спрайт не крутится, 1 - , 2 - спрайт вращается по отношению к камере/игроку

Если использовать модель заместо спрайта, то будут такие комманды:

"upright" - Если значение 1, то модель будет расположена всегда вверх (если 0 то по отношению к брашу/дисплейсменту)
"model" - Путь к модели
"amount" - То же что и у спрайтов

Статья на Valve Developer Wiki
Последний раз редактировалось Crash'n'Burn 06.07.2013, 20:54, всего редактировалось 4 раза.

Аватара пользователя
Backbreaker
Маппер
Маппер
Сообщения: 1184
Зарегистрирован: 27.12.2007

#2 Сообщение 14.02.2010, 13:39

Спасибо за информацию :wink:
Изображение

Ответить