Static Prop Combine
Static Prop Combine, или говоря неформально "автокомбайн", - функция в VBSP Counter-Strike: Global Offensive. Она позволяет VBSP объединять вместе множество статичных пропов в один, либо автоматически, либо по указанным пользователем правилам. Это снижает общее количество статичных пропов на карте и количество запросов на отрисовку. Чтобы включить эту функцию, запускайте VBSP с параметром
-staticpropcombine
.
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
![Source](/w/images/thumb/1/10/Icon-Source.png/16px-Icon-Source.png)
Примечание:В связи с непостоянностью этой функции в VBSP, возможно более хорошим решением может стать использование
TeamSpen's Hammer Addons. Помимо того, модели статичных пропов можно объединять вручную.
Contents
Действие
Static Prop Combine проводит следующие действия:
- Нахождение пропов, которые будут объединены.
- Это делается на основе правил, указанных
spcombinerules.txt
, или автоматически на основе использования моделей. Примечание:
-staticpropcombine_considervis
- полезная команда, которая делает так, чтобы при работе Static Prop Combine брал в расчёт видимость.- Сканирование исходного файла QC с целью взять определённую информацию.
- Это включает имена и положения основного и физического мешей, вертикальную ось модели, её скейл и является ли она вогнутой.
- QC находится при помощи параметра модели
qc_path
, который всегда считается относительным папке игры - даже если это полный путь! Примечание:К этому шагу относится множество ограничений, смотрите Использование для деталей.
- Использовать эту информацию вместе с неполным QC, чтобы сгенерировать свой QC
- $contentrootrelative , $appendsource и $addconvexsrc - новые команды, добавленные специально для Static Prop Combine. Последние две команды позволяют "добавить" геометрию к модели с каким-либо сдвигом, поворотом и изменённым размером.
- Вызвать StudioMDL , чтобы скомпилировать этот сгенерированный QC в комбинированную модель.
- Комбинированные модели всегда будут иметь
_autocombine_
в своём названии. - Запаковка комбинированных моделей через BSPZIP
Совет:Использование -keepsources отключит автоматическое удаление сгенерированных QC и распакованных файлов модели.
Использование
Параметры VBSP
Смотрите VBSP .
Настройки в Hammer
Пропы, отличающиеся по указанным ниже параметрам, НЕ будут скомбинированы, если не будет указан подходящий параметр VBSP:
- Render in Fast Reflections (
-combineignore_fastreflection
) (отражаться в быстрых отражениях) - Ignore Normals (
-combineignore_normals
) (игнорировать нормали) - Disable Shadows (
-combineignore_noshadows
) (отключить тени) - Disable Vertex lighting (
-combineignore_novertexlighting
) (отключить повертексное освещение) - Disable Flashlight (
-combineignore_noflashlight
) (отключить фонарик) - Disable Self-Shadowing (
-combineignore_noselfshadowing
) (отключить самозатенение) - Disable ShadowDepth (
-combineignore_disableshadowdepth
) (отключить глубину теней)
В добавление, Вы можете отключить Static Prop Combine для определенных пропов, используя параметр Disable Prop Combine.
Подготовка пропов
Чтобы использовать проп со Static Prop Combine, Вы должны иметь исходные файлы модели.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
QC модели должен быть скомпилирован из папки контента игры. Для Counter-Strike: Global Offensive это
SteamApps/common/content/csgo/
.
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
../../content/[название -game]
, относительно папки bin. Это может быть полезно для моддеров.
Есть немало ограничений, включающих:
- Будет распознан только первый параметр
$body
. $model
не распознаётся.$appendsource
и$addconvexsrc
не распознаются.- Значение
$upaxis
может быть только Z или Y.
Подготовка правил
Правила для Static Prop Combine объявлены в scripts/hammer/spcombinerules/spcombinerules.txt
. Это стандартный KeyValues-форматированный текстовый файл. Каждый ввод следует этому формату:
"example_combined" // Имя группы комбинирования, будет использовано для модели в игре
{
// Это неполный QC, который будет использован, чтобы генерировать комбинированные модели
"qc_template_path" "scripts/hammer/spcombinerules/qc_templates/example.qc"
// Максимум моделей в одной комбинированной модели
"cluster_limit" 8
// Не комбинировать модели, которые находятся на большем, чем это, расстоянии
"distance_limit" 12
// Это модели, которые можно скомюинировать
"peers"
{
"models/examples/example_A.mdl" ""
"models/examples/example_B.mdl" ""
"models/examples/example_C.mdl" ""
}
}
Если Вы не хотите утруждаться созданием правил, вы можете запустить -staticpropcombine_autocombine
. Однако, это может вызвать проблемы, если у Вас нет исходных файлов для моделей, которые попробует скомбинировать VBSP.
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
Неполные QC
Неполные QC - это файлы QC или QCI , которые содержат основу для QC, сгенерированных Static Prop Combine. В целом, они должны включать в себя только:
- $cdmaterials
- $surfaceprop
- $staticprop
- Любые скины , использующиеся моделями.
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
- Static Prop Combine не объединяет модели, использующие разные скины.
- Так как объединенные модели нельзя указать в lights.rad , можно указать параметр $casttextureshadows , чтобы позволить этой модели отбрасывать текстурные тени.
Пример неполного QC
$cdmaterials models\props\de_venice\venice_window_3
$staticprop
$surfaceprop "Plaster"
$texturegroup venice_window_3 {
{ "venice_window_3" }
{ "venice_window_3_lit" }
}