Автоматическое определение wad-файлов
Эта простая функция дает возможность подключать к редактору любое количество текстурных WAD-файлов, и при этом, только действительно используемые WAD-файлы будут включены в готовый BSP-файл карты. Чтобы задействовать эту функцию, необходимо в строчку запуска компилятора HLCSG добавить параметр -wadautodetect.
Режим экономии clipnode
Данный режим включен по умолчанию в компиляторе HLCSG, поэтому нет необходимости включать его дополнительными параметрами.
Clipnode — поверхности, определяемые игровым движком, как непроходимые для игрока. Каждый браш на карте (будь-то стена, пол или ящик) «окутывается» clipnode-поверхностями. Благодаря clipnode'ам игрок не проваливается сквозь землю и не может проходить сквозь стены. Помните старый халфовский чит «noclip» (хождение сквозь стены) — вот это оно и есть
Количество таких плоскостей, как и многое другое в Half-Life, ограничено. Если число clipnode-плоскостей превышает максимально допустимое значение, то при компиляции возникнут ошибки.
В этой версии компиляторов, CSG анализирует использование clip-плоскостей на карте. Если в каких-то случаях возможно избежать их использования (например, func_illusionary не нуждается в использовании таких плоскостей), то такие clipnode-плоскости удаляются. Однако режим экономии clipnode не исключает появления ошибки MAX_MAP_CLIPNODES при компиляции, а просто уменьшает вероятность ее появления.
Подробнее об ошибке MAX_MAP_CLIPNODES Вы можете прочитать в статье 3.6.Ошибки компиляции.
Рассеянный свет
Эта функция позволяет создавать более реалистичное освещение с использованием объекта light_environment. При этом компилятор HLRAD использует информацию о цвете и интенсивности освещения не из стандартного параметра «_light», а из параметра «_diffuse_light» (Вы указываете цвет и яркость света, как обычно, но только в параметре «_diffuse_light»). В этом случае свет будет проецироваться не от солнца, а со всего неба, что должно сделать освещение более реалистичным.
Изменение теней объектов
Это новая функция в ZHLT Custom Build 1.7, позволяющая мапперу изменять прозрачность и цвет отбрасываемой брашевыми энтити-объектами тени.
Чтобы задействовать эту функцию необходимо выставить флаг «Opaque» в свойствах энтити-объекта, в параметре «zhlt_lightflags».
Далее необходимо отжать кнопку «Smart Edit» и добавить новый параметр по имени zhlt_customshadow. Данный параметр определяет прозрачность энтити-объекта, значения от 1.0 до 0.0 (где 1.0 непрозрачный объект (нормальная, полная тень), а 0.0 — абсолютно прозрачный объект (нет теней)).
Чтобы изменить цвет отбрасываемой тени (например, если Вы делаете эффект тени от цветного стекла), необходимо прописать не 1 параметр, а 3, которые определят цвет тени в формате RGB (Красный, Зеленый, Синий). Например, чтобы придать тени красный оттенок, необходимо прописать в свойствах 0.5 0.0 0.0. При указании значений более 1.0, компилятор HLRAD создасть что-то вроде люминисцентной тени.
Чтобы все это заработало вместе с отраженным светом (а по умолчанию с отраженным светом эти эффекты не работают), необходимо в строку запуска компилятора HLRAD добавить следующий параметр -customshadowwithbounce.
Если вместе с параметром -customshadowwithbounce Вы также используете параметр -sparse, то процесс компиляции может сильно затянуться. Рекомендуется вместе с параметром -customshadowwithbounce использовать параметр -nomatrix;
Параметр -customshadowwithbounce работает только с обычными (greyscale) тенями, т.е. с цветными не работает.
Конфигурационный WAD-файл
А вот и существенное нововведение по сравнению с обычными компиляторами ZHLT — конфигурационный WAD-файл.
Конфигурационный WAD-файл используется для хранения различных конфигураций текстурных файлов. Например, Вы можете создать конфигурацию текстур для одной Вашей карты и другую конфигурацию (записать другие текстуры) для другой.
Конфигурационный WAD-файл с именем WAD.CFG должен находиться в одной директории с компиляторами ZHLT Custom Build.
Предположим, что одновременно Вы создаете несколько карт, которые используют различные текстурные WAD-файлы. Что Вы вынуждены делать? Поработав над одной картой, Вы открываете параметры редактора и отключаете неиспользуемые другой картой текстуры и наоборот подключаете используемые. Поработав какое-то время со второй картой, Вы решаете вернуться и доделать первую карту, и опять открываете параметры редактора, отключаете-подключаете текстуры... — в общем очень неудобно.
Справиться с этой проблемой помогает конфигурационный WAD-файл.
Ниже мы приводим синтаксис этого файла.
имя_конфигурации
{
c:\путь\wad1.wad
c:\путь\wad2.wad
...
include c:\путь\wad3.wad
}
где:
Имя_конфигурации — любое имя (удобно называть конфигурацию по названию карты).
c:\путь\wad1.wad — полный путь к первому WAD-файлу
c:\путь\wad2.wad — полный путь ко второму WAD-файлу
include c:\путь\wad3.wad — параметр «include» означает, что текстуры из данного WAD-файла будут включены в BSP-файл карты.
Вы можете использовать любое количество конфигураций и записей о WAD-файлах.
Рассмотрим небольшой пример:
Предположим, что на нашей карте DE_MAP используются 3 стандартных WAD-файла (halflife.wad, liquids.wad и decals.wad) и один нестандартный (MAP.WAD), который мы изготовили самостоятельно. Тогда наша запись в файле WAD.CFG будет выглядеть следующим образом:
MAP
{
c:\Games\Half-Life\valve\halflife.wad
c:\Games\Half-Life\valve\liquids.wad
c:\Games\Half-Life\valve\decals.wad
include c:\Wads\map.wad
}
Перед компиляцией необходимо добавить следующий параметр к компилятору HLCSG: -wadconfig MAP.
Таким образом, получается, что во время компиляции, HLCSG увидит, что надо использовать конфигурацию по имени MAP, считает информацию из файла WAD.CFG и затем уже будет использовать текстуры из стандартных WAD-файлов, и включит текстуры из нашего WAD-файла (MAP.WAD).
Путь к файлу wad.cfg
Параметр -wadcfgfile позволяет вручную указать путь к файлу WAD.CFG (по умолчанию компиляторы ищут этот файл в своей директории или в директории с Half-Life). Если WAD.CFG находится у Вас в какой-то другой директории, то необходимо добавить параметр -wadcfgfile путь_к_файлу в строку запуска компилятора HLCSG.
Поддержка объекта info_compile_parameters
Данная версия утилит поддерживает использование на карте объекта info_compile_parameters. В свойсвах этого объекта можно указать параметры компиляции, вместо их указания в командной строке. Если у Вас нет данного объекта, информацию о нем необходимо дописать в FGD-файл.
Поддержка объекта info_texlights
Данная версия утилит поддерживает использование на карте объекта info_texlights. Данный объект используется вместо RAD-файла, в который записывается информация о светящихся текстурах на карте.
Переключаемые светящиеся текстуры
Отличное нововведение в версии ZHLT Custom Build 1.7 — переключаемые светящиеся текстуры. Теперь любая светящаяся текстура может мигать, пульсировать или просто быть включена/выключена, как обычная лампочка. Раньше это было не возможно, но сейчас с выходом Сustom Build 1.7, это стало реально.
Секрет заключается в следующем, в FGD-файл, в свойства брашевых энтити-объектов (например, func_wall, как самый распространенный) необходимо добавить следующий код:
style(choices) : "Texlight style" : 0 =
[
0 : "Normal"
-3: "Grouped"
10: "Fluorescent flicker"
2 : "Slow, strong pulse"
11: "Slow pulse, noblack"
5 : "Gentle pulse"
1 : "Flicker A"
6 : "Flicker B"
3 : "Candle A"
7 : "Candle B"
8 : "Candle C"
4 : "Fast strobe"
9 : "Slow strobe"
12: "Underwater"
]
Добавив этот код к объекту func_wall, в редакторе можно будет выбрать стиль для данного объекта.
Стиль Grouped предназначен для создания светящихся текстур, которые можно включить/выключить, как лампочку.
Итак, создаем func_wall, окрашиваем его светящейся текстурой (светящейся текстура станет только, если ее прописать в специальном RAD-файле, который затем подключить при компиляции), даем func_wall имя (например, WALL-1), ставим стиль «Grouped» и (ВНИМАНИЕ!) создаем около func_wall обычную лампочку light с таким же именем (WALL-1). Ставим яркость лампочки в 0.01.
В итоге компилятор, просчитывающий освещение, а это HLRAD будет думать, что свет излучает лампочка (light), а не светящаяся текстура. Чтобы выключить или включить освещение от текстуры необходимо активировать лампочку (light). Всего этого можно было бы не делать, если бы CS поддерживал переключаемые светящиеся текстуры, как это сделано, например, в Spirit of Half-Life.