Ru/Door creation: Difference between revisions
m (This article and the english article do not match their information, please translate!) |
m (obsolete language category) |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Создание двери|Door creation}} | ||
|title=Создание двери | |||
| | |||
}} | |||
{{Warning|Английская версия и эта версия не содержат одинаковой информации. Пожалуйста, извините за это несоответствие, так как мы работаем над переводом..}} | {{Warning|Английская версия и эта версия не содержат одинаковой информации. Пожалуйста, извините за это несоответствие, так как мы работаем над переводом..}} | ||
{{todo|Пожалуйста, переведите сюда английскую статью, а также перенесите изображения.}} <br> | {{todo|Пожалуйста, переведите сюда английскую статью, а также перенесите изображения.}} <br> | ||
Line 8: | Line 5: | ||
== Начало == | == Начало == | ||
Чтобы сделать дверь на основе браша, для начала создайте отверстие в стене. Загляните в статью про различные игровые | Чтобы сделать дверь на основе браша, для начала создайте отверстие в стене. Загляните в статью про различные игровые {{L|dimensions|константы}}, чтобы точно подогнать отверстие под будущую дверь. Чтобы сделать такое отверстие, разделите стену на две половины и разместите небольшой {{L|brush|браш}} над пространством будущей двери. Убедитесь, что под этим пространством есть пол, иначе будет {{L|leak|утечка}}. | ||
[[ | [[File:Door creation 1.png]] | ||
== Создание браша двери == | == Создание браша двери == | ||
Создайте браш и заполните им все пустое пространство в стене. Желательно покрыть его текстурой, отличной от текстуры стены, хорошо подойдет, к примеру, текстура древесного типа. | Создайте браш и заполните им все пустое пространство в стене. Желательно покрыть его текстурой, отличной от текстуры стены, хорошо подойдет, к примеру, текстура древесного типа. | ||
[[ | [[File:Door creation 2.png]] | ||
== Превращение браша в дверь == | == Превращение браша в дверь == | ||
Чтобы сделать из браша дверь, выделите его на одном из окон развертки и щелкните правой кнопкой мыши. Выберите пункт "Tie to entity" и из появившегося списка выберите | Чтобы сделать из браша дверь, выделите его на одном из окон развертки и щелкните правой кнопкой мыши. Выберите пункт "Tie to entity" и из появившегося списка выберите {{L|func_door_rotating}} для обычной двери или {{L|func_door}} для двери, открывающейся скольжением вверх или вниз. Во втором случае прокрутите вниз окно опций, и вы увидите пункт "Move Direction (Pitch Yaw Roll)" - направление движения; щелкните на нем и выберите вариант 'up' или 'down' в небольшом окошке справа. В случае же с обычной, открывающейся поворотом дверью, вам понадобится настроить центр вращения(синий шарик, его видно в окне трехмерного вида), используя окно развертки или пункт "origin" в окне свойств объекта. | ||
Теперь у нас есть функционирующая дверь. Чтобы открыть такую уже непосредственно в игре, просто подойдите. Чтобы заставить дверь открываться по нажатию кнопки "использовать", дважды щелкните по двери в окне трехмерного вида и из горизонтального списка вверху выберите панель "flags". Поставьте галочку рядом с надписью "use opens" и уберите аналогичную напротив строки "touch opens". | Теперь у нас есть функционирующая дверь. Чтобы открыть такую уже непосредственно в игре, просто подойдите. Чтобы заставить дверь открываться по нажатию кнопки "использовать", дважды щелкните по двери в окне трехмерного вида и из горизонтального списка вверху выберите панель "flags". Поставьте галочку рядом с надписью "use opens" и уберите аналогичную напротив строки "touch opens". | ||
== Создание кнопки для управления дверью == | == Создание кнопки для управления дверью == | ||
Дайте вашей двери имя, что-нибудь типа <code>door1</code>. Чтобы сделать кнопку, создайте небольшой браш, разместите его в любом доступном месте и через команду | Дайте вашей двери имя, что-нибудь типа <code>door1</code>. Чтобы сделать кнопку, создайте небольшой браш, разместите его в любом доступном месте и через команду ''Tie to Entity'' превратите его в {{L|func_button}}. Назовите получившуюся кнопку аналогичным образом, например, <code>door1_button</code>. Нажмите кнопку "Apply", выберите панель "Outputs" и нажмите "Add Output". Отредактируйте output следующим образом: | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnPress || door1 || Open || || 0.00 || No | ||
|} | |} | ||
<br> | <br> | ||
Затем | Затем ещё раз нажмите "Apply".<br> | ||
Когда будете тестировать карту, подойдите к кнопке и нажмите клавишу "использовать". После этого дверь должна открыться. | Когда будете тестировать карту, подойдите к кнопке и нажмите клавишу "использовать". После этого дверь должна открыться. | ||
== Создание двойных дверей == | == Создание двойных дверей == | ||
Чтобы сделать две скользящие или вращающиеся двери, открывающиеся синхронно, вам понадобится комбинация из output'ов и двух объектов | Чтобы сделать две скользящие или вращающиеся двери, открывающиеся синхронно, вам понадобится комбинация из output'ов и двух объектов {{L|logic_relay}}(прим. переводчика: на самом деле в этом нет особой необходимости, достаточно лишь дать обеим дверям одинаковое имя). Во-первых, способом, изложенным выше, создайте две двери и назовите их схожим образом, например, <code>door1</code> и <code>door2</code>. Во-вторых, добавьте два logic_relay где-нибудь поблизости(расположение не имеет решающего значения, но для простоты имеет смысл держать их поближе) и назовите аналогично, например, <code>door1_relay</code> и <code>door2_relay</code>. В-третьих, откройте окно свойств первой двери, зайдите на панель "Outputs" и добавьте такой output: | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnOpen || door2 || Open || || 0.00 || No | ||
|} | |} | ||
<br> | <br> | ||
Проделайте то же самое со второй дверью, только в поле "Target Entity" впишите <code>door1</code>. Теперь, когда одна из дверей будет открыта каким-либо способом, вместе с ней автоматически откроется и вторая. На этот моменте вы вполне можете сохранить и протестировать карту, но мы | Проделайте то же самое со второй дверью, только в поле "Target Entity" впишите <code>door1</code>. Теперь, когда одна из дверей будет открыта каким-либо способом, вместе с ней автоматически откроется и вторая. На этот моменте вы вполне можете сохранить и протестировать карту, но мы ещё не закончили - мы заставили двери открываться вместе, но не закрываться. Для этого нам и понадобятся logic_relay. | ||
<br> | <br> | ||
<br> | <br> | ||
Вы, должно быть, сейчас думаете, что вполне можете обойтись без logic_relay, всего лишь написав аналогичные output'ы и для закрытия дверей, как изложено выше. К сожалению, не выйдет. Можете попробовать, но скоро убедитесь, что игра вылетает при попытке закрыть одну из дверей. Придется нам задействовать logic_relay. Если вы следовали инструкциям выше, у вас уже должны быть два таких объекта, размещенных и названных. Откройте свойства первой двери и создайте следующий output: | Вы, должно быть, сейчас думаете, что вполне можете обойтись без logic_relay, всего лишь написав аналогичные output'ы и для закрытия дверей, как изложено выше. К сожалению, не выйдет. Можете попробовать, но скоро убедитесь, что игра вылетает при попытке закрыть одну из дверей. Придется нам задействовать logic_relay. Если вы следовали инструкциям выше, у вас уже должны быть два таких объекта, размещенных и названных. Откройте свойства первой двери и создайте следующий output: | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnClose || door1_relay || Trigger || || 0.00 || No | ||
|} | |} | ||
<br> | <br> | ||
Проделайте то же самое со второй дверью, заменив Target Entity на <code>door2_relay</code>. Теперь откройте свойства первого logic_relay и добавьте такой output: | Проделайте то же самое со второй дверью, заменив Target Entity на <code>door2_relay</code>. Теперь откройте свойства первого logic_relay и добавьте такой output: | ||
:{| {{OutputsTable}} | :{| {{OutputsTable}} | ||
| [[ | | [[File:Io11.png]] || OnTrigger || door2 || Close || || 0.00 || No | ||
|} | |} | ||
<br> | <br> | ||
Line 69: | Line 66: | ||
-->Зацепка <code>door2_relay</code> цепляет <code>door1</code>, заставляя закрыться | -->Зацепка <code>door2_relay</code> цепляет <code>door1</code>, заставляя закрыться | ||
{{ACategory|Level Design}} | |||
{{ACategory|Tutorials}} |
Latest revision as of 03:45, 22 August 2024

Создание двери брашевого типа.
Начало
Чтобы сделать дверь на основе браша, для начала создайте отверстие в стене. Загляните в статью про различные игровые константы , чтобы точно подогнать отверстие под будущую дверь. Чтобы сделать такое отверстие, разделите стену на две половины и разместите небольшой браш над пространством будущей двери. Убедитесь, что под этим пространством есть пол, иначе будет утечка .
Создание браша двери
Создайте браш и заполните им все пустое пространство в стене. Желательно покрыть его текстурой, отличной от текстуры стены, хорошо подойдет, к примеру, текстура древесного типа.
Превращение браша в дверь
Чтобы сделать из браша дверь, выделите его на одном из окон развертки и щелкните правой кнопкой мыши. Выберите пункт "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
, заставляя закрыться