Ареапорталы
В этом уроке мы с вами рассмотрим Ареапорталы.

Вводная ифномация
Ареапорталы (с английского: Area — Область). Ареапорталы можно и нужно использовать для оптимизации. Ареапорталы помогают оптимизировать карту, отсекая ненужное пространство.

Ареапортал — Это entity-браш func_areaportal или func_areaportalwindow, покрашенный со всех сторон в текстуру TOOLS/TOOLSAREAPORTAL.
  • Initial State. (Closed/Opened) — Состояние ареапортала (Открыт/Закрыт). Когда ареапортал открыт, он никак не обнаруживает себя, а когда закрыт, то область за ареапорталом отрисовываться не будет, даже если игрок смотрит на неё.

  • Linked Door Name — Название двери для управления Ареапорталом. Ареапортал можно привязать к двери, и, когда дверь открыта, то он будет в состоянии: Opened, а когда закрыта — в состоянии: Closed.

Давайте посмотрим визуально, что же представляют собой открытый и закрытый Ареапорталы?

Ареапортал открыт:



Ареапортал закрыт:

Оптимизируем карту с помощью ареапорталов
Ищем двери и другие entity-объекты, за которыми огромные пространства. Которые не должны обрисовываться движком, если дверь закрыта или через этот entity-объект всё равно ничего не будет видно.

Создаём ареапортал внутри двери. Следует учесть некоторые моменты: ареапортал должен быть обязательно параллелепипедом (ни вертексом, ни пирамидой!), всеми четырьмя боковыми сторонами должен касаться world-геометрии (то есть обыкновенными брашами) и полностью закрывать проём между геометрией, ареапортал должен быть внутри двери и не торчать наружу (его не должно быть видно в Hammer Editor), так как тогда вместо двери будет видно небо, как на картинках выше. Например, если толщина двери 4 юнита, то ареапортал должен быть 2 юнита и находится в середине двери.

Если вы создали ареапортал для двери, то дайте ей имя и пропишите это имя в параметре Linked Door Name вашего ареапортала. Параметр Initial State при этом использоваться не будет. Если же вам нужно, чтобы ареапортал был всегда открыт/закрыт, то поставьте соответствующее значение Initial State, а поле Linked Door Name оставьте пустым. Вы также можете динамически изменять состояние ареапортала во время игры, обращаясь к нему по параметру Name.

Ареапортал должен закрывать замкнутую область. Например, есть комната, в неё можно зайти только через одну дверь. Ставим ареапортал в этой двери. Всё будет работать без ошибок. Но если в эту комнату есть ещё один вход, то возникнет ошибка leak (дыры в карте). Так как ареапорталы работают по принципу чёрной пустоты, то, что за ними, подразумевается пустотой и в неё может быть точно такая же утечка.



При этом карта будет скомпилирована компилятором vvis.exe, так что вы можете ничего не заметить. Но при загрузке игры, если таких неправильных ареапорталов больше 2, вылетит ошибка Portalnum → numareaportals. Поэтому тщательно проверяйте карту и загружайте в Hammer Editor — lin-файл, который создаётся, если на карте есть leak (дыры в карте). Загрузить этот файл можно в меню Map → Load Pointfile.
Вернуться в каталог уроков