Half-Life FX SDK
HLFX
Главная страница •  Обратная связь •  HLFX Онлайн Обновления SDK

Интеграция HLFX в Half-Life

Все эффекты HLFX можно условно разделить на две части: те, которые используюся в Half-Life автоматически (созданные изменением существующих объектов), и новые объекты, устанавливаемые на оригинальные уровни с помощью файлов конфигурации карты (mapconfigs). К первым относятся взрывы и шейдерная вода. Вторые – эффект линз, направленные лучи света, тени и электрифицированные шнуры. Рассмотрим подробно механизм установки их на карту.

При загрузке любого уровня выполняется скрипт hlfx.cfg, который устанавливает все параметры по умолчанию. Вы можете отредактировать его – эти изменения будут приняты игрой. После этого выполняется скрипт, специфичный для уровня (если он есть): «mapconfig/mapname.cfg». В нем вы можете указать любые команды, однако наибольшее применение находят следующие типы:

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

Рассмотрим их подробно.


create_lf posX posY posZ fadeDist Intensite Opacity
posX posY posZ – координаты эффекта в мире fadeDist – расстояние, с которого начинается ослепление игрока Intensite – размер линз (обычно от 4 до 8) Opacity – непрозрачность, от 1 до 255, обычно 80.
create_beam posX posY posZ width R G B A
posX posY posZ – координаты эффекта в мире width – ширина луча (обычно 2000) R G B A – цвет луча и прозрачность
create_light posX posY posZ dirX dirY dirZ movewithEnt fov appearance radius
posX posY posZ – координаты эффекта в мире dirX dirY dirZ – направление, в котором «смотрит» источник света и отбрасывает тени movewithEnt – имя объекта, с которым свет движется вместе, или NULL fov – поле «зрения» света, обычно 120-130 appearance – анимация прозрачности теней, аналогична одноименному параметру light radius – радиус, в котором отбрасываются тени (они также ослабляются по радиусу)
create_ew posX posY posZ angX angY angZ spriteName width A health dmg numSegments segmentLength
posX posY posZ – координаты эффекта в мире dirX dirY dirZ – направление, в котором создается шнур. Выберите его так, чтобы вся длина шнура вошла на карту, иначе он обрежется. spriteName – название спрайта шнура (wire1, wire2 или wire3) A – яркость шнура, подберите параметр так, чтобы она соответствовала освещению уровня. Обычно 80-100. Health – прочность сегмента (0 – шнур нельзя разорвать) Dmg – повреждения, наносимые шнуром за кадр. numSegments – количество сегментов шнура. segmentLength – длина одного сегмента.

Так выглядят команды в конфиге. Однако неудобно подбирать координаты и углы вручную, поэтому существуют дополнительные команды, существенно упрощающие эту задачу:

create_lf_assist fadeDist Intensite Opacity
create_beam_assist width R G B A
create_ew_assist spriteName width A health dmg numSegments segmentLength
create_light_assist fov appearance radius

Они создают базовую команду, где в качестве позиции используется позиция игрока, а в качестве углов (там, где они нужны) используются углы игрока. Базовая команда сразу же выполняется и выводится в консоли со словом «SYNTAX:». Вы можете сохранить содержимое консоли в файл (команда condump) и выбрать эти строки, затем вставить их в конфиг (естественно, без приставки «SYNTAX:»).

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

skip_bloodspot entityTargetName
Отключает расползающиеся пятна крови под монстром с указанным targetname. Это важно сделать для скриптов, убивающих монстров в конце, т.к. в таком случае пятно появится там, где находился монстр до выполнения скрипта (пример – поединок охранника и зомби в вентиляции на с1а3).
Copyright © Chain Studios, 2001-2006