linked_portal_door
| CLinkedPortalDoor |
linked_portal_door - это объект модель, доступно для
Portal 2 и
Strata Source. Это особый вид сущности portal без каких-либо эффектов, который может быть использован для незаметного соединения удалённых частей карты. Эти порталы прямоугольны, а также игроки могут стрелять своей портальной пушкой через них. Их часто называют мировыми порталами(англ. world portals) в сообществе, ссылаясь на факт того, что они бесшовно соединяются с картой, вместо размещения игроком или тестовым элементом.
В стандартном FGD, эта сущность выглядит как сеть координат. Красная ось является нормалью к поверхности портала, зелёная обозначает ширину, а синяя - высоту. У изначальной модели отсутствуют направляющие индикаторы для этих осей, поэтому необходимо использовать дополнительные линии осей, появляющиеся при выборе объекта, чтобы определить лицевую сторону.
Хоть это и мощная сущность, у неё есть ряд ошибок и особенностей, которые необходимо учитывать при использовании:
- Наличие твёрдого, движущегося brush entity вблизи портала заставляет его закрыться. Не двигающиеся brush entity и анимированные или движущиеся prop-ы работают нормально.
- Lasers, проходящие через мировые порталы, будут иметь смещённые точки выхода в зависимости от расстояния до стены за этим порталом. Если вы используете в одной карте мировые порталы вместе с лазерами, убедитесь, что прямо за порталом есть стена, иначе лазеры не будут проходить правильно.
- По умолчанию, больше 4 порталов на экране (включая обычные порталы, но не учитывая порталы видимые сквозь другие порталы) вызовут серьёзные графические баги. Это можно исправить/обойти изменив переменную
r_portal_fastpathна0у клиента. Само по себе это не вызывает известных негативных эффектов, хотя большое количество видимых порталов одновременно приведёт к ухудшению производительности. - На низких настройках графики мировые порталы могут перестать отображаться на расстоянии или при взгляде сквозь другой портал, поэтому желательно удостовериться, что за порталом есть что-то (заместо nodraw).
- На самом деле портал появляется на 0.5 юнита впереди позиции сущности, так что для создания незаметного соединения его следует сместить на 0.5 юнита назад с помощью transform tool в hammer (Ctrl+M).
- Перемещение объекта не изменяет положение портала динамически (даже с включённым
sv_allow_mobile_portals), для обновления его позиции необходимо отправить вводEnable. - Порталы односторонние, задняя часть не отображается.
- Падение игроков будет откорректировано в портал если переменная
sv_player_funnel_into_portalsвключена, как и в случае с обычными порталами.
Примеры использований
Все уровни во встроенном редакторе используют мировые порталы для соединения выходных и входных лифтов с соответствующими коридорами; это позволяет избежать необходимости делать пространства для дверей слишком большими, чтобы вместить шахты лифтов. Они также используются дважды в кампании (в отличие от утверждений комментариев разработчиков, что их используют только один раз): на карте пробуждения ГЛаДОС, где они соединяют шахту доменной печи с её камерой, и в Финале 2, где они соединяют тест-"смертельную ловушку" с основной картой. Это единственные случаи использования этой сущности в финальной версии игры.
Однако комментарии разработчиков объясняют, что Valve активно использовала эти порталы на протяжении всей разработки Portal 2, чтобы ускорить прототипирование и итерации уровней. Соединяя отдельные комнаты порталами, можно было добавлять, изменять или переставлять части уровня без необходимости учитывать физическую возможность пространства и без затрат времени на перемещение и повторное подключение частей уровня. В какой-то период времени "каждое соединение между любыми пространствами было порталом", и их даже переключали между собой динамически. По мере завершения разработки игры и финализации уровней большинство таких порталов было удалено, за исключением двух указанных выше случаев.
Мировые порталы также широко используются в The Stanley Parable для участков, которые бесконечно повторяются или где возврат по маршруту ведёт игрока в совершенно другое место, вместо того откуда он пришёл.
Keyvalues
- Name (targetname) <объект источник>
- Имя объекта, по которому другие объекты могут ссылаться на этот объект, через Входы/Выходы или другие ключ-параметры (например
parentnameилиtarget).
Оно отображается на 2D-видах в Hammer и Отчёте об объектах (Entity Report).- См. также: Основные ключ-параметры, входы и выходы доступные для всех объектов
- Width (width) <целое число>
- 1/2 ширины желаемого портала. Должно быть меньше 1024 и совпадать с соответствующим свойством партнёра.
- Height (height) <целое число>
- 1/2 высоты желаемого портала. Должно быть меньше 1024 и совпадать с соответствующим свойством партнёра.
- Static Portal (isstatic) <булева переменная> (только в
)
- Если установлено на true, то этот портал не будет двигаться или переключаться, а также позволит VRAD проливать свет через него.
-PortalTraversalLighting, а для компиляции AO через мировые порталы VRAD необходим аргумент -PortalTraversalAO.
- Start Active (startactive) <булева переменная>
- Надо ли активировать соединение с другим порталом изначально
- Linked Partner (partnername) <целевой объект>
- Another 'linked_portal_door' entity which will link to this one.
Inputs
- SetPartner <строка>
- Set a new partner door.
- Open
- Open the door and cause the portal to activate.
- Close
- Close the door and cause the portal to deactivate.
Outputs
- OnOpen
- Called when the door has started its open animation.
- OnClose
- Called when the door has started its close animation.
- OnEntityTeleportFromMe
- Called when an entity enters this linked portal.
- OnPlayerTeleportFromMe
- Called when the player enters this linked portal.
- OnEntityTeleportToMe
- Called when an entity exits this linked portal.
- OnPlayerTeleportToMe
- Called when the player exits this linked portal.