env_terrainmorph

Объект env_terrainmorph используется для модификации геометрии поверхностей DISPLACEMENT.

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

Если возникнут трудности с пониманием принципа работы объекта – посмотрите пункт "Как работает объект env_terrainmorph".





Особенности использования:

- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.

- Объект должен быть установлен там, где будет использоваться.

- На карте может быть установлено множество этих объектов.

- Объект НЕ изменяет модель столкновений (collisions) для DISPLACEMENT-поверхностей.

- Изменённая DISPLACEMENT-поверхность сохраняет свои изменения на протяжении всей карты. То есть, после модификации DISPLACEMENT-поверхности при помощи объекта env_terrainmorph, такая поверхность сохранит свои изменения на все последующие раунды.

- Этот объект изменяет DISPLACEMENT-поверхности с частотой равной 20 раз в секунду.

- После своего использования объект env_terrainmorph автоматически удаляется до начала следующего раунда.



Ошибки:

не обнаружены.



Как работает объект env_terrainmorph:

Принцип действия объекта env_terrainmorph достаточно сложен, однако для успешного применения этого объекта на ваших картах знать его всё же придётся.

Первое что нужно усвоить - это то, что объект env_terrainmorph всего лишь передвигает точки поверхностей, которые находятся в радиусе его действия. В каком направлении будут перемещены точки указывает свойство "angles", который нужно добавить вручную, если у вас его нет (см. пункт "Ошибки").

Второе что нужно знать - это то, что объект env_terrainmorph действует только на те точки DISPLACEMENT-поверхностей в радиусе своего действия, которые находятся "перед" ним. Это указывается при помощи всё того же свойства "angles". Например: нам нужно, чтобы объект env_terrainmorph поднял все точки в радиусе своего действия на какую-нибудь высоту. Для этого:

- устанавливаем свойство "angles" = "-90 0 0", что соответствует направлению вверх;

- ставим "Displacement Fraction" = 10;

- объект env_terrainmorph устанавливаем в редакторе на той высоте, на которой хотим чтобы оказались все точки поверхностей;

- выбираем подходящий радиус действия "Start Radius" и делаем его одинаковым с "Goal Radius";

- выполняем функцию "BeginMorph".

Если посмотреть на результат, то по окончании модификации все точки окажутся на той высоте, на которой был поставлен объект env_terrainmorph. Почему точки НЕ оказались выше, ведь выбрано высокое значение свойства "Displacement Fraction"? Это как раз и есть то самое "перед", о котором говорилось чуть раньше. То есть, наш env_terrainmorph смотрит вверх ("angles" = "-90 0 0"). При этом он образует невидимую плоскость во все стороны от себя, пересекать которую модифицированные точки не могут. Как повёрнута эта плоскость зависит только от свойства "angles".

Третье что нужно знать – это то, как изменяется модификация с течением времени "Duration". В начале модификации вокруг объекта env_terrainmorph находятся все точки для всех DISPLACEMENT-поверхностей, которые находятся в радиусе действия "Start Radius". Так же в начале модификации рассчитывается на какое расстояние будут перемещена "первая партия" точек. Для каждой точки это расстояние разное и зависть от времени "Duration", масштаба "Displacement Fraction", и расстояния от точки до объекта env_terrainmorph. "Первая партия" точек передвигается на новое место. Если "Goal Radius" не равен "Start Radius", то на этом этапе радиус охвата точек так же изменяется и операция повторяется до тех пор пока не будет достигнуто нужное количество шагов операции.



Советы:

Несколько примеров применения объекта env_terrainmorph с небольшими пояснениями:

1. Воротить горы в начале каждого раунда, создавая неповторимый горный рельеф. Горы удобнее всего запихать в 3D Skybox.

2. Возводить стены из под земли. В начале карты лучше всего сбрасывать все изменения при помощи какого-то одного объекта env_terrainmorph, приводящего DISPLACEMENT-поверхность в идеальную горизонтальную поверхность. Добавить соответствующее звуковое сопровождение и тряску земли при помощи объекта env_shake, чтобы отвлечь игрока от нюансов возведения стены. Для того, чтобы игрок не мог пройти через такие стены можно ставить на карте невидимые объекты func_wall_toggle.

3. Создание воронок от взрыва, на примере того, как это сделано на карте-примере csssdk_env_terrainmorph.vmf.





Свойства:

Pitch Yaw Roll (Y Z X) – направление модификации DISPLACEMENT-поверхностей;

Start Radius – радиус вокруг объекта env_terrainmorph, внутри которого любая поверхность DISPLACEMENT будет претерпевать изменения при старте модификации;

Goal Radius – радиус вокруг объекта env_terrainmorph, внутри которого любая поверхность DISPLACEMENT будет претерпевать изменения в конце модификации; не используется, если установлен флажок "Instant";

Duration – время, в течение которого проходит модификация поверхностей (секунды); не используется, если установлен флажок "Instant";

Displacement Fraction – на сколько хорошо будут поддаваться модификации различные поверхности DISPLACEMENT; 0 – объект env_terrainmorph не изменяет поверхности; 0.5 – изменения проходят в пол силы; 1 – нормальный тип изменения; 2 – выбирается мнимая точка в 2 раза дальше объекта env_terrainmorph и все изменяемые точки поверхностей стремятся к ней, однако точки не будут перемещены дальше чем сам объект env_terrainmorph, что приведёт к "отсечению" их координат и размещению в плоскости объекта env_terrainmorph и т.д.



Флажки:

Instant – выполнить модификацию поверхности моментально; если этот флажок установлен, то свойства "Duration" и "Goal Radius" игнорируется.



Inputs:
BeginMorph – начать модификацию поверхностей.
Источник: http://www.virte.clan.su/publ/kartostroenie/evn/env_terrainmorph/7-1-0-207



Комментарии

Оставьте комментарий

Опрос

Вы пользуетесь горячими клавишами в Hammer'е?

Категории раздела

info_ [16]
item_ [7]
light_ [4]
logic_ [8]
filter_ [5]
phys_ [5]
player_ [0]
point_ [2]
prop_ [11]
trigger_ [8]
math_ [3]
path_ [0]
Прочее [10]
Ai_ [2]
env_ [45]
game_ [5]
func_ [39]

МИНИ-ЧАТ

Друзья сайта

HL2 & Source Games

Mapper720.Ru - сайт о маппинге Half-life 2

 

Статистика


Онлайн всего: 1
Прохожих: 1
Пользователей: 0


Сегодня нас посетили:

Приветствуем нового пользователя:
Noug4at

Новое в AgnesTeam

Теги

smd expotrer smd importer smd плагин 3ds max тутор запор запорожец модель для чайников ленивых Displacement 3ds Max Hammer source создание модели 3D Ripper 3D Ripper DX 3d ripper dx туториал 3D Ripper DX уроки 3D ripper урок 3dr риппер Combine HUD Suit Туториал refract понтовый эффект преломление текстуры Source sdk SkyBox небо скайбокс создание skybox создание скайбокса маппинг portal 2 Portal 2 панели панели веры портал 2 Portal gel source sdk урок гель гель отталкивающий гель туторы source sdk мосты плотного света тутор туторы portal 2 уроки портал 2 строим карту portal 2 hammer editor кейв джонсон туториал portal 2 панели урок source sdk вспышки от выстрелов game_ Ui кодинг облагораживание мода покачивание камеры коддинг создание кода prop_static prop_physics_override энтити prop_ prop_dynamic_ornament физика phys_pulleyconstraint phys_ballsocket Phys_ физика Source phys_motor Left4Dead2: ep2 Episode 2 маппинг машина радар