Работаем с Areapotlal´ами
Ну что, привет всем. Сегодня мы будем учиться работать с таким полезным нововведением как Areaportal's.
Сразу хочу сказать, что данная статья рассчитана на продвинутых юзеров, которые знают что такое порталы, видимость, Vis-блоки и прочее.

Приступим к теории.
В первой ХЛ, наверное, самой большой проблемой для стабильного fps было то, что всякого рода энтити не представляли для движка "глазное" препятствие, не говоря уже о том, что всё те же энтити являлись самой частой причиной появления "проблемных" зон.
На помощь приходят areaportal's. Они предназначены для создания как бы преграды для взора игрока и бывают двух видов - оконные и дверные. Оконные вставляются в различные проёмы это необязательно окна. А дверные, в свою очередь, вставляются в дверные проёмы и полностью зависят от текущего положения двери или input'ов.

Всё, хватит занудной теории, давайте приступать к практике.

Пункт №1: Areaportal Window
Вы, к примеру, создали карту, где у вас есть дом, внутри которого находится сложная различная детализация, и, подходя к нему, вы чувствуете, что игра тормозит, это связано с тем, что движок "видит" комнаты которые не видите вы, он видит их через окна.
Что вам нужно делать?
Создайте браш, который будет полностью закрывать ваше окно, браш должен быть прямоугольным. Закрасьте его текстурой tools/toolsareaportal и задайте ему функцию func_areaportalwindow. Настройте по своему усмотрению:

Name - имя.
Rendered Window - имя браша который будет использоваться в качестве преграды. Это может быть любой браш с абсолютно любой текстурой, я советую использовать func_wall с текстурой окна или func_illusionary с текстурой tools/toolsblack. Учтите - этот браш должен быть шире самого Areapotlal'a, а сам Areapotlal должен находится внутри этого браша.
Fade Start Distance - это довольно трудно объяснить, в общем это та дистанция в юнитах, подойдя ближе которой браш заданный в Rendered Window начнёт менять свою прозрачность стремясь к Translucency limit. Чем ближе вы подходите, тем прозрачнее браш.
Fade End Distance - как только вы отойдёте дальше этой дистанции браш станет полностью непрозрачный и скроет всё что находится за ним для вас и для движка. Значение этого параметра должно быть всегда больше значения предыдущего.
Translucency limit - это минимальная непрозрачность вашего браша или, как его назвала valve,- bmodel. Непрозрачность достигнет этого значения, когда вы подойдёте к проёму вплотную.
Foreground Model - я так и не смог выяснить как работает этот параметр, если вы знаете пишите в комментариях.

Ну вот и всё, а вот что выходит:
Это скриншот издалека.



А вот я подошел по ближе


Примечание:

Помещение, которое должен скрыть ваш Areaportal, должно быть полностью изолировано, и должно быть видимо только через окно, то есть все, что внутри помещения, с точки зрения порталов, вы можете увидеть только стоя напротив окна. В общем продвинутые мапперы поймут.


Пункт №2: Дверные Areaportal's.

Не путайте эти две энтити, они различные во всех отношениях и действуют по-разному.
Всё примерно то же самое, за исключением того, что в качестве рычага для отсечения используется дверь. Дверь может быть абсолютно любая.

В общем создайте на карте дверь и браш с текстурой tools/toolsareaportal и задайте этому брашу функцию func_areaportal. Настраиваем:
Name - имя, у этой энтити есть различные input's, которые позволяют использовать эту энтитю не только с дверьми. Так вот имя вам в этом поможет.

Name of linked door - имя дуры, то есть двери, которая будет регулировать открытие/закрытые Areaportal'a. В данном случае это дверь которую вы создали. Не забывайте правило - дверь шире Areaportal'a.

Initial State - начальное положение портала закрыто/открыто?

Ну вот в принципе и всё, никаких Output'ов не нужно.
А вот что получается (я ещё в консоли "r_speeds 1" набрал для убеждения в существующей работоспособности):


На скриншоте закрытая дверь


Дверь уже открыта, обратите внимание на количество полигонов в первом и во втором случае. Всё что вам нужно обведено красным кружком.

Ну, в принципе это всё что вам нужно знать об Areaportal'ах.
Удачи вам:

Выражаю особую благодарность Gunman'y, мапперу для Doom3, который, сам того не зная, намекнул мне на эту информацию.
Источник: Source Inside

Автор: FoBOSS

CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0048 ]