При компиляции не создается bsp файл

Обновлено: 07.07.2024

Глава III. Компиляция (ZHLT).

В этой статье мы рассказываем о компиляции BAT-файлом, компиляции в редакторе Hammer (Worldcraft) и компиляции при помощи графической оболочки для ZHLT программы Batch Compiler. Также мы рассказываем о нескольких типах компиляции (тестовой и окончательной).

  • Полная компиляция
  • Тестовая компиляция
  • Компиляция BAT-файлом
  • Удаление лишних файлов после компиляции
  • Компиляция в редакторе Hammer
  • Компиляция в программе Batch Compiler

ЧАСТЬ 1. Типы компиляции

Необходимость уменьшения времени компиляции привела к появлению тестового режима компиляции. При использовании тестового режима указываются параметры, существенно уменьшающие время компиляции, но при этом ухудшается качество итоговой карты. Также при тестовой компиляции возможно использование всего двух программ-компиляторов из четырех.

Итак, существует 2 типа компиляции:

  • Полная компиляция (максимальное качество карты, но бОльшее время компиляции);
  • Тестовая компиляция (время компиляции существенно меньше, но качество карты на порядок хуже).

1.1 Полная (окончательная) компиляция

Если нам необходимо получить максимально качественную карту (окончательную версию) или, если время компиляции особого значения не имеет ( ), то полный режим компиляции, то, что нам нужно. Мы рекомендуем проводить полную компиляцию карты не только для окончательного ее варианта, но также для проверки качества освещения и определения скорости отрисовки карты.

При полной компиляции задействованы все 4 компилятора: HLCSG, HLBSP, HLVIS, HLRAD.

Самый ресурсосберегающий способ компиляции — компиляция BAT-файлом. При этом способе компиляции создается BAT-файл (по сути простой текстовый), в котором записываются очередность и параметры запуска компиляторов.

Ниже приведенны строки, которые нужно скопировать в Блокнот и сохранить файл как full.bat (или с любым другим названием, но с расширением именно *.bat). Затем этот файл необходимо поместить в директорию с компиляторами, туда же скопировать карту в формате MAP и запустить full.bat.

4 строка: запуск компилятора HLCSG;
5 строка: запуск компилятора HLBSP;
6 строка: запуск компилятора HLVIS с параметром -full (полная оптимизация карты);
7 строка: запуск компилятора HLRAD с параметром -extra (просчет освещения с наилучшим качеством).

Подробнее об этих и других параметрах Вы можете прочитать в соответствующей статье из данной Главы.

1.2 Тестовая компиляция

Тестовая компиляция применяется, когда не хочется ждать много времени, чтобы всего лишь проверить правильность работы энтити-объектов (все ли двери закрываются, ездиет ли машина, опускается ли лифт и т.д.) или просто с целью побегать по карте, потестировать геймплей, засечь время появления команд в разных местах - в этом случае качество освещения и оптимизации отходят на второй план.

При тестовой компиляции возможен запуск лишь первых двух компиляторов: HLCSG и HLBSP, то есть можно не оптимизировать карту (HLVIS) и не просчитывать освещение (HLRAD). Но мы все-таки рекомендуем запускать все четыре компилятора, просто установив для последних двух параметры (см. ниже).

Ниже приведенны строки, которые нужно скопировать в Блокнот и сохранить файл как fast.bat (или с любым другим названием, но с расширением именно *.bat). Затем этот файл необходимо поместить в директорию с компиляторами, туда же скопировать карту в формате MAP и запустить fast.bat.

4 строка: запуск компилятора HLCSG;
5 строка: запуск компилятора HLBSP;
6 строка: запуск компилятора HLVIS с параметром -fast (быстрая оптимизация карты);
7 строка: запуск компилятора HLRAD с параметром -chop 128 (быстрый более грубый просчет освещения).

ЧАСТЬ 2. Способы компиляции

Итак, карты, как мы уже знаем, можно компилировать BAT-файлом или программами-оболочками для ZHLT (редактор карт, кстати, тоже можно назвать оболочкой для ZHLT). Нужно понимать, что в любом случае карту компилируют утилиты ZHLT, а не BAT-файл, редактор карт или любая другая программа (ну, это так. на всякий случай :)

2.1 Компиляция BAT-файлом

Собственно, компиляцию BAT-файлом мы уже рассмотрели в первой части статьи. Вы уже можете создать два пакетных файла для быстрой и полной компиляции. Но, как гласит народная мудрость: , поэтому остановимся на этом способе еще чуть-чуть.

BAT-файл — это файл текстового формата, при запуске которого, выполняются записанные в нем команды (например, копирование или удаление файлов). Чтобы создать BAT-файл надо скопировать в Блокнот команды запуска компиляторов, приведенные в этой статье и сохранить файл под любым именем с расширением BAT. Или можно сохранить файл как обычный *.TXT, а затем поменять расширение на *.BAT.

При использовании BAT-файла его необходимо поместить в директорию с компиляторами, например, «D:HammerZHLT». Туда же необходимо скопировать свою карту в формате MAP.

Мы рекомендуем создать два BAT-файла для двух разных типов компиляции (полной и тестовой). Для удобства их можно назвать full.bat и fast.bat, соответственно.

Удаление лишних файлов после компиляции

После компиляции в папке с компиляторами остается довольно много лишних файлов, которые можно удалить. Давайте рассмотрим какие файлы можно удалить, а какие могут оказаться полезными.

Чтобы не удалять каждый раз лишние файлы вручную, предлагаем автоматизировать это. Нужно добавить несколько строк в BAT-файл (мы приводим пример с файлом для полной компиляции).
Обратите внимание: в строке, где указывается имя карты, расширения .map уже нет.

hlcsg.exe -estimate "%mapname%"
hlbsp.exe -estimate "%mapname%"
hlvis.exe -estimate -full "%mapname%"
hlrad.exe -estimate -chart -extra -dscale 1 -bounce 4 -smooth 100 "%mapname%"

copy %mapname%.bsp c:gameshalf-lifecstrikemaps

2.2 Компиляция в редакторе Hammer/Worldcraft

Редактор Hammer позволяет проводить как тестовую, так и полную компиляцию карты. Чтобы иметь возможность компилировать из Hammer'а, необходимо подключить к нему компиляторы ZHLT. Как это сделать Вы можете прочитать в статье «Компиляторы ZHLT».

Мы бы не сказали, что компилировать карты в редакторе легче и удобнее, чем BAT-файлом, однако многие начинающие мапперы с упорством спрашивают, как компилировать карты именно в редакторе :) К счастью, все они вскоре переходят на компиляцию BAT-файлом, потому что это проще и требует меньше cистемных ресурсов.

Если компиляторы ZHLT уже подключены к редактору, можно приступать.

Нажимаем F9 в редакторе. Перед нами появляется небольшое окошко с параметрами компиляции.

Это режим , в котором мы можем выбрать минимум параметров компиляции.

No - не запускать HLCSG
Normal - обрабатывать все объекты на карте
Entities only - обновить информацию о свойствах энтити-объектов

No - не запускать HLBSP
Normal - обычный режим

No - не запускать HLVIS (не для окончательной компиляции)
Normal - обычный режим
Fast - быстрая оптимизация карты (не для окончательной компиляции)

No - не запускать HLRAD (не для окончательной компиляции)
Normal - обычный режим
Extra - включает наиболее качественный просчет освещения (рекомендуется)

Don't run the game - не запускать карту сразу же после компиляции
Save visible objects only - обрабатывать только видимые (нескрытые) объекты
Expert - переключение в расширенный режим компиляции, где параметры задаются вручную.

2. Режим Expert

Теперь рассмотрим компиляцию в режиме для этого нажмем на кнопку Expert внизу окна.

Появится следующее окно. На первый взгляд тут разобраться невозможно. Вы все еще хотите компилировать в редакторе? :) Объясним все подробно.

В этом окне используются настройки, указанные нами при установке редактора, а именно из меню закладки и . Только здесь вместо путей к программам и директориям Half-Life используются переменные, начинающиеся со знака доллара .

В списке выберем .
Теперь рассмотрим каждую строчку в поле .

Change Directory $exedir - здесь устанавливается директория, в которой находится файл hl.exe
$csg_exe $path$file - эта строчка запускает первый компилятор HLCSG
$bsp_exe $path$file - эта строчка запускает второй компилятор HLBSP
$vis_exe $path$file - эта строчка запускает третий компилятор HLVIS
$light_exe $path$file - эта строчка запускает последний компилятор HLRAD
Copy File $path$file.bsp $bspdir$file.bsp - копирует готовую карту в директорию с игрой (она указывается в )
Copy File $path$file.pts $bspdir$file.pts - копирует *.pts файл в вышеуказанную директорию (можно не делать)
$game_exe +map $file -game cstrike -dev -console +deathmatch 1 - автоматически запускает откомпилированную карту с параметрами -dev -console +deathmatch 1
Run with visible objects only - обрабатывать только видимые объекты (если на карте есть скрытые объекты, то они обработаны не будут)

Можно добавить и другие параметры компиляции, рассмотрим пример для полной компиляции:

Выберем слева строчку $light_exe. В окошках справа появятся параметры запуска этого компилятора (на самом деле это HLRAD, просто он так обозначен). По умолчанию в параметрах записано лишь $path$file, что указывает компилятору путь к нашей карте.

через пробел следующие параметры: -extra -dscale 1 можно также добавить . Теперь компилятор HLRAD будет запущен в режиме самого качественного просчета освещения. Также устанавливаются параметры и для остальных компиляторов. Просто смотрите в статье необходимые параметры и прописывайте их в строчки запуска компиляторов.

Компиляцию в редакторе Hammer нельзя назвать самым удачным решением. При этом способе компиляции требуется больше ресурсов компьютера, т.к. Hammer загружает в память как карту, так и используемые текстуры, да и сам требует определенного количества системных ресурсов.

Компиляция в программе Batch Compiler

Batch Compiler — это графическая оболочка для компиляторов ZHLT. При помощи различных меню мы выставляем параметры и запускаем компиляцию.

Batch Compiler является чем-то средним между компиляцией BAT-файлом и компиляцией в редакторе. Ресурсов потребляется значительно меньше, чем при компиляции в Hammer'е, но все же больше, чем при использовании BAT-файла. Еще один недостаток программ-оболочек приведен в заключении статьи, там говорится о постоянной необходимости обновлять эти программы.

Так выглядит интерфейс программы:

В верхней строчке флажками отмечаются те операции, которые будут выполнены. При полной компиляции необходимо отметить:

После первого запуска программы необходимо указать пути к программам-компиляторам, а также, при необходимости, путь к Half-Life. Делается это через меню Options/Setup.

Указав пути к компиляторам, необходимо проделать тоже самое с картой в формате MAP — укажите к ней путь, отметив флажок в самом низу окна программы напротив надписи «MAP File Path».

Затем настает черед выставления параметров компиляции, делается это в закладках (CSG, BSP, Visibility и т.д.). Чтобы выставить нужные параметры, необходимо понимать, что они означают, так что учите :)

Для начала компиляции нажимаем кнопку Compile.

В заключении

С нашей точки зрения, наиболее быстрым и простым способом компиляции является использование BAT-файла. Обычно, чтобы откомпилировать новую карту, необходимо всего лишь поменять название карты. При этом не надо устанавливать дополнительных программ, занимающих место на диске. Трудно сказать какой процент мапперов использует BAT-файл, но, если судить по высказываниям в форумах, BAT-файл рулит! :)

К тому же при использовании программ-оболочек, наподобие рассмотренной Batch Compiler, мы находимся от них в зависимости. Пример: вышла новая версия компиляторов ZHLT с какими-то новыми функциями, а старая программа их, естественно, не поддерживает. Приходится ждать новой версии, следить за новостями, скачивать , устанавливать. Так не лучше ли использовать BAT-файл?

Каждая из 4-х программ-компиляторов имеет как свои собственные параметры, так и девять общих, которые применимы к любой из них.

    1. HLCSG (8 параметров + 9 общих)

1. HLCSG

Пример запуска: hlcsg.exe -estimate -nowadtextures name.map

-nowadtextures
Включить все используемые текстурные библиотеки в итоговый файл (*.bsp) карты. Этот параметр бесполезен с введением нового параметра: -wadinclude и оставлен только для обратной совместимости.

-wadinclude файл
Вшить текстуры из указанного *.wad файла в итоговый файл карты (*.bsp). Позволяет использовать неполное совпадение имени, не учитывает регистр букв, может распознавать не только имена файлов, но и названия директорий. Когда нужно вставить несколько текстурных библиотек, то укажите параметров -wadinclude несколько раз, по одному на каждый текстурный файл. Только действительно используемые в уровне текстуры, будут вшиты в *.bsp файл.

-noclip
Не создавать «ограничительную» область в уровне. Уровни в Counter-Strike имеют четыре замкнутые области (hulls), которые используются движком: одна область — видимая (отрисовка видимых участков уровня), и три области — ограничительные (ограничивают передвижение игрока по уровню). Этот параметр отключает ограничительные области в уровне, тем самым делает её как бы «воздушной»: игрок может ходить сквозь стены и провалиться сквозь пол (если включена гравитация). Бывает полезно с целью экономии времени при неокончательной, тестовой компиляции карты. При этом наблюдать за сделанными изменениями в уровне будет возможно только в режиме Spectator.

-onlyents
Позволяет обновлять значение параметров энтити-объектов из исходника *.map в готовой BSP-карте. Однако, в подавляющем числе случаев объекты нельзя редактировать. Добавление или удаление энтити-объекта может дезорганизовать остальные энтити-объекты, испортив брашевые энтити, в особенности, брашевые триггеры.

-noskyclip
Отключить авто ограничение уровня небом. По умолчанию hlcsg.exe ограничивает доступное игроку пространство CLIP-брашами, а также удаляет полигоны за пределами уровня или «внутри» неба, что ускоряет последующие стадии компиляции.

-hullfile
Загружает собственный файл с информацией об ограничительных областях. Файл содержит три строки с тремя числами в каждой, которые обозначают размеры области по осям X Y Z. Этот параметр дан для создателей карт определенных модов HL, так что не следует слишком беспокоиться о нём.

2. HLBSP

Пример запуска: hlbsp.exe -estimate name.map

-leakonly
Запускает HLBSP.EXE только для поиска «утечек», «дырок» (ошибка LEAK). Если ваш уровень имеет «дыры», используйте этот параметр для их поиска и создания спец. файла с информацией об «утечеках» (*.pts).

-notjunc
Не разрезать браши на более мелкие при соприкосновении — Т-соединения (не для финальной компиляции). Этот параметр нужен для отладки (настройки) и не должен использоваться при окончательной компиляции карты.

-noclip
Не обрабатывать ограничительную область (не для финальной компиляции). Этот параметр — продолжение параметра в компиляторе hlcsg.exe. Он говорит hlbsp.exe, что hlcsg.exe скомпилировал карту с опцией и что не нужно обрабатывать ограничительные области, т.к. как они отсутствуют в *.bsp файле.

-nofill
Не заполнять внешний мир (игнорируются дырки — LEAK) (не для финальной компиляции). Не стоит запускать расчет освещения (HLRAD.EXE) для карты, откомпилированной данным способом, хотя hlvis будет работать без проблем.

3. HLVIS

Пример запуска: hlvis.exe -estimate -full name.map

-fast
Ускоренный анализ (не для финальной компиляции). Удобно использовать данный параметр для быстрого обследования создаваемого уровня. Однако, значение r_speeds (количество видимых полигонов) оставляет желать лучшего. Уровень можно «осветить» при помощи hlrad.exe, но качество освещения и время компиляции такого уровня пострадают. Разрабатываемый уровень необходимо компилировать как можно чаще с полным анализом видимости, чтобы возможно было вовремя заметить резкое увеличение параметра r_speeds и неправильную архитектуру уровня.

-full
Полный анализ. Этот параметр включает полный блок расчета видимых областей в уровне, что уменьшает число ошибок по сравнению с обычным анализом hlvis.exe без параметров. Процесс компиляции при этом увеличивается примерно на 30 процентов. Параметр r_speeds остается примерно одинаковым: с уменьшением в одних и увеличением в других местах карты.

4. HLRAD

Пример запуска: hlrad.exe -estimate -chart -extra -smooth 100 -dscale 1 -bounce 4 name.map

-sparse
Задействовать алгоритм с матрицей с ограниченной памятью. Hlrad.exe разбивает карту на множество блоков (или патчей), из которых затем создается матрица для просчёта освещения в уровне. Вначале матричный алгоритм ограничен 65535 блоками. Использование памяти при этом алгоритмоме возрастает в геометрической прогрессии по мере увеличения числа блоков (патчей). Необходимое количество памяти в байтах вычисляется как: количество блоков в квадрате поделенное на шестнадцать. Эта опция hlrad'а задействует алгоритм сжатия матрицы, благодаря которому, можно преодолеть максимальное число блоков в 65535 шт. А также позволяет снизить необходимость в оперативной памяти до 10 процентов от объёма, необходимого для простого матричного алгоритма.

-nomatrix
Полностью выключить матрицу. Так как «урезанная» матрица (параметр: -sparse) приводит к сжатию данных, то, всвязи с этим, необходима точная синхронизация процессов, что сложно добиться на компьюетрах с количеством процессоров более двух. Параметр -nomatrix был добавлен для того, чтобы решить данную проблему.

-extra
Включает полный расчёт освещения — 9 point oversampling. Компилирует уровень с наиболее реалистичным и красивым освещением.

-ambient r g b
Устанавливает минимальную яркость освещения окружающего мира (значения: от 0.0 до 1.0; r g b). С этим параметром устанавливается минимальная яркость всякой поверхности уровня с тем, чтобы ни какая из поверхностей не была абсолютно чёрной. Параметры R G B соответствуют красному (Red), зелёному (Green) и синему (Blue) цвету со значениями от 0.0 до 1.0.

-circus
Разрешает режим "circus" для обнаружения неосвещенных (чёрных) участков карты. Это отладочный параметр, который заменяет все чёрные точки всякой поверхности на случайный яркий цвет. Для расчетов берётся только прямое освещение, при этом отражённый свет полностью игнорируется.

-nopaque
Отключает блокирование света обектами. Это отладочный параметр. Блокировка света объектами замедляет работу hlrad.exe, поэтому данная опция полезна для неполной (не финальной, быстрой) компиляции.

-lights имя_файла.rad
Здесь вручную указывается имя файла со светящимися текстурами (*.rad). Данный RAD-файл можно добавить вручную, а также автоматом считываются файлы lights.rad и <имя_карты>.rad

-noskyfix
Отключает глобальное применение точечного энтити-объекта light_environment. В утилитах Зонера 2.1 появилась простая функция освещения при помощи объекта light_environment. Отныне в уровне необходимо наличие только одного энтити-объекта light_environment, причём его местоположение не играет никакой роли — все небо излучает свет. Параметр -noskyfix отключает эту систему и включает старый режим, когда на различных участках уровня были необходимы свои light_environments. Таким образом, данный параметр использовать не нужно.

5. Общие параметры

-chart
Показывает статистику BSP. Данная функция принуждает программы-компиляторы выдавать статистику BSP перед тем, как записать в файл. Утилита Ripent всегда отображает статистическую диаграмму.

-low / -high
Запускает программу-компилятор с низким или высоким приоритетом. Установка низкого приоритета (параметр: -low) удобна тем, что мы можем выполнять другие приложения без существенного воздействия компиляторов на производительность компьютера. Советуем использовать при наличии большого количества системной памяти.

-estimate
Показывает время, оставшееся до конца компиляции. Данная функция заменяет обычный индикатор прогресса (10. 20. ) на расчётное время компиляции, количество выполненной работы и оставшееся для выполнения. Рассчёт времени часто бывает неточным, но, в целом, данный индикатор всё же более подробен, нежели индикатор по умолчанию.

-noinfo
Не показывать настройки утилит. В версии утилит Зонера 2.1 добавился вывод на экран текущей конфигурации каждого компилятора. В таблице параметров показывается текущее значение и значение по умолчанию каждого компиляционного параметра. Из-за значительного количества информации это может вызвать проблемы компиляции, к примеру, в Worldcraft, т.к. он, бывает, зависает от этого.

Большинство людей просто не знают или не понимают, зачем нужна компиляция карт Source и как она происходит. Некоторые даже не представляют, что их карты скомпилированы. В этой статье я постараюсь объяснить, как происходит создание игровой карты в редакторе. Хотя я буду подробно останавливаться на некоторых аспектах процесса компиляции, имейте в виду, что это не учебник по компилированию карт. Статья поможет вам понять, что происходит, и почему какие-то вещи (например, предотвращение утечек) важны.

Создание карты Source начинается с файла-редактора. Этот файл содержит данные о всех полигонах (ака браши), энтитях и текстурах, которые определяют внешний вид карты и движуху на ней. По существу, все редакторы служат одной цели – определению, как будет выглядеть уровень. Это ключевое понятие: так делают ВСЕ редакторы. Они не создают готовые карты. Всё, что они делают – подготавливают данные полигонов, освещения и энтить к последующей обработке.

После того, как вы создали уровень в своём редакторе и сохранили его на диске, он должен быть протестирован в Source. Ведь надо убедиться, что энтити работают как надо, что освещение правильное и нет кривой геометрии. В Хаммере люди просто нажимают "Run", и компьютер после некоторого "раздумья" запускает Half-Life 2, погружая их в мир своей карты. Это простейшее событие скрывает за собой сложный набор операций, происходящих вне поля зрения пользователя.

Теперь – главный вопрос: что происходит во время этого, иногда мучительно долгого, "раздумья"? Даже если карта небольшая, большинство людей замечает активную работу жёсткого диска. Что же делает ваш компьютер? Он компилирует карту! Ваш редактор вызывает пакетный сценарий (.bat) и выполняет следующие действия:

  1. Чтение файла .vmf
  2. Запуск программы BSP для файла .vmf
  3. Запуск программы VIS для нового файла .bsp
  4. Запуск программы RAD для файла .bsp, чтобы добавить информацию об освещении
  5. Перемещение готового файла .bsp в папку Mods /maps
  6. Запуск игры с вашей картой

Вы можете подумать: "Блин, как много он делает. Для чего всё это?". Я тут как раз, чтобы объяснить.

Общий вид процесса компиляции

В нижеследующей таблице показан общий процесс, необходимый для создания файла игровой карты (.bsp).

Файл .vmf > VBSP > промежуточный .bsp > VVIS > VRAD > готовый .bsp

Source Mapping Pipeline.jpg

Инструменты компиляции

Нижеследующая таблица даст вам хорошее представление о том, что делает каждый инструмент. Описание упрощено, поскольку задачи, выполняемые инструментами, включают в себя сложную математику и алгоритмы, которые вам, как создателю карты, знать не нужно. Этого достаточно для понимания работы инструментов.


В этом уроке я расскажу вам о методе, который будет полезен каждому, кто работает с картами. Компиляция карты с помощью исполняемого *.bat файла очень удобная вещь, если у вас слабый ПК. Этот метод не нагружает оперативную память вашей ОС и более быстро, ежели Hammer Editor компилирует файл вашей карты в *.bsp формат.


1,065 уникальных посетителей
27 добавили в избранное





У вас есть готовый исходник карты, и вы хотите её скомпилировать минуя Hammer Editor.

Такое бывает, если Вам нужно просто срочно скомпилировать карту без запуска Hammer Editor. Кроме того, компиляция через исполняемый *.bat файл проходит немного быстрее, а окно, отображающее прогресс, никогда не зависнет.

В отличие от Hammer Editor — Кто компилировал большие не оптимизированные карты, тот знает, что одну из своих первых не оптимизированных карт я компилировал около 26 часов! Я даже запустил Windows в безопасном режиме, чтобы минимизировать трату ресурсов процессора.

Выбираем подходящую директорию, куда мы положим исходник карты и исполняемый *.bat файл. Например, ваш рабочий стол. Кладём в этом место исходник вашей карты (формат *.vmf) и создаём текстовый документ с любым именем. Открываем и пишем туда следующее:

Синтаксис исполняемого *.bat файла таков:

"Путь до vbsp.exe" -game "Путь до папки игры с файлом gameinfo.txt — Например, cstrike" название_вашей_карты.vmf
"Путь до vvis.exe" -game "Путь до папки игры с файлом gameinfo.txt — Например, tf" название_вашей_карты.vmf
"Путь до vrad.exe" -game "Путь до папки игры с файлом gameinfo.txt — Например, csgo" название_вашей_карты.vmf
@pause

Пример для пиратской версии программы Source SDK:

"C:\Ultimate SSDK v2\SourceSDK\bin\orangebox\bin\vbsp.exe" -game "C:\Ultimate SSDK v2\Source Engine 2009 MP\cstrike" cs_bunker.vmf
"C:\Ultimate SSDK v2\SourceSDK\bin\orangebox\bin\vvis.exe" -game "C:\Ultimate SSDK v2\Source Engine 2009 MP\cstrike" cs_bunker.vmf
"C:\Ultimate SSDK v2\SourceSDK\bin\orangebox\bin\vrad.exe" -game "C:\Ultimate SSDK v2\Source Engine 2009 MP\cstrike" cs_bunker.vmf
@pause

И ещё приведу пример для Steam версии игры, например TF2:

"C:\Steam\steamapps\common\Team Fortress 2\bin\vbsp.exe" -game "C:\Steam\steamapps\common\Team Fortress 2\tf" NecroSmasher.vmf
"C:\Steam\steamapps\common\Team Fortress 2\bin\vvis.exe" -game "C:\Steam\steamapps\common\Team Fortress 2\tf" NecroSmasher.vmf
"C:\Steam\steamapps\common\Team Fortress 2\bin\vrad.exe" -game "C:\Steam\steamapps\common\Team Fortress 2\tf" NecroSmasher.vmf
@pause

То есть, всё очень просто, вам нужно указать пути до файлов, которые закомпилируют вашу карту по очереди, а затем изменить расширение файла с *.txt на *.bat и запустить его. Также можно добавить дополнительные параметры для компиляторов. Например, если Вы собираетесь компилировать финальную версию своей карты, компилятору VVIS можно (да и нужно) добавить параметры -hdr и -final. Параметр -hdr означает, что карту надо компилировать ещё и в HDR-режиме, а -final целиком улучшает освещение и итоговый вид карты. Конечно, карта будет компилировать дольше, зато будет лучше выглядеть. В итоге, для финальной версии карты текст вашего файла будет такой:

"Путь до файла vbsp.exe" -game "Путь до папки игры с файлом gameinfo.txt — Например, hl2" название_вашей_карты.vmf

"Путь до файла vvis.exe" -game "Путь до папки игры с файлом gameinfo.txt — Например, synergy" название_вашей_карты.vmf

"Путь до файла vrad.exe" -hdr -final -game "Путь до папки игры с файлом gameinfo.txt — Например, garrysmod" название_вашей_карты.vmf
@pause

После всех ваших действий с исполняемым *.bat файлом — Сохраните файл, затем измените его расширение.

Самое главное, запомните: Путь до папки игры, это директория игры, в которой хранится файл gameinfo.txt — этот файл отвечает за информацию об игре.

Несколько примеров с директориями игр, где хранится файл gameinfo.txt

Для Half-Life 2 это Steam → SteamApps → common → Half-Life 2 → hl2
Для Garry's Mod это Steam → SteamApps → common → Garry's Mod → garrysmod
Для Synergy это Steam → SteamApps → common → Synergy → synergy
Для CS:GO это Steam → SteamApps → common → Counter-Strike Global Offensive → csgo
Для Team Fortress 2 это Steam → SteamApps → common → Team Fortress 2 → tf
Для Portal это Steam → SteamApps → common → Portal → portal
Для Source FilmMaker это Steam → SteamApps → common → SourceFilmmaker → game → usermod

Именно в этих ↑ папках находятся файлы gameinfo.txt для всех игр, как видите по разным папкам.

-v (или -verbose) — Включает подробный вывод (также показывает болше опций в командной строке). Используется без каких-либо других параметров.

-fast — Быстрая компиляция для теста карты.

-low — Выполнять с низшим приоритетом.

-vproject (или -game) — Перезаписывает переменную окружения VPROJECT

-onlyents — VBPS будет компилировать только entity.

-onlyprops — Добавляет или обновляет только static и/или props.

-glview — Записывает информацию GLView в директории с VMF-файлом вашей карты.

-nodetail — Игнорирует все func_detail.

-nowater — Не компилирует воду.

-verboseentities Если включён параметр -v, то эта команда запрещает подробный вывод для вложенных моделей.

-noweld — Не объединять вертексы вместе.

-nocsg — Не разбивавать пересекающиеся браши.

-noshare — Отбрасывавать уникальные рёбра, вместо замены их.

-notjunc — Не исправлять t-функцию.

-noopt — По умолчанию VBSP удаляет "наружнюю оболочку" из карты, т.е. все грани, которые вы не можете видеть, потому, что вы никогда не выйдите за пределы карты. -noopt отменяет этот режим.

-noprune — Не резать рядомстоящую мировую геометрию.

-nomerge — Не объединять разрезанные грани в узлы (ноды)..

-nomergewater — Не объединять разрезанные грани на воде

-nosubdiv Не разделять грани для лайтмапов.

-fulldetail Делает всю детальную геометрию мировой геометрией.

-leaktest — Останавливает процесс компиляции, если карта содержит дырку. Если этот параметр не задан, то файл с дырками будет записан как <имя .vmf>.lin и он может быть впоследствии импортироваться в Хаммер.

-bumpall — Делает на всех поверхностях эффект бампа.

-snapaxial — Выравнивает координаты до целых чисел.

-dumpstaticprops — Записывает prop_static в *.txt

-dumpcollide — Записывает файл с информации о столкновениях (коллизии).

-lightifmissing — Лайтмапы будут созданы для всех граней, даже если они им не нужны.

-keepstalezip — Оставляет нетронутым файлы BSP в zip, но обновляет всё остальное.

-replacematerials — Замещает материалы, использую данные из materialsub.txt в папке content\maps

-FullMinidumps — Записывает большой дамп при фатальной компиляции

-linuxdata Включает запись информации для многопользовательских серверво в Linux (но эта информация записывается автоматически, если находятся такие энтити, как info_player_terrorist, info_player_deathmatch, info_player_teamspawn, info_player_axis, или info_player_coop).

-nolinuxdata Выключает запись информации для многопользовательских серверво в Linux.

-virtualdispphysics Использует виртуальную модель коллизии (она не будет просчитана заранее) для дисплэсментов.

-xbox Включить оптимизацию для Xbox.

-radius_override <int> — Устанавливает видимый радиус, прописанный в env_fog_controller.

-nosort — Не сортировать порталы (сортировака произовдится для оптимизации).

-tmpin — Читает порталы из карты \tmp\<имя карты>

-tmpout — Записывает порталы в \tmp\<имя карты>

-mpi — Использует VMPI для равномерного просчёта.

-mpi_pw <string> — Использовать пароль для выбора настроек работы VMPI.

-ldr Компиляция только лайтмапов LDR.

-hdr — Компиляция только лайтмапов HDR.

-both — Компилирует лайтмапы сразу для Low Dynamic Range и High Dynamic Range (LDR и HDR) моделей освещения. Компилятор запуститься дважды.

-final — Увеличивает качество light_environment и других источников света.

-lights <filename>.rad — Загружает пользовательский файл со световой информацией в дополнение к lights.rad и файлу освещения самой карты. Должен иметь иметь имя следующего вида .rad.

-bounce <int> — Установка уровня световых отражений. Увеличение этого параметра улучшает тени и темные участки. Почти не влияет на скорость компиляции. По умолчанию равно 10.

-smooth <int> — Установить предел для сглаживания света (в градусах). По умолчанию VRAD использует отдельное для каждой поверхности освещение (Phong shading). С этим параметром применяется сглаживание освещения (Phong smoothing) на поверхностях, если угол между поверхностями меньше чем указанный. По умолчанию равен 45 градусам.

-luxeldensity <normal> — Уменьшает масшатб всех люкселей. По умолчания (и максимум) равен 1.

-softsun <float> — Считать солнце, как источник мощного света \. Делает магкие тени. Рекоммендуемое значение между 0 и 5. По умолчанию 5.

-StaticPropLighting — Создаёт освещение на каждый вертекс для prop_static. light_spot делает это по умолчанию. При большом количестве prop_static размер карты очень сильно увеличивается.

-StaticPropPolys (Новое с выпуском Orange Box) — Выполнение испытание теней для каждого полигона prop_statics. Очень сильно нагружает процессор.

-TextureShadows (Новое с выпуском Orange Box) — Генерирует лайтмапные тени из $translucent и используется с prop_static. Требует StaticPropPolys для возымения эффекта, а также низкого масшатибирования лайтмап для большинства текстур.

-mpi — Использует VMPI для равномерного просчёта.

-mpi_pw <string> — Использовать пароль для выбора настроек работы VMPI.

-noextra — Запрещает суперсэмплинг.

-chop <int> — Установить размер блока освещения (патча) для нормальных текстур. Увеличение размера патчей ведет к ускорению вычислений VRAD, но ухудшению качества освещения.

-maxchop <int> — Устанавливает максимальный размер патчей. Смотреть предыдущий параметр.

-LargeDispSampleRadius — Этот параметр может использоваться, если освещене падает на землю. Компиляция занимает много времени, но зато будет выглядеть красиво.

-compressconstant <int> — Сжимает лайтмапы, варииация цвета которой меньше, чем n (<int>) юнитов.

-dump — Записывать дамп в .txt

-dumpnormals — Записывать нормали в файл дампа

-debugextra — Помещать отладочную информацию в лайтмапы для визуализирования суперсэмлинга.

-dlightmap — Превращает направленное освещение в разнонаправленные лайтпамы.

-stoponexit — Ждать нажатия кнопки для выхода.

-nodetaillight — Не освещать детали(detail)

-centersamples — Переместить сэмлы в центр.

-loghash — Записать хэш таблицы в samplehash.txt

-onlydetail — Освещать только датали (detail props) и полистовое освещение.

-StaticPropNormals — При освещении статики, просто показывать его вектор нормали.

Читайте также: