урок 7.1
энтити объекты
Энтити (entity) — объекты, обладающие свойствами. Примеры энтитей: открывающаяся дверь, кнопка, источник света (лампочка), звук, машина — у всех этих объектов есть свойства (скорость, громкость и пр.).
При помощи энтити-объектов мы можем сделать карту более интересной — добавить в нее звуки, сделать воду и прочие спецэффекты.
Но энтити это не только спецэффекты, но и объекты, управляющие событиями на карте. Например, чтобы сделать карту с бомбой нужно вставить на нее энтити-объект одного типа, а если с заложниками — другого.
К слову сказать, ни одна карта в Counter-Strike не обходится без использования хотя бы нескольких энтити-объектов, поэтому их изучение не менее важная часть, чем усвоение техники создания карт, которая описывается в Учебнике.
Классы энтити-объектов
Всего для создания CS-карт может быть использовано 118 энтити-объектов, которые разбиты на 7 классов. Класс, к которому принадлежит тот или иной энтити-объект, указывается в названии, например:
func_door — объект класса func
info_target — объект класса info
game_text — объект класса game
Список классов энтити-объектов:
env
func
game
info
trigger
xen
все остальные
Для создания самой простой карты необходимо знать от 3 до 5 энтити-объектов. Для более сложной карты потребуется знание 15-20 объектов. Ну, а обычно число различных объектов на карте не превышает 25-30.
Где хранятся описания энтитей
Все энтити описаны в файле с расширением *.fgd (game definition file). Существуют 2 таких файла: стандартный и расширенный (экспертный), в котором добавлено несколько новых видов энтитей и изменены некоторые свойства уже существующих. Его мы и рекомендуем использовать
Проверить номер версии своего FGD-файла можно, открыв его в Блокноте, — номер написан во второй строке сверху.
Энтити точечные, энтити брашевые
Энтити-объекты интересны тем, что могут выглядеть, как обычные браши, также они могут быть прозрачными, а могут вообще не иметь размеров! Все зависит от типа энтити-объекта. Давайте разберемся какие же существуют типы энтити-объектов.
Энтити-объекты делятся на два типа:
Брашевые (brush-based или материальные энтити)
Точечные (point-based или нематериальные)
Брашевые (brush-based) энтити
Брашевые (brush-based) энтити — это энтити, в основе которых лежит браш. Обычно такие энтити мы можем увидеть в игре, но бывают и такие, которые видны только в редакторе карт, но не в игре.
Примеры: машина, дверь, стекло, кнопка (это видимые энтити); триггеры (невидимые энтити)
Грубо говоря, брашевые энтити — это браши со свойствами.

Точечные (point-based) энтити
Точечные (point-based) энтити — это энтити невидимые в игре, их размер не имеет значения, главное у таких объектов — свойства.
Примеры: звуки, источники света, места рождения игроков и др.
В редакторе точечные энтити изображаются в виде прямоугольников (квадратов) фиолетового цвета, а в трехмерном виде — иконками. На рисунке ниже приведены примеры иконок из 3D-вида редактора: место рождения контра, источник звука, источник света (слева направо).

В игре Вы не увидите никаких иконок, но объекты существуют и выполняют свои функции.
Редактирование свойств энтитей
Свойства энтити-объектов вызываются сочетанием клавиш [Alt-Enter] или в 2d-виде в меню правой кнопки мыши, пункт Properties. Прежде чем вызывать свойства энтити-объекта, его необходимо выделить (что вполне логично :).
Свойства всех энтити-объектов выглядят примерно так:

Пояснения к рисунку:
Class
Название энтити-объекта. В начале названия идет класс, а через знак подчеркивания «_» название самого объекта. Превратить один объект в другой проще простого. Просто выбирете в списке другой объект.
Attributes
Свойства объекта. У каждого объекта есть как свои собственные свойства, так и общие, которые есть у большинства объектов. К общим свойствам можно отнести: Name и Target.
Name
Имя объекта. Имя нужно давать объекту в том случае, если он будет активироваться (включаться/выключаться) другим объектом.
Target
В это поле записывается имя того объекта, который должен быть активирован. Например, у нас есть лампочка с именем LAMP и кнопка. Чтобы лампочка включалась от нажатия на кнопку, необходимо прописать имя LAMP в параметр «Target» кнопки.
Помните, что не обязательно выставлять все свойства, имеющиеся у объекта, достаточно указать только необходимые. Часто бывает так, что объект имеет, скажем, 10-15 свойств, из которых действительно полезны и часто применяемы лишь 2-3.
Angle
Для некоторых объектов (источники света, некоторые типы дверей, кнопки и др.) важным параметром является «Angle» (см. рис. выше), устанавливающий направление действия объекта (сторону открытия дверей, направление световых лучей и т.п.) Вы можете указывать направление градусами или в черном кружке, задавая необходимый угол черточкой.
Кнопка Smart Edit
«Smart Edit» — это кнопка, переключающая режимы отображения свойств энтити-объектов. По умолчанию «Smart Edit» нажата, и Вы видите свойства любого объекта, как показано на рисунке выше. Для некоторых же объектов таких свойств нет. В этом случае необходимо отжать «Smart Edit» и производить изменение свойств в несколько менее удобном виде (но ничего не поделаешь, хорошо хоть объектов таких всего пара штук). Но на первых порах с такими объектами Вы встречаться не будете. Просто имейте это в виду.
Закладка Flags
Многие энтити наряду со свойствами имеют флаги (дополнительные параметры). Флаги выставляются в закладке «Flags». Например, для звука существует флаг «Play everywhere» (чтобы звук играл по всей карте). Флаги, так же как и свойства, могут быть различными у разных объектов. И опять же, не стоит выставлять все флаги — только необходимые.

На последок хочется сказать, что не все объекты работают правильно и не глючат. Если у Вас что-то не получается, просто попробуйте реализовать свою идею при помощи других объектов. Проявите изобретательность, свойственную русскому человеку! :)
Большинство брашевых энтити-объектов таких как: func_door, func_illusionary, func_wall и мн. др. имеют в свойствах параметры отображения, которые отвечают за то, как данный объект будет выглядеть в игре (будет ли он прозрачным или полностью невидимым и т.п.) Об этих важных параметрах и пойдет речь в данной статье.
1. Основные параметры
Основных параметров четыре: Render FX, Render Mode, FX Amount, FX Color. Эти параметры нужно выставлять по мере необходимости. Например, если Вы хотите сделать стекло или прозрачную решетку, то для этого необходимо будет изменить некоторые из этих параметров. Совсем необязательно менять параметры отображения для каждого объекта, делайте это только в необходимых случаях.
a) Render FX
Render FX позволяет менять визуальный режим работы объекта.
На выбор у Вас есть следующие варианты:
Normal — нормальный
Slow Pulse — медленная пульсация
Fast Pulse — быстрая пульсация
Slow Wide Pulse — медленная широкая пульсация
Fast Wide Pulse — быстрая широкая пульсация
Slow Fade Away — медленное затухание (исчезновение)
Fast Fade Away — быстрое затухание (исчезновение)
Slow Become Solid — медленное превращение в сплошную среду
Fast Become Solid — быстрое превращение в сплошную среду
Slow Strobe — медленный стробоскопический свет
Fast Strobe — быстрый стробоскопический свет
Faster Strobe — еще более быстрый стробоскопический свет
Slow Flicker — медленное мерцание
Fast Flicker — быстрое мерцание
Constant Glow — постоянное (непрерывное) свечение
Distort — искажение
Hologram (Distort + fade) — голограмма (искажение + исчезновение)
Когда используется режим:
Данный параметр будет полезен в тех случаях, когда необходимо сделать мерцающий свет, свечение вокруг лампочек (например, при использовании объекта env_glow) или голографическое изображение.
б) Render Mode (запомнить!)
Render Mode отвечает за то, как будет выглядеть объект в игре.
Существует 6 режимов отображения:
1. Normal — обычное (нормальное) отображение;
2. Color — при выборе этого режима отображения, все текстуры на объекте будут заменены одним цветом, который можно выбрать в параметре «FX Color». Уровень прозрачности объекта устанавливается в параметре «FX Amount». Данный режим не действует на модели монстров (но это к CS не относится);
3. Texture — этот режим позволяет сделать объект полупрозрачным (например, применяется для создания стекол из func_breakable или func_wall). Уровень прозрачности объекта устанавливается в параметре «FX Amount»;
4. Glow — этот режим вместе с использованием объекта env_glow позволяет создать эффект свечения (дымки) вокруг источников света. Уровень прозрачности свечения (дымки) устанавливается в параметре «FX Amount», а цвет — в «FX Color»;
5. Solid — этот режим применяется к объектам, окрашенным текстурами с маской (названия таких текстур начинаются с фигурной скобки «{», например, {LADDER1 или {FENCE). Применяются такие текстуры и объекты для создания вертикальных лестниц, прозрачных решеток, заборов и т.п. Синие части текстур будут в игре прозрачными, если выбран режим: «Render Mode» — Solid и «FX Amount» — 255
6. Additive — этот режим схож с режимом «Texture», но в отличии от него позволяет видеть сквозь объект (используется наряду с режимом Texture при создании воды из func_water).
в) FX Amount (запомнить!)
FX Amount изменяет прозрачность объекта. Значения этого параметра от 0 до 255.
FX Amount = 0 (объект будет абсолютно прозрачен, невидим в игре)
FX Amount = 255 (объект непрозрачен).
Все остальные значения от 0 до 255 придают объекту различную степень прозрачности.
г) FX Color
Для режимов отображения «Color» и «Glow» (см. выше пункты 2 и 4 параметра «Render Mode») определяет цвет объекта.
2. Дополнительные параметры отображения
(Доступны только при использовании компиляторов ZHLT).
а) Light Flags — флаги освещения.
По умолчанию все энтити пропускают свет, т.е. не отбрасывают теней. Например, если на карте есть ящик, сделанный из func_wall, то в игре отбрасывать тень он не будет. Если тень нужна, необходимо изменить значение флагов освещения с Normal, например, на Opaque (Block Light).
Будьте внимательны при использовании флага (3) — Opaque (Block Light). Если выставить этот флаг для разрушаемых объектов func_breakable или передвигаемых func_pushable (также это относится ко всевозможным платформам, поездам, автомобилям), то при разрушении/передвижении таких объектов тень останется на месте! Поэтому мы НЕ рекомендуем ставить флаги освещения для таких объектов.
1. Normal — по умолчанию (объект не отбрасывает теней);
2. EmbeddedFix — не использовать сложную коррекцию освещения. Иногда брашевый объект, проходящий сквозь стену, бывает неправильно освещен. Используйте этот флаг для избежания подобной ситуации;
3. Opaque (Block Light) — объект отбрасывает тени. Делает объект «непрозрачным», в результате чего он начинает отбрасывать тень. Полезно использовать этот флаг для func_wall, некоторых func_illusionary, func_door и, возможно, других объектов для достижения различных эффектов;
4. Opaque + Embedded Fix — это комбинация предыдущих двух флагов;
5. Opaque + Concave Fix — используется для искривленных объектов func_wall, особенно арок. Когда эти объекты имеют флаг непрозрачности Opaque (3), внутренняя сторона арки (вогнутая часть) будет иметь темные края, особенно в местах стыковки брашей. Установка флага ConcaveFix решает проблему темных швов, однако объект не может использовать флаг EmbeddedFix при этом.
б) Light Origin — устанавливает выборочное месторасположение света.
Light Origin можно использовать с целью расположения брашевого объекта в любом месте для расчета освещения. Фактически объект никуда не передвигается, однако освещение (тень) рассчитывается так, как будто объект присутствует в другом месте.
Для использования установите объект info_target в нужном месте, дайте ему имя, а затем впишите это имя в параметр «Light Origin». Если объект непрозрачен (установлен флаг (3) — Opaque (Block Light)), объект будет отбрасывать тень в двух местах: в месте, где он сам находится, и в месте, где находится info_target.
в) Minimum light level (иногда встречается _minlight) — устанавливает минимальную освещенность для всех поверхностей объекта.
Можно использовать этот параметр для объектов, находящихся в темных местах карты, чтобы он (объект) не был абсолютно черным и плохо видимым. При использовании значения большего нуля все стороны (поверхности) объекта будут освещены одинаково, что выглядит несколько не правдоподобно.
г) _fade (есть только у объектов light, light_environment, light_spot).
Устанавливает уровень затемнения для источников света на карте (бОльшее значение приводит к меньшему распространению света).
Этот параметр является коэффициентом в формуле для расчета затемнения (1/расстояние2). С его помощью можно регулировать расстояние, на которое распространяется прямой свет на карте. Отдельные объекты освещения могут иметь собственные значения затемнения.
Данный параметр влияет только на прямое освещение, так как отраженный свет всегда имеет формулу затемнения (1/расстояние2). Значение по умолчанию 1.0; при приближении к 0.0 свет будет распространяться дальше, чем обычно; а при превышении 1.0 свет будет распространяться меньше.
д) _falloff (есть только у объектов light, light_environment, light_spot).
Данны параметр позволяет изменить формулу для расчета затемнения (1 = 1/расстояние; 2 = 1/расстояние2).
3. Параметры отображения основных объектов
Для удобства Вы можете воспользоваться рисунком ниже, на котором изображены основные объекты и параметры их отображения. Для остальных объектов параметры отображения выставляются по мере необходимости.
