Объект move_rope используется для создания верёвок и канатов.
Особенности использования:
- Этот объект НЕ обновляется в каждом раунде. Это означает что любые изменения объекта будут наследоваться в последующих раундах. Удаление объекта в одном из раундов удаляет объект на все последующие раунды.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов.
- Для работы этого объекта в свойстве "Next KeyFrame" должно быть указано имя какого-либо объекта keyframe_rope.
- Верёвки в игре не могут ни с чем взаимодействовать, кроме World-геометрии.Ошибки:
не обнаружены.
Свойства:
Next KeyFrame – имя объекта keyframe_rope, к которому будет идти продолжение верёвки;
Type – тип верёвки:
Rope – обычная верёвка;
Semi-rigid – полутвёрдая верёвка; влияет на внешний вид провиса верёвки;
Rigid – твёрдая верёвка; верёвка полностью прямая, свойство "Slack" не используется;
Width – толщина верёвки;
Slack – провис верёвки; чем меньше значение этого свойства, тем меньше провис; не зависит от расстояния между начальной и конечной точкой верёвки в редакторе; это свойство не используется, если свойство "Type" равно "Rigid";
Subdivision – насколько гладкой будет выглядеть верёвка в процессе игры; 8 - максимальное значение; чем ниже значение этого свойства, тем глаже выглядит верёвка, однако это может привести к чуть большей нагрузке на видеокарту;
Barbed – верёвка будет выглядеть неровной и колючей (Нет/Да);
Collide with World – верёвка может сталкиваться с World-геометрией карты (Нет/Да);
Start Dangling – открепить верёвку от конца;
Breakable – верёвка может быть оборвана, например взрывом гранаты;
Rope Material - имя файла материала, применяемого для рисования верёвки (выбирается в окне Textures); для имён файлов материалов всегда добавляйте окончание ".vmt", если оно не указано;
Texture Scale – масштаб текстур материала "Rope Material" вдоль верёвки; 1.0 – текстура накладывается на каждые 4 юнита длины верёвки; 4.0 – текстура накладывается на каждые 16 юнитов длины верёвки и т.д.;
Position Interpolator – используется только редактором Hammer для различных способов отображения всей последовательности верёвок move_rope - keyframe_rope; не используется игрой CS:S;
Linear – линейное отображение; все верёвки – прямые линии;
Catmull-Rom Spline – отображение вершинными сплайнами; все верёвки выглядят как одна, с плавным переходами в точках объектов keyframe_rope;
Rope – отображение верёвок на основе провисов - свойства "Slack"; верёвки выглядят в редакторе так же как они будут отображены в игре;
Angles Fix (Read-Only) – используется только для того, чтобы в редакторе Hammer не выводилось сообщение об ошибке:
Entity (keyframe_rope) has unused keyvalue "angles"
не используется игрой CS:S;
Rope Hack (Read-Only) – используется только для того для того, чтобы в редакторе Hammer отображались верёвки; не используется игрой CS:S;
Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.Inputs:
Break – разорвать верёвку в точке этого объекта; верёвка будет разорвана на все последующие раунды;
SetForce <vector> - <ForceX ForceY ForceZ> толкнуть верёвку с указанными силами; ForceX - толкнуть верёвку по оси X с силой равной "ForceX"; ForceY - толкнуть верёвку по оси Y с силой равной "ForceY"; ForceZ - толкнуть верёвку по оси Z с силой равной "ForceZ".
Объект keyframe_rope используется для создания продолжения для верёвки move_rope.
Особенности использования:
- Этот объект НЕ обновляется в каждом раунде. Это означает что любые изменения объекта будут наследоваться в последующих раундах. Удаление объекта в одном из раундов удаляет объект на все последующие раунды.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов.
- Для работы этого объекта он должен быть указан в свойстве "Next KeyFrame" хотя бы у одного объекта move_rope.
- Копирование объекта при помощи перетаскивания (зажимая клавишу "Shift") автоматически заполняет свойства "Name" и "Next KeyFrame". Это выполняется только тогда, когда этот объект прикреплён хотя бы к одному объекту move_rope.
- Верёвки в игре не могут ни с чем взаимодействовать, кроме World-геометрии.Ошибки:
не обнаружены.
Свойства:
Next KeyFrame – имя объекта keyframe_rope, к которому будет идти продолжение верёвки;
Type – тип верёвки:
Rope – обычная верёвка;
Semi-rigid – полутвёрдая верёвка; влияет на внешний вид провиса верёвки;
Rigid – твёрдая верёвка; верёвка полностью прямая, свойство "Slack" не используется;
Width – толщина верёвки;
Slack – провис верёвки; чем меньше значение этого свойства, тем меньше провис; не зависит от расстояния между начальной и конечной точкой верёвки в редакторе; это свойство не используется, если свойство "Type" равно "Rigid";
Subdivision – насколько гладкой будет выглядеть верёвка в процессе игры; 8 - максимальное значение; чем ниже значение этого свойства, тем глаже выглядит верёвка, однако это может привести к чуть большей нагрузке на видеокарту;
Barbed – верёвка будет выглядеть неровной и колючей (Нет/Да);
Collide with World – верёвка может сталкиваться с World-геометрией карты (Нет/Да);
Start Dangling – открепить верёвку от конца;
Breakable – верёвка может быть оборвана, например взрывом гранаты;
Rope Material - имя файла материала, применяемого для рисования верёвки (выбирается в окне Textures); для имён файлов материалов всегда добавляйте окончание ".vmt", если оно не указано;
Texture Scale – масштаб текстур материала "Rope Material" вдоль верёвки; 1.0 – текстура накладывается на каждые 4 юнита длины верёвки; 4.0 – текстура накладывается на каждые 16 юнитов длины верёвки и т.д.;
Angles Fix (Read-Only) – используется только для того, чтобы в редакторе Hammer не выводилось сообщение об ошибке:
Entity (keyframe_rope) has unused keyvalue "angles"
не используется игрой CS:S;
Rope Hack (Read-Only) – используется только для того для того, чтобы в редакторе Hammer отображались верёвки; не используется игрой CS:S;
Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.Inputs:
Break – разорвать верёвку в точке этого объекта; верёвка будет разорвана на все последующие раунды;
SetForce <vector> - <ForceX ForceY ForceZ> толкнуть верёвку с указанными силами; ForceX - толкнуть верёвку по оси X с силой равной "ForceX"; ForceY - толкнуть верёвку по оси Y с силой равной "ForceY"; ForceZ - толкнуть верёвку по оси Z с силой равной "ForceZ".
Объект momentary_rot_button используется для создания кнопок, которые вращаются при удерживании клавиши "Использовать" на них. Если отпустить клавишу "Использовать", то кнопка автоматически может возвратиться в своё начальное положение.
Особенности использования:
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов.
- Объект НЕ отбрасывает Lightmap-тени и динамические тени.
- Объект может использовать или не использовать свою модель столкновений. Выбирается в процессе создания карты.
- Объект может пересекаться с другими Brush-объектами.
- Объект может быть покрыт любым материалом.Ошибки:
не обнаружены.
Свойства:
Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
Pitch Yaw Roll (Y Z X) – углы на которые будет повёрнут объект в начале каждого раунда;
Start Position – (от 0 до 1.0) начальная позиция кнопки в начале каждого раунда; 0.0 – кнопка считается повёрнутой на угол 0 градусов; 1.0 – кнопка считается повёрнутой на угол "Rotation Distance";
Start Direction – направление в котором будет вращаться кнопка при активации (Вперёд/Назад);
Rotation Distance (deg) – на сколько градусов может поворачиваться кнопка при активации;
Rotation Speed (deg/sec) - скорость поворота активированной кнопки (градусов в секунду);
Auto-Return Speed (deg/sec) – скорость автоматического возврата кнопки; если значение это свойства равно 0, то кнопка будет работать точно так же как при включенном флажке "Toggle", даже если он не установлен; не используется если установлен флажок "Toggle";
Sounds – звук, который воспроизводится при нажатии на кнопку;
Solid Type – тип модели столкновений этого объект с другими объектами и игроками:
VPhysics – модель столкновений VPhysics; другие объекты, касающиеся этого объекта, не смогут сохранять своё точное положение относительно этого объекта, когда этот объект движется или вращается;
BSP – модель столкновений BSP; эта модель столкновений, в отличие от VPhysics, позволяет другим объектам, касающимся этого объекта, сохранять своё точное положение относительно этого объекта, когда этот объект движется или вращается;
Render Mode – режим рендеринга объекта;
FX Color (R G B) – цвет объекта;
FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
Disable Receiving Shadows – отключить динамические тени от других объектов на этом объекте;
Minimum Light Level – минимальный уровень освещённости этого объекта; высокое значение этого свойства приведёт к тому, что объект станет очень ярким, будет хорошо заметен в темноте и на нём не будут различаться Lightmap-тени от других объектов; используется только в процессе компиляции карты;
Origin (X Y Z) – точка опоры объекта (указывается при помощи Helper’а); вокруг этой точки объект будет вращаться.Флажки:
Not Solid – объект не имеет модели столкновений; если установлен этот флажок, то свойство "Solid Type" не используется;
Toggle – игрок сам поворачивает кнопку в обратном направлении; если установлен этот флажок, то свойство "Auto-Return Speed" не используется;
X Axis – кнопка вращается по оси X; если установлен этот флажок, то флажок "Y Axis" не используется;
Y Axis – кнопка вращается по оси Y; не используется, если установлен флажок "X Axis";
Use Activates – кнопку можно активировать клавишей "Использовать";
Starts Locked – блокировать кнопку в начале каждого раунда;
Jiggle When Used While Locked – если игрок попытается использовать кнопку когда кнопка заблокирована, то в течение полу-секунды кнопка будет покачиваться, создавая анимацию, имитирующую попытки игрока повернуть кнопку.Inputs:
Enable – включить объект;
Disable – выключить объект;
SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
Lock – заблокировать кнопку;
Unlock – разблокировать кнопку;
SetPosition <float> - (от 0.0 до 1.0) повернуть кнопку на указанную позицию; кнопка поворачивается со скоростью "Rotation Speed"; не издаются звуки "Sounds"; после поворота функция автоматического возврата не применяется;
SetPositionImmediately - (от 0.0 до 1.0) моментально повернуть кнопку на указанную позицию; не издаются звуки "Sounds"; после поворота функция автоматического возврата не применяется;
Color <R G B> - установить новое значение свойства "FX Color";
Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha".Outputs:
Position <float> - выполняется тогда, когда кнопка вращается; возвращает изменённую позицию кнопки в виде дробного числа от 0 до 1, относительно максимально допустимого поворота кнопки;
OnPressed – выполняется тогда, когда игрок начинает использовать кнопку;
OnUnpressed – выполняется тогда, когда игрок перестаёт использовать кнопку;
OnUseLocked - выполняется тогда, когда кнопка заблокирована и её пытаются активировать;
OnFullyClosed – выполняется тогда, когда игрок останавливает кнопку в позиции 1.0; при автоматическом возврате это событие не выполняется; это событие выполняется до 10 раз в секунду если игрок продолжает удерживать клавишу "Использовать";
OnFullyOpen - выполняется тогда, когда игрок останавливает кнопку в позиции 0.0; при автоматическом возврате это событие не выполняется; это событие выполняется до 10 раз в секунду если игрок продолжает удерживать клавишу "Использовать";
OnReachedPosition - выполняется всегда, когда кнопка достигает позиции указанной функцией "SetPosition"; другие функции и игрок не могут способствовать выполнению этого события.
Объект multisource используется для разрешения или запрещения работы следующих объектов:
- func_button
- func_door
- func_door_rotating
- func_rot_button
- game_end
- game_player_equip
- game_score
- game_text
- game_zone_player
Состояние объекта multisource зависит от указанной глобальной переменной. Если глобальная переменна имеет значение "ON" (включена), то этот объект multisource считается включенным. Если глобальная переменна имеет значение "OFF" (выключена) или "DEAD" (удалена), то этот объект multisource считается выключенным. Глобальные переменные могут создаваться и изменяться при помощи объектов env_global.
Особенности использования:
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект может быть установлен в любом месте на карте.
- На карте может быть установлено множество этих объектов.
- Если для этого объекта не будет указано свойство "Global State to Read", то этот объект multisource будет считаться всегда включенным.
- Один объект multisource могут использовать в качестве мастера максимум 32 других объекта.Ошибки:
не обнаружены.
Свойства:
Global State to Read – имя глобальной переменной, состояние которой должно быть равно "ON", чтобы этот объект multisource считался включенным; если это свойство не указано, то этот объект multisource будет считаться всегда включенным; глобальную переменную можно установить и контролировать на карте при помощи объекта env_global.Inputs:
Use – выполнить событие "OnTrigger"; эту функцию могут вызывать только объекты, которые используют этот объект в качестве мастера.Outputs:
OnTrigger – выполняется сразу после выполнения функции "Use".
Объект hostage_entity используется для создания заложников. Заложники должны быть спасены командой Контр-Террористов на CS-картах.
Особенности использования:
- Этот объект является специфическим для игры CS:S.
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- Объект не должен задевать никакие другие объекты и World-геометрию, иначе заложник может не появиться во время игры.
- Внешний вид заложников выбирается игрой автоматически в начале каждого раунда.Ошибки:
не обнаружены.
Свойства:
Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
Pitch Yaw Roll (Y Z X) – направление в котором будет смотреть заложник;
Min Damage to Hurt – объект будет игнорировать любые типы повреждений со стороны других объектов и игрока, если величина этих повреждений меньше значения этого свойства;
Damage Filter - имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту; (см. filter_damage_type и/или filter_multi);
Render Mode – режим рендеринга объекта;
FX Color (R G B) – цвет объекта;
FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
Disable Shadows – отключить динамические тени, отбрасываемые этим объектом (Нет/Да);
Shadow Cast Distance - максимальное расстояние на которое распространяются динамические тени от этого объекта;
Fade Start Dist – расстояние от игрока до объекта, с которого объект начнёт плавно исчезать, а полностью исчезнет на расстоянии "Fade End Dist"; это расстояние должно быть меньше чем "Fade End Dist", но в игре они будут автоматически поменяны местами, если это не так; если значение этого свойства меньше нуля, то оно будет автоматически изменено и станет равным "Fade End Dist" - 400;
Fade End Dist – расстояние от игрока до объекта, на котором объект становится полностью не видимым, начав исчезать с расстояния "Fade Start Dist"; если значение этого свойства меньше или равно нулю, то функция исчезновения будет отключена для этого объекта;
Fade Scale – множитель для значений исчезновения объекта по умолчанию, используемых если:
- движок запущен в режиме DX7 и ниже;
- параметры исчезновения объектов настраиваются в объекте worldspawn (Hammer > Main menu > Map > Map properties...);
- движок будет использовать свои значения по умолчанию, когда свойства "Fade Start Dist" и "Fade End Dist" не указаны;
во всех этих случаях можно контролировать исчезновение объекта вручную:
0.0 – полностью отключить исчезновение, объект виден на любом расстоянии;
меньше 1.0 – исчезновение начнётся с большего расстояния и будет более растянутым по времени;
больше 1.0 – исчезновение объекта начнётся на меньшей дистанции и будет выполнено быстрее обычного.Inputs:
SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
Ignite – поджечь заложника;
OnRescueZoneTouch – спасти заложника как если бы Контр-Террорист вывел его в зону безопасности; если в момент вызова этой функции заложника вёл за собой какой-либо игрок команды Контр-Террористов, то этому игроку будут добавлены деньги за спасение заложника;
SetDamageFilter <string> - установить новое значение свойства "Damage Filter";
Color <R G B> - установить новое значение свойства "FX Color";
Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";
EnableShadow – включить динамические тени от объекта;
DisableShadow – выключить динамические тени от объекта;
FadeMinDist <float> - установить новое значение свойства "Fade Start Dist";
FadeMaxDist <float> - установить новое значение свойства "Fade End Dist".Outputs:
OnIgnite - выполняется тогда, когда заложник воспламеняется при вызове функции "Ignite".
OVERVIEW карты – это уменьшенный вид карты сверху. По сути OVERVIEW может быть любой картинкой, которая в целом должна соответствовать карте.
Отсутствие OVERVIEW на карте сильно снижает её общую оценку карты, поэтому умение создавать OVERVIEW является одним из базовых умений для любого как начинающего, так уже и относительно опытного маппера.
Особенности использования:
- Создаётся частично в игре и частично в графическом редакторе, например: Adobe Photoshop.
- Хранится сразу в нескольких файлах:
1. "<имя_карты>.vtf" в папке /materials/overviews/ - картинка карты;
2. "<имя_карты>.vmt" в папке /materials/overviews/ - материал карты;
3. "<имя_карты>_radar.vmt" в папке /materials/overviews/ - материал для радара карты;
4. "<имя_карты>.txt" в папке /resource/overviews/ - настройки позиционирования.
- Если OVERVIEW не создан, то в консоли будет сообщаться об этом каждый раз при загрузке карты:
Error! CMapOverview::SetMap: couldn't load file resource/overviews/<имя_карты>.txt
Хинты (HINTS) – это средство оптимизации карты. Хинты являются обычными плоскостями и помогают компилятору VBSP делить карту на листья (Leaves), тем самым существенно сокращая время компиляции карты, иногда до нескольких раз.
В компьютерной графике листья (Leaves) по-другому называются Порталами (Portals).Если на карте не устанавливать Хинты, то компилятор VBSP самостоятельно разделит карту на листья (Leaves). При этом может быть создано большое количество ненужных листьев (Leaves), что будет снижать общую производительность карты.
При использовании Хинтов, автор карты явно указывает где и как должны быть созданы листья (Leaves), тем самым избавляя компилятор VBSP от "лишней" работы и создания ненужных листьев (Leaves). Это повышает общую производительность карты и сокращает время компиляции карты.Обратите внимание, что Хинты являются основным средством оптимизации карты.
Хинты можно и нужно применять практически на всех картах. Уделите этой теме больше внимания при изучении, для того чтобы лучше понимать как и когда нужно использовать Хинты.Хинты создаются следующим образом:
- Создаётся обыкновенный World-браш (любой формы).
- Те стороны этого браша, которые будут являться Хинтами, нужно покрыть материалом tools/toolshint. Такие стороны называются HINT-поверхностями.
- Те стороны этого браша, которые должны будут игнорироваться компилятором, нужно покрыть материалом tools/toolsskip. Такие стороны называются SKIP-поверхностями.SKIP-поверхности просто удаляются компилятором во время компиляции карты, поэтому использование SKIP-поверхностей позволяет ещё больше сократить время компиляции карты.
SKIP-поверхности используются только совместно с HINT-поверхностями. Если попробовать использовать SKIP-поверхности как-то иначе, то они не будут обработаны компилятором.
Особенности использования:
- Хинты используются только компилятором VBSP и только на этапе компиляции карты. Компилятор VBSP использует только World-геометрию, игнорируя все объекты на карте. Каждая поверхность World-геометрии, так же как и Хинты, делит пространство карты на листья (Leaves), поэтому Хинты должны устанавливаться на карте относительно World-геометрии, а не относительно объектов карты.
- Хинты могут пересекаться друг с другом и World-геометрией в любых точках и под любым углом.
- Хинты должны быть установлены там, где будут использоваться.
- На карте может быть установлено множество Хинтов.Ошибки:
не обнаружены.Как работают Порталы (Leaves):
Порталы (листья для BSP-дерева) используются во многих современных игровых движках и предназначены для отсечения невидимых частей карты. Портал – это обыкновенная трёхмерная область. Если игрок не может видеть какой-то портал, то движок не будет рисовать все те объекты, поверхности и прочие составляющие карты, которые находятся внутри "невидимого" портала. Таким образом существенно снижается нагрузка на видеокарту и повышается быстродействие карты.
Например: если игрок будит находиться внутри дома, то сквозь стены он не сможет увидеть то, что находится на улице, поэтому игровой движок не будет рисовать улицу, когда игрок будет находиться внутри дома.
Игровой движок заблаговременно разделяет всю карту на порталы. На этом этапе в движке Source применяются Хинты. Порталы не могут пересекаться друг с другом, поэтому игрок в один момент времени может находиться только внутри какого-то одного портала. В движке Source, если две HINT-поверхности пересекутся друг с другом, то будет создано минимум 4 разных портала. После создания всех порталов, движком начинается процесс проверки "видимости" порталов. Во время этого процесса определяется: какие порталы могут быть видны из других порталов. Чтобы лучше понять как протекает этот процесс, представьте, что вы, находясь внутри какого-то портала, летаете внутри него и постоянно смотрите по сторонам, чтобы увидеть другие порталы. Те порталы, которые вы увидите, и будут являться "видимыми". Эта операция повторяется для каждого портала, таким образом находятся все видимые и невидимые части карты в любой точке карты.
Нужно отметить, что во многих современных игровых движках (движок Source – не исключение) порталы могут иметь состояния: открыт или закрыт. Если портал закрыт, то все другие порталы, которые находятся за ним, не будут рисоваться. Закрытые порталы по-другому можно представлять как стены, за которыми ничего не должно быть видно. Открытие и закрытие порталов может изменяться прямо во время игры. Открытые порталы, как правило, расходуют дополнительные ресурсы компьютера, поэтому большое количество одновременно открытых порталов может существенно снизить быстродействие карты. В движке Source для создания "переключающихся" порталов используются объекты func_areaportal и func_areaportalwindow.
Есть простое правило: если портал находится в открытом состоянии на протяжении долгого времени (или всего времени игры на карте) и в течение этого времени нет возможности закрывать такой портал, то этот портал не нужно делать переключаемым. Лучше чтобы это был обыкновенный портал.
Применяя это правило для движка Source, можно сказать, что если объекты func_areaportal или func_areaportalwindow большую часть времени остаются открытыми, то такие объекты будут снижать быстродействие карты, а не увеличивать его.
Объект gibshooter используется для запуска предопределённых gib-объектов (черепов) так, как если бы они вылетали из пушки. При этом gib-объекты могут вращаться в выбранном направлении и с выбранной скоростью.
Особенности использования:
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов.Ошибки:
не обнаружены.Заметки:
Анимация движения gib-объектов может быть не очень гладкая. Это результат оптимизации игры CS:S для режима On-Line и ограничения сетевого трафика для игроков.
Каждый движущийся по карте объект создаёт не малый сетевой трафик, а при перегруженной карте сервер просто не справится с исходящим потоком, либо у всех игроков начнутся неимоверные лаги. Тесты показали, что если каждую секунду создавать по 50 gib-объёктов, то сетевой трафик может превысить 30 Кбайт/сек, а число входящих пакетов превысить 1000! Это очень много и создаёт огромную нагрузку на сервер. Проверить клиентский трафик вы можете выполнив в консоли команду "net_graph 2".
Свойства:
Simulate – модель столкновений gib-объектов с окружающим миром;
Point – модель столкновений рассчитывается как точка;
Physics – выбирается модель столкновений предопределённого gib-объекта (черепа);
Gib Direction (Pitch Yaw Roll) – направление полёта gib-объектов;
Gib Direction Variance – на сколько сильно может быть изменено направление полёта gib-объектов при каждом выстреле (от 0.0 до 1.0); 0 – все gib-объекты будут лететь строго в направлении, указанном в свойстве "Gib Direction"; 0.5 – направление полёта очередного gib-объекта может быть отклонено на 45 градусов от направления "Gib Direction" и т.д.;
Gib Angles (Pitch Yaw Roll) – gib-объекты перед выстрелом будут повёрнуты на эти углы; используется только если свойство "Simulate" равно "Point" или "Physics";
Number of Shots – количество выстрелов в очереди;
Delay Between Shots – задержка между каждым выстрелом в очереди (секунды);
Gib Life – время жизни gib-объектов (секунды); это время указывается не точно и может отличаться для каждого gib-объекта примерно на +/- 5%;
Gib Velocity – скорость, прикладываемая к gib-объектам при каждом выстреле;
Gib Angular Velocity – как быстро будут вращаться gib-объекты при выстреле (градусов в секунду); gib-объекты будут вращаться по осям X и Y со скоростью от 10% до 100% от этой скорости; используется только если свойство "Simulate" равно "Physics";
Lighting Origin – имя любого объекта на карте, в точке которого будет измеряться освещённость этого объекта; как правило, используется точечный объект, например – info_target; например: этот объект находится в светлом помещении, а точка "Lighting Origin" находится в тёмном помещении; несмотря на то, что этот объект находится в светлом помещении, он будет иметь освещенность тёмной комнаты; если переместить объект "Lighting Origin" из тёмной комнаты в светлую – освещённость этого объекта тоже изменится;
Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.Inputs:
Shoot – начать очередь "выстрелов".Флажки:
Repeatable – выстрелы из объекта могут быть неоднократно повторены вызовом функции "Shoot";
Remove Gibs After 'Gib Life' – удалять gib-объекты по истечении времени "Gib Life"; ВНИМАНИЕ! если установлен флажок "Repeatable", то всегда устанавливайте этот флажок; если не установить этот флажок – это может привести к краху игры либо увеличению нагрузки на сервер.Inputs:
Shoot – начать очередь "выстрелов".
Лестницы в игре CS:S.
Используются для определения на поверхностей, на которых игроки могут передвигаться в любом направлении как по лестницам.
Способы создания лестниц в игре:
1. Использовать Brush-объект func_ladder, каждая сторона которого будет являться поверхностью, работающей как лестница. НЕ рекомендуется использовать этот способ.
2. Покрыть на любой Brush материалом tools/toolsinvisibleladder. В этом случае все поверхности этого Brush’а будут являться поверхностями, работающими как лестница.
3. Создать объект func_detail и наложить на все его стороны материал tools/toolsinvisibleladder. Объект func_detail не создаёт листья (Leaves) для BSP-дерева, поэтому оптимально подходит для поставленной задачи. Рекомендуется использовать только этот способ.Заметки:
Движение по лестницам сопровождаются звуками движения по лестницам только тогда, когда игроки передвигаются по лестницам в плоскости X/Y. при движении игроков вверх и вниз лестницы не издают звуков.
Самый правильный способ создать лестницу в игре – это создать объект func_detail и покрыть этот объект со всех сторон материалом tools/toolsinvisibleladder.
Не рекомендуется использовать для создания лестниц объект func_ladder, потому что он делит пространство карты на листья (Leaves) для BSP-дерева, тем самым увеличивая время компиляции карты и создавая чуть большую нагрузку на CPU во время игры.
Можно создавать Brush-объект func_ladder и покрывать его материалом tools/toolsinvisibleladder, но это излишне.
Объект shadow_control используется для изменения параметров динамических теней на карте: направление, цвет, длина.
Особенности использования:
- Этот объект НЕ обновляется в каждом раунде. Это означает что любые изменения объекта будут наследоваться в последующих раундах. Удаление объекта в одном из раундов удаляет объект на все последующие раунды.
- Объект может быть установлен в любом месте на карте.
- На карте достаточно одного такого объекта.Ошибки:
не обнаружены.Заметки:
Не ставьте длинные и чёткие тени, потому что это может дать плохой визуальный результат. Постарайтесь настраивать тени так, чтобы тень от игрока более менее различалась на земле, а в моменты когда игрок находится в наивысшей точке прыжка тень не была видна не земле, или была видна нечётко. Это наиболее правильный подход к созданию динамических теней в игре CS:S, который позволит избежать некоторых досадных ошибок во время создания карты.
Свойства:
Pitch Yaw Roll (Y Z X) – направление в котором отбрасываются динамические тени;
Disable All Shadows – выключить все динамические тени на карте (Нет/Да);
Shadows Color – цвет динамических теней;
Max Distance – длина теней, или максимальная дистанция на которую отбрасываются тени.Inputs:
Color <R G B> - установит новое значение свойства "Shadows Color";
Direction <vector> - установить новое направление распространения динамических теней;
SetAngles <Pitch Yaw Roll> - установить новый угол падения динамических теней;
SetDistance <float> - установит новое значение свойства "Max Distance";
SetShadowsDisabled <bool> - (0 или 1) установить новое значении свойства "Disable All Shadows".
Объект sky_camera используется для указания позиции расположения карты внутри 3D-Skybox. Центр игрового мира карты (точка "0 0 0") сопоставляется с точкой расположения объекта sky_camera, что позволяет отображать 3D-Skybox относительно игрока, находящегося в игровом пространстве карты.
3D-Skybox - это дополнительная зона, создаваемая автором карты вне игрового пространства этой карты. Игроки не должны попадать в эту зону, потому что всё что находится в ней будет отображаться на заднем плане в игровом пространстве карты. Как правило, эту дополнительную зону создают уменьшенной в 16 раз, что при отображении её на заднем плане карты создаёт впечатление визуального расширения карты.
Если бы игрок мог попасть в 3D-Skybox или стрелять в него, то все остальные игроки видели бы это на заднем плане карты увеличенным в 16 раз. Следы от пуль казались бы в 16 раз больше, и сам игрок казался бы огромным монстром. Чтобы такого не допустить, авторы карт помещают 3D-Skybox в недоступную часть игрового мира карты, например: значительно ниже чем самая последняя точка игрового пространства карты. Уменьшенные размеры позволяют автору карт легко и быстро создавать задний план для игрового пространства карты, а так же применять некоторые визуальные эффекты, для добавления на карту облаков, тумана и прочих погодных явлений.
Так как 3D-Skybox используется в качестве не основного, а не дополнительного визуального окружения, то всё что находится внутри него должно быть максимально оптимизировано для получения наибольшей производительности при отображении. Например, внутри 3D-Skybox могут быть успешно применены объекты prop_detail или прочие низко-полигональные объекты не имеющие модели столкновений, а так же приветствуется использование текстур небольшого размера, чтобы не создавать лишней нагрузки на видеокарту.
Особенности использования:
- Этот объект НЕ обновляется в каждом раунде. Это означает что любые изменения объекта будут наследоваться в последующих раундах. Удаление объекта в одном из раундов удаляет объект на все последующие раунды.
- Объект должен быть установлен там, где будет использоваться.
- На карте достаточно одного такого объекта. Нельзя устанавливать два и более таких объектов.
- Объект не может быть удалён с карты во время игры, потому что это приводит к ошибке игры и завершению игры крахом!
- Объект может добавлять на карту туман точно так же, как это делает объект env_fog_controller. Этот туман применяется только для 3D-Skybox, а туман объекта env_fog_controller применяется только к игровому пространству карты.Ошибки:
не обнаружены.Заметки:
Добавление на карту 3D-Skybox’а может значительно улучшить внешний вид карты.
Свойства:
Pitch Yaw Roll (Y Z X) – направление в котором цвет тумана равен "Primary Fog Color"; используется только при включенном свойстве "Use Angles for Fog Dir";
3D Skybox Scale – масштаб 3D-Skybox по отношению к реальным размерам мира;
Fog Enable - включить туман (Да/Нет);
Fog Blend – включить смешанные цвета для тумана (Нет/Да); если включено, то будет использоваться свойство "Secondary Fog Color";
Use Angles for Fog Dir – использовать свойство "Pitch Yaw Roll" в качестве направления в котором цвет тумана равен "Primary Fog Color" (Нет/Да); если отключено, то в качестве направления тумана используется свойство "Fog Dir";
Fog Dir – направление в котором цвет тумана равен "Primary Fog Color"; не используется, если включено свойство "Use Angles for Fog Dir";
Primary Fog Color – первый цвет тумана;
Secondary Fog Color – второй цвет тумана; не используется, если не включено свойство "Fog Blend";
Fog Start – расстояние от камеры игрока, на котором начинает видеться туман;
Fog End – расстояние от камеры игрока, на котором туман имеет максимальную интенсивность.
Объект target_changegravity используется для изменения гравитации игроков. Этот объект может восстанавливать гравитацию игроков к нормальному значению.
Особенности использования:
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект может быть установлен в любом месте на карте.
- На карте может быть установлено множество этих объектов.
- Объект действует только на игрока, активировавшего цепочку событий (!activator).
- Гравитация не сбрасывается в начале каждого раунда, поэтому сохраняется для игрока на все последующие раунды, до тех пор пока не будет вновь изменена.Ошибки:
не обнаружены.Заметки:
Из-за того что этот объект не доработан, он мало где может быть успешно применён. Если бы разработчики сделали возможность указать в свойстве "Gravity" дробные значения, то этот объект был бы не менее удобен чем объект trigger_gravity. А надо то было всего лишь изменить две строки в коде и всё бы работало как надо.
Свойства:
Gravity – множитель гравитации, который будет у игрока, когда он активирует этот объект; значение этого свойства должно быть целым числом, например: 1, 2, -1, -2 и т.д.; 0 – гравитация будет стандартной, т.е. равна 1.Inputs:
ChangeGrav – установить игроку, активировавшему цепочку событий (!activator), новое значение гравитации, равное значению свойства "Gravity";
ResetGrav – установить игроку, активировавшему цепочку событий (!activator), нормальную гравитацию, т.е. равную 1.
Объект spark_shower используется для создания эффекта летящих искрящихся искр. Этот объект автоматически создаётся объектом env_explosion во время взрыва.
Особенности использования:
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов.
- Во время своего появления на карте, объект сразу же начинает визуализировать свой эффект, а по истечении времени своего действия автоматически удаляется. Эффект визуализируется в течение случайного времени от 0.5 до 1.5 секунды.
- Искры от этого объекта задерживаются World-геометрией и объектами, имеющими модель столкновений. Задев какой-нибудь объект искры останавливаются.Ошибки:
не обнаружены.Заметки:
Объект spark_shower очень удобно использовать совместно с объектами point_template и env_entity_maker.
Свойства:
Pitch Yaw Roll (Y Z X) – направление полёта искр; это направление указывается приблизительно, потому что игрой это направление будет немного изменено автоматически.
Вода является неотъемлемой частью почти что любой карты, поэтому умение правильно её размещать на карте является одним из базовых умений для любого как начинающего, так уже и относительно опытного маппера.
Особенности использования:
- Создавать воду можно только на World-геометрии.
- Для создания воды необходимо выбрать какой-нибудь World-Brush и покрыть его со всех сторон материалом tools/toolsnodraw. Затем выбрать какую-нибудь горизонтальную поверхность на этом World-Brush’е и покрыть её материалом воды (например: nature/water_canals03). Список водных материалов можно получить в окне Textures применив фильтр "water".
- Вода созданная под водой удаляется при компиляции карты.
- Всплески от выстрелов отображаются на воде только тогда, когда стреляя в воду, пуля попадает в поверхность World-Brush’а воды, покрытую материалом tools/toolsnodraw.
- Если на карте есть дыры (Leaks), то вода не будет отображаться.
- Вода работает по принципу закрытого портала (см. func_areaportal), открытого только со стороны, на которой наложен водный материал. Поэтому в воде можно видеть только те объекты и части карты, которые граничат или пересекаются с World-Brush'ем это воды.
- Материал воды на видеокартах DX9 и выше может использовать отражения и преломления и автоматически обновлять себя, однако на видеокартах ниже DX9 для правильной работы воды необходимо для каждой водной поверхности всегда указывать карту окружения, используя объект env_cubemap. На DX9 объект env_cubemap использоваться не будет, зато он даст совместимость с более старыми видеокартами.
- Отображение воды отнимает много ресурсов компьютера, поэтому всегда нужно тестировать карту на производительность, если на карте используется вода.
- Качество воды на удалении от игрока можно контролировать при помощи объекта water_lod_control.
- Под водой действуют несколько иные законы физики, чем на суше.
- Находясь долгое время под водой, игрок может начать терять здоровье, однако при выходе из воды здоровье постепенно возвращается к прежнему значению.
- Вода может быть создана с использованием некоторых других
Объект water_lod_control используется для уровня детализации и качества водных поверхностей на тех картах, где есть вода. Благодаря этому объекту появляется возможность контролировать дистанцию от игрока на которой качество воды становится низким, позволяя увеличить быстродействие карты.
Особенности использования:
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект может быть установлен в любом месте на карте.
- На карте достаточно одного такого объекта. Нельзя устанавливать два и более таких объектов.
- Если на карте есть вода, но не установлен этот объект, то этот объект будет создан автоматически в процессе компиляции карты и будет иметь настройки по умолчанию.Ошибки:
Если установить значение свойства "End Transition to Cheap Water" больше чем значение свойства "Start Transition to Cheap Water", то это приведёт к прекращению обновления текстур отражения/преломления воды.
Свойства:
Start Transition to Cheap Water – расстояние от игрока, на котором качество водных поверхностей начинает становиться ниже;
End Transition to Cheap Water – расстояние от игрока, на котором качество водных поверхностей имеет максимально низкий уровень; значение этого свойства должно быть больше значения свойства "Start Transition to Cheap Water"; (у этого свойства есть баг, см пункт "Ошибки").Inputs:
SetCheapWaterStartDistance <float> – установить новое значение свойства "Start Transition to Cheap Water";
SetCheapWaterEndDistance <float> - установить новое значение свойства "End Transition to Cheap Water".
Оружие в игре CS:S.
Особенности использования:
- Эти объекты обновляются в каждом раунде. Это означает что любые изменения объектов НЕ будут наследоваться в последующих раундах.
- Объекты должны быть установлены там, где будут использоваться.
- На карте может быть установлено множество этих объектов.
- Объекты по умолчанию имеют модель столкновений VPhysics, отмечены как особый класс объектов, не контактирующих с игроком и триггерами.
- Объекты НЕ должны пересекаться с другими физическими объектами на карте.
- Могут подниматься игроком и использоваться как оружие.Ошибки:
не обнаружены.
Свойства:
Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
Pitch Yaw Roll (Y Z X) – ориентация объекта на карте;
Additional Ammo – дополнительное количество патронов для этого оружия; по умолчанию в рожке всегда есть одна полная обойма;
Disable Damage Forces – отключить силы, прикладываемые к объекту при получении им повреждений (Нет/Да); например: выстрел по объекту не сдвинет его с места;
Damage Filter – имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту; (см. подробнее filter_damage_type или filter_multi);
Render Mode – режим рендеринга объекта;
FX Color (R G B) – цвет объекта;
FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
Shadow Cast Distance – максимальное расстояние на которое распространяются динамические тени от этого объекта;
Fade Start Dist – расстояние от игрока до объекта, с которого объект начнёт плавно исчезать, а полностью исчезнет на расстоянии "Fade End Dist"; это расстояние должно быть меньше чем "Fade End Dist", но в игре они будут автоматически поменяны местами, если это не так; если значение этого свойства меньше нуля, то оно будет автоматически изменено и станет равным "Fade End Dist" - 400;
Fade End Dist – расстояние от игрока до объекта, на котором объект становится полностью не видимым, начав исчезать с расстояния "Fade Start Dist"; если значение этого свойства меньше или равно нулю, то функция исчезновения будет отключена для этого объекта;
Fade Scale – множитель для значений исчезновения объекта по умолчанию, используемых если:
- движок запущен в режиме DX7 и ниже;
- параметры исчезновения объектов настраиваются в объекте worldspawn (Hammer > Main menu > Map > Map properties...);
- движок будет использовать свои значения по умолчанию, когда свойства "Fade Start Dist" и "Fade End Dist" не указаны;
во всех этих случаях можно контролировать исчезновение объекта вручную:
0.0 – полностью отключить исчезновение, объект виден на любом расстоянии;
меньше 1.0 – исчезновение начнётся с большего расстояния и будет более растянутым по времени;
больше 1.0 – исчезновение объекта начнётся на меньшей дистанции и будет выполнено быстрее обычного;
Lighting Origin – имя любого объекта на карте, в точке которого будет измеряться освещённость этого объекта; как правило, используется точечный объект, например – info_target; например: этот объект находится в светлом помещении, а точка "Lighting Origin" находится в тёмном помещении; несмотря на то, что этот объект находится в светлом помещении, он будет иметь освещенность тёмной комнаты; если переместить объект "Lighting Origin" из тёмной комнаты в светлую – освещённость этого объекта тоже изменится;
Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.Флажки:
Motion Disabled – объект будет зафиксирован в одной точке на всё время раунда без возможности заставить его сдвинуться.Inputs:
Ignite – поджечь объект;
SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
HideWeapon – скрыть оружие из рук игрока, если игрок использует это оружие в данный момент; оружие не смогут видеть другие игроки и сам игрок, у которого было скрыто оружие;
EnableDamageForces – повреждения, наносимые объекту, будут толкать его, другими словами – будут прикладывать к объекту силу;
DisableDamageForces – повреждения, наносимые объекту, не будут толкать его, другими словами – не будут прикладывать к объекту силу;
SetDamageFilter <string> - установить новое значение свойства "Damage Filter";
Color <R G B> - установить новое значение свойства "FX Color";
Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";
FadeMinDist <float> - установить новое значение свойства "Fade Start Dist";
FadeMaxDist <float> - установить новое значение свойства "Fade End Dist";
SetLightingOrigin <string> - установить новое значение свойства "Lighting Origin".Outputs:
OnPlayerPickup – выполняется всякий раз, когда какой-нибудь игрок поднимает это оружие;
OnIgnite - выполняется тогда, когда объект воспламеняется при вызове функции "Ignite".