Ru/Door creation
 Предупреждение:Английская версия и эта версия не содержат одинаковой информации. Пожалуйста, извините за это несоответствие, так как мы работаем над переводом..
Предупреждение:Английская версия и эта версия не содержат одинаковой информации. Пожалуйста, извините за это несоответствие, так как мы работаем над переводом..
Создание двери брашевого типа.
Начало
Чтобы сделать дверь на основе браша, для начала создайте отверстие в стене. Загляните в статью про различные игровые константы, чтобы точно подогнать отверстие под будущую дверь. Чтобы сделать такое отверстие, разделите стену на две половины и разместите небольшой браш над пространством будущей двери. Убедитесь, что под этим пространством есть пол, иначе будет утечка.
Создание браша двери
Создайте браш и заполните им все пустое пространство в стене. Желательно покрыть его текстурой, отличной от текстуры стены, хорошо подойдет, к примеру, текстура древесного типа.
Превращение браша в дверь
Чтобы сделать из браша дверь, выделите его на одном из окон развертки и щелкните правой кнопкой мыши. Выберите пункт "Tie to entity" и из появившегося списка выберите func_door_rotating для обычной двери или func_door для двери, открывающейся скольжением вверх или вниз. Во втором случае прокрутите вниз окно опций, и вы увидите пункт "Move Direction (Pitch Yaw Roll)" - направление движения; щелкните на нем и выберите вариант 'up' или 'down' в небольшом окошке справа. В случае же с обычной, открывающейся поворотом дверью, вам понадобится настроить центр вращения(синий шарик, его видно в окне трехмерного вида), используя окно развертки или пункт "origin" в окне свойств объекта.
Теперь у нас есть функционирующая дверь. Чтобы открыть такую уже непосредственно в игре, просто подойдите. Чтобы заставить дверь открываться по нажатию кнопки "использовать", дважды щелкните по двери в окне трехмерного вида и из горизонтального списка вверху выберите панель "flags". Поставьте галочку рядом с надписью "use opens" и уберите аналогичную напротив строки "touch opens".
Создание кнопки для управления дверью
Дайте вашей двери имя, что-нибудь типа door1. Чтобы сделать кнопку, создайте небольшой браш, разместите его в любом доступном месте и через команду Tie to Entity превратите его в func_button. Назовите получившуюся кнопку аналогичным образом, например, door1_button. Нажмите кнопку "Apply", выберите панель "Outputs" и нажмите "Add Output". Отредактируйте output следующим образом:
Затем еще раз нажмите "Apply".
Когда будете тестировать карту, подойдите к кнопке и нажмите клавишу "использовать". После этого дверь должна открыться.
Создание двойных дверей
Чтобы сделать две скользящие или вращающиеся двери, открывающиеся синхронно, вам понадобится комбинация из output'ов и двух объектов logic_relay(прим. переводчика: на самом деле в этом нет особой необходимости, достаточно лишь дать обеим дверям одинаковое имя). Во-первых, способом, изложенным выше, создайте две двери и назовите их схожим образом, например, door1 и door2. Во-вторых, добавьте два logic_relay где-нибудь поблизости(расположение не имеет решающего значения, но для простоты имеет смысл держать их поближе) и назовите аналогично, например, door1_relay и door2_relay. В-третьих, откройте окно свойств первой двери, зайдите на панель "Outputs" и добавьте такой output:
Проделайте то же самое со второй дверью, только в поле "Target Entity" впишите door1. Теперь, когда одна из дверей будет открыта каким-либо способом, вместе с ней автоматически откроется и вторая. На этот моменте вы вполне можете сохранить и протестировать карту, но мы еще не закончили - мы заставили двери открываться вместе, но не закрываться. Для этого нам и понадобятся logic_relay.
Вы, должно быть, сейчас думаете, что вполне можете обойтись без logic_relay, всего лишь написав аналогичные output'ы и для закрытия дверей, как изложено выше. К сожалению, не выйдет. Можете попробовать, но скоро убедитесь, что игра вылетает при попытке закрыть одну из дверей. Придется нам задействовать logic_relay. Если вы следовали инструкциям выше, у вас уже должны быть два таких объекта, размещенных и названных. Откройте свойства первой двери и создайте следующий output:
Проделайте то же самое со второй дверью, заменив Target Entity на door2_relay. Теперь откройте свойства первого logic_relay и добавьте такой output:
Повторить со вторым logic_relay, заменив Target Entity на door1. Теперь можете сохранить карту, скомпилировать ее и пойти похлопать установленными дверьми.
Чтобы лучше понять механизм взаимодействия Output'ов и logic_relay, изучите следующую таблицу:
Игрок открывает door1
-->Открытие door1 цепляет door2, заставляя открыться через Output
Игрок открывает door2
-->Открытие door2 цепляет door1, заставляя открыться через Output
Игрок закрывает door1
-->Закрытие door1 цепляет door1_relay
-->Зацепка door1_relay цепляет door2, заставляя закрыться
Игрок закрывает door2
-->Закрытие door2 цепляет door2_relay
-->Зацепка door2_relay цепляет door1, заставляя закрыться


