Ru/Elevator (Portal 2): Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
m (obsolete language category)
 
(21 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|title=Лифт (Portal 2)|Elevator (Portal 2)}}
|title=Создание лифта для Portal2
'''Лифты''' используются в Portal 2 для перехода игрока между уровнями. Не путайте лифт с {{L|Disassembler|разборочным аппаратом}}, который используется для перехода между уровнями в кооперативном режиме.
|en=Elevator_(Portal_2)
}}
'''Лифт''' используются в Portal 2 для перехода игрока между уровнями. Не путайте с Разборщиком ([[Disassembler]]), который используется для перехода игроков в кооперативном режиме.


==Добавление лифта на карту==
==Добавление лифтов на карту==
{{note|В данной статье мы будем создать лифт для появления игрока в начале уровня. Особенность такого появления будет картофелина на портальной пушке у игрока. В настоящее время нет информации о появлении игрока без картофелины на портальной пушке. Поэтому наслаждайтесь ГЛЭДОС-картошкой :)}}
{{Note|В данной статье мы создадим лифт, в котором будет появляться игрок в начале уровня. При появлении игрока на его портальной пушке будет прикреплена картофелина. Чтобы убрать картофелину, см. руководства ниже.}}
===Входной лифт===
===Входной лифт===
1) Выберите инструмент entity tool и создайте с помощью него [[func_instance]]. В поле name введите - "Arrival_Elevator",а в поле file name - укажите путь к следующей заготовке лифта: "instances/turbine_elevator/arrival_elevator_a4_base.vmf"
1) Выберите инструмент entity tool и создайте {{L|func_instance}}. В поле Fix Up Name введите - "Arrival_Elevator", а в поле VMF file name укажите путь к лифту "instances/turbine_elevator/arrival_elevator_a4_base.vmf"


{{note|Если заготовка с лифтом не загружается, то сохраните свою карту и перезапустите редактор hammer.}}
{{Note|Если заготовка с лифтом не загружается, сохраните карту и перезапустите Hammer. Карта, которую вы редактировали, находится в папке portal 2\sdk_content\maps.}}


[[Image:Elevatortutorial1.jpg|thumb|right|Оба экземпляра сразу после копирования]]
[[File:Elevatortutorial1.jpg|thumb|right|Оба экземпляра сразу после копирования.]]
2) Чтобы сделать вещи проще, и не создавать два func_instance и потом искать второй экземпляр среди всего этого безобразия, просто нажмите Shift и перетащите "Arrival_Elevator", чтобы скопировать первый func_instance, и перетащите копию, чтобы она оказалась точно над оригиналом.
2) Чтобы сделать проще, и не создавать два func_instance и потом не искать второй экземпляр среди всей этой путаницы, просто дублируйте "Arrival_Elevator" с помощью {{key|Shift}} и перетащите копию так, чтобы она оказалась точно над оригиналом.
{{Note|Если посмотреть на два высоких синих столба с текстурой "skip", вы сможете легко выровнять два этих элемента. Просто проверьте, чтобы столбы были выровнены во всех двухмерных видах.  Также проверьте, чтобы были выровнены нижние части столбов. Если нужно выбрать одну из двух частей, то есть лифт или логику, вы можете нажать на один из кубов, соединённых со столбом.}}


{{note|Этот шаг обязателен, т.к. два func_instance должны распологаться точно друг над другом.}}
3) Дважды любой из двух экземпляров и переименуйте его на "Arrival_Logic" с VMF file name "instances/turbine_elevator/arrival_elevator_a4_logic.vmf".
{{Note|Вы можете не использовать a4_logic. "arrival_elevator_logic" работает точно так же, только лифт идёт сверху вниз, а не снизу верх.}}


{{note|Если заготовка с лифтом не загружается, то сохраните свою карту и перезапустите редактор hammer.}}
Вы можете использовать другие лифты для разных тем; только проверьте, что у вас есть экземпляры и лифта, и логики.


{{note|Если вы будете видеть два высоких синих "skip"-textured столба, вы сможете легко выровнять два элемента. Просто проверьте, что столбы line up во всех 2d окнах. Также проверьте, что нижние части столбов выровнены. Если нужно выбрать одну из двух частей, то есть лифт или логику, вы можете click на одом из кубов, соединённых со столбом.}}
===Управление переходами===
[[File:Elevatortutorial2.jpg|thumb|right|Управление переходами осуществляется с помощью небольших кубов за лифтом.]]
4) Создайте где-нибудь ещё одну энтити func_instance; подходящее место - прямо за моделью лифта (но не внутри входного лифта!).  Назовите энтити "Arrival_Departure_Trans" с VMF file name "{{L|Arrival departure transition ents.vmf (Portal 2)|instances/transitions/arrival_departure_transition_ents.vmf}}". Этот экземпляр отвечает за переходы во входном ''И'' выходном лифтах, но не отвечает за vmf'ы выходного лифта (см. ниже).
 
Вы можете выбирать видеоклипы в лифтовых комнатах установкой значений переменных в этом экземпляре; например, попробуйте установить значение переменной $arrival_video равным media/animalking.bik. Полный список видеороликов см. на {{L|List of Portal 2 Movies|этой странице.}}
 
P.S. Обновление редактора сломало видео. Для восстановления работы скопируйте video_splitter.nut в "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2_dlc2 \ scripts \ vscripts \ video" из "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2 \ scripts \ vscripts \ video"
 
===Выходной лифт===
5) Для создания выходного лифта просто повторите шаги 1-3, но вместо "arrival_elevator" выберите "instances/turbine_elevator/departure_elevator_a4_logic.vmf" и "instances/turbine_elevator/departure_elevator_a4_base.vmf", оба находятся в одной папке. Назовите их "Departure_Elevator" и "Departure_Logic" соответственно.
 
===Соединение с картой===
[[File:Elevatortutorial3.jpg|thumb|right|Лифт, соединённый с комнатой.]]
6) Выпирающее в середине лифта боковое ответвление выглядит как коридорный переход. Именно этот переход вы должны соединить со своей картой. Для этого хорошо подойдёт {{L|Test Door (Portal 2)|тестовая дверь}}.
 
{{Note|В карте будут утечки, если вы не прикроете проход брашами снаружи.}}
 
{{Note|Вам не нужно создавать энтити для появления игрока или портальной пушки, всё это уже есть в экземпляре.}}
 
Ваш лифт готов, поздравляем!
 
==Появление без картофелины==
 
1. Повторите шаги 1 и 2 выше.
 
2. На шаге 3 замените "instances/turbine_elevator/arrival_elevator_a4_base.vmf" экземпляром "instances/turbine_elevator/arrival_elevator_base.vmf".
 
3. Щёлкните экземпляр дважды и нажмите Edit Instance. Сразу же сохраните его под новым именем ("my_arrival_elevator_base.vmf", к примеру), так как мы изменим его. Также не забудьте потом изменить Vmf Filename экземпляра в своей карте.
 
4. Дважды щёлкните trigger_once с именем "elevator_1_interior_start_trigger", что охватывает модель лифта.
 
5. Перейдите на вкладку Outputs и '''скопируйте''' строку:
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[File:Io11.png]] || OnStartTouch || elevator_1 || MoveToPathNode || @elevator_1_bottom_path_1 || 0.10 || No
|}
 
6. Удалите строку этого выхода и рядом с моделью лифта поместите энтити func_instance_io_proxy с именем "proxy".
 
7. Перейдите на вкладку Outputs и '''вставьте''' строку, которую мы скопировали ранее.
 
8. Измените выход "OnStartTouch" на "OnProxyRelay". Сохраните изменения в экземпляре.
 
9. Вернитесь в свою карту и создайте энтити info_player_start и weapon_portalgun в лифте (проверьте, что игрок не застрянет в лифте).
 
10. Создайте энтити trigger_once, покрывающую всю модель лифта вместе с info_player_start.
 
11. Добавьте этот выход:
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[File:Io11.png]] || OnStartTouch || Arrival_logic || instance:elevator_1;MoveToPathNode || 0 || 0.00 || No
|}
 
12. Сохраните свою карту, скомпилируйте её и проверьте. Всё должно работать.
 
==Появление без картофелины (простой способ)==
1. Создайте logic_playerproxy под именем player_settings. 
 
2. Где-нибудь в карте поместите logic_auto, лучше рядом с logic_playerproxy, чтобы их вместе было легче найти.
 
3. На вкладке Output в свойствах logic_auto добавьте этот выход:
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[File:Io11.png]] || OnMapSpawn || player_settings || RemovePotatosFromPortalgun || || 1.00 || No
|}
 
4. Наконец, сохраните свою карту, скомпилируйте и проверьте.
 
==Появление без картофелины (простой способ 2)==
1. Создайте trigger_weaponstrip внизу входного лифта.
 
2. Поместите портальную пушку над триггером.


3) Double-click на каждом из них и переименуйте их в "Arrival_Logic" с именем файла VMF "instances/turbine_elevator/arrival_elevator_a4_logic.vmf"
3. В свойствах портальной пушки настройте её по своим предпочтениям (без картофелины или только с синим порталом).


Вы можете использовать один из других лифтов для разных тем; просто проверьте, что у Вас есть экземпляры лифта и логики.
==Создание старого лифта==
1. Следуйте инструкциям выше, но для Arrival_Elevator используйте instances/underground/test_dome_entrance_lift_01.vmf и не создавайте Arrival_Logic.


===Управление переходами===
2. Внутри лифта создайте info_player_start. Если это не удалось сделать в трехмерном виде, создайте эту энтити в двухмерном виде и поместите её так, чтобы она касалась ногами пола лифта. (НЕ шахты лифта, а самого лифта.)
[[Image:Elevatortutorial2.jpg|thumb|right|Управление переходами осуществляется с помощью небольших кубов за лифтом]]
4) Создайте где-нибудь ещё один экземпляр сущности func_instance; подходящее место - прямо за моделью лифта (но не внутри входного лифта!).  Назовите его "Arrival_Departure_Trans" с именем файла VMF "[[Arrival departure transition ents.vmf (Portal 2)|instances/transitions/arrival_departure_transition_ents.vmf]]". Этот экземпляр отвечает за переходы во входном И выходном лифтах, но не отвечает за vmf'ы лифта выхода (см. ниже)


Вы можете задавать видеоклипы в лифтовых комнатах установкой значений переменных в этом экземпляре; например, попробуйте установить значение переменной $arrival_video равным media/animalking.bik.
3. Создайте энтити logic_auto (или, если такая уже есть, используйте её). На вкладке Outputs добавьте вход:
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[File:Io11.png]] || OnMapSpawn || Arrival_Elevator-entrance_lift_train || StartForward || || 0.00 || No
|}


===Лифт выхода===
Он будет указан, как ошибочный. Но он всё равно работает. Здесь также работает "простой способ", как убрать картофелину с пушки.
5) Для создания лифта выхода, просто повторяйте шаги 1-3, но вместо "arrival_elevator" необходимо выбрать "instances/turbine_elevator/departure_elevator_a4_logic.vmf" и "instances/turbine_elevator/departure_elevator_a4_base.vmf", оба находятся в одном каталоге. Назовите их "Departure_Elevator" и "Departure_Logic" соответственно.


===Соединение с картой===
== Создание старого лифта (простой способ) ==
[[Image:Elevatortutorial3.jpg|thumb|right|Лифт, соединённый с комнатой]]
6) Вы заметите, что sticking out средине лифтов на одной стороне есть расширение, которое выглядит как коридор. Вы должны соединить этот коридор с Вашей картой. [[Test Door (Portal 2)|Дверь]] подходит для этого наилучшим образом.


{{note|Карта will leak на выходе коридора, если он {выход} не закрыт Вашими конструкциями. В этом случае Вам не нужно создавать весь лифт, просто сделайте выход.}}
Откройте vmf-файл maps\instances\underground\test_dome_entrance_lift_01.vmf и найдите энтити point_teleport под именем @test_dome_lift_entry_teleport, смените её имя на @arrival_teleport и сохраните экземпляр под другим именем.


{{note|Вам не нужно порождать сущность point или portal gun, экземпляры позаботятся об этом.}}
== Свой вход и выход ==
Чтобы игрок появлялся в другом месте, создайте {{L|point_teleport}} и назовите её @arrival_teleport, задайте Entity to Teleport на "!player".


Ваш лифт готов, поздравляем!
Чтобы создать конец уровня в другом месте, добавьте следующий выход к триггеру или другой энтити, которая оканчивает ваш уровень:
::{| class=standard-table
!   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[File:Io11.png]] || "insert output" || @exit_teleport || teleport || || 0.00 || No
|}
Если выход отмечен как ошибочный, игнорируйте это.


[[Category:Portal_2_Level_Design:ru|Разработка уровней для Portal 2]]
==См. также==
*{{L|Underground Elevator|Лифт старой лаборатории}}
{{ACategory|Portal 2 Tutorials}}
{{ACategory|Portal_2_Level_Design}}

Latest revision as of 03:46, 22 August 2024

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)

Лифты используются в Portal 2 для перехода игрока между уровнями. Не путайте лифт с разборочным аппаратом(en), который используется для перехода между уровнями в кооперативном режиме.

Добавление лифтов на карту

Note.pngПримечание:В данной статье мы создадим лифт, в котором будет появляться игрок в начале уровня. При появлении игрока на его портальной пушке будет прикреплена картофелина. Чтобы убрать картофелину, см. руководства ниже.

Входной лифт

1) Выберите инструмент entity tool и создайте func_instance(en). В поле Fix Up Name введите - "Arrival_Elevator", а в поле VMF file name укажите путь к лифту "instances/turbine_elevator/arrival_elevator_a4_base.vmf"

Note.pngПримечание:Если заготовка с лифтом не загружается, сохраните карту и перезапустите Hammer. Карта, которую вы редактировали, находится в папке portal 2\sdk_content\maps.
Оба экземпляра сразу после копирования.

2) Чтобы сделать проще, и не создавать два func_instance и потом не искать второй экземпляр среди всей этой путаницы, просто дублируйте "Arrival_Elevator" с помощью Shift и перетащите копию так, чтобы она оказалась точно над оригиналом.

Note.pngПримечание:Если посмотреть на два высоких синих столба с текстурой "skip", вы сможете легко выровнять два этих элемента. Просто проверьте, чтобы столбы были выровнены во всех двухмерных видах. Также проверьте, чтобы были выровнены нижние части столбов. Если нужно выбрать одну из двух частей, то есть лифт или логику, вы можете нажать на один из кубов, соединённых со столбом.

3) Дважды любой из двух экземпляров и переименуйте его на "Arrival_Logic" с VMF file name "instances/turbine_elevator/arrival_elevator_a4_logic.vmf".

Note.pngПримечание:Вы можете не использовать a4_logic. "arrival_elevator_logic" работает точно так же, только лифт идёт сверху вниз, а не снизу верх.

Вы можете использовать другие лифты для разных тем; только проверьте, что у вас есть экземпляры и лифта, и логики.

Управление переходами

Управление переходами осуществляется с помощью небольших кубов за лифтом.

4) Создайте где-нибудь ещё одну энтити func_instance; подходящее место - прямо за моделью лифта (но не внутри входного лифта!). Назовите энтити "Arrival_Departure_Trans" с VMF file name "instances/transitions/arrival_departure_transition_ents.vmf(en)". Этот экземпляр отвечает за переходы во входном И выходном лифтах, но не отвечает за vmf'ы выходного лифта (см. ниже).

Вы можете выбирать видеоклипы в лифтовых комнатах установкой значений переменных в этом экземпляре; например, попробуйте установить значение переменной $arrival_video равным media/animalking.bik. Полный список видеороликов см. на этой странице.(en)

P.S. Обновление редактора сломало видео. Для восстановления работы скопируйте video_splitter.nut в "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2_dlc2 \ scripts \ vscripts \ video" из "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2 \ scripts \ vscripts \ video"

Выходной лифт

5) Для создания выходного лифта просто повторите шаги 1-3, но вместо "arrival_elevator" выберите "instances/turbine_elevator/departure_elevator_a4_logic.vmf" и "instances/turbine_elevator/departure_elevator_a4_base.vmf", оба находятся в одной папке. Назовите их "Departure_Elevator" и "Departure_Logic" соответственно.

Соединение с картой

Лифт, соединённый с комнатой.

6) Выпирающее в середине лифта боковое ответвление выглядит как коридорный переход. Именно этот переход вы должны соединить со своей картой. Для этого хорошо подойдёт тестовая дверь(en).

Note.pngПримечание:В карте будут утечки, если вы не прикроете проход брашами снаружи.
Note.pngПримечание:Вам не нужно создавать энтити для появления игрока или портальной пушки, всё это уже есть в экземпляре.

Ваш лифт готов, поздравляем!

Появление без картофелины

1. Повторите шаги 1 и 2 выше.

2. На шаге 3 замените "instances/turbine_elevator/arrival_elevator_a4_base.vmf" экземпляром "instances/turbine_elevator/arrival_elevator_base.vmf".

3. Щёлкните экземпляр дважды и нажмите Edit Instance. Сразу же сохраните его под новым именем ("my_arrival_elevator_base.vmf", к примеру), так как мы изменим его. Также не забудьте потом изменить Vmf Filename экземпляра в своей карте.

4. Дважды щёлкните trigger_once с именем "elevator_1_interior_start_trigger", что охватывает модель лифта.

5. Перейдите на вкладку Outputs и скопируйте строку:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch elevator_1 MoveToPathNode @elevator_1_bottom_path_1 0.10 No

6. Удалите строку этого выхода и рядом с моделью лифта поместите энтити func_instance_io_proxy с именем "proxy".

7. Перейдите на вкладку Outputs и вставьте строку, которую мы скопировали ранее.

8. Измените выход "OnStartTouch" на "OnProxyRelay". Сохраните изменения в экземпляре.

9. Вернитесь в свою карту и создайте энтити info_player_start и weapon_portalgun в лифте (проверьте, что игрок не застрянет в лифте).

10. Создайте энтити trigger_once, покрывающую всю модель лифта вместе с info_player_start.

11. Добавьте этот выход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch Arrival_logic instance:elevator_1;MoveToPathNode 0 0.00 No

12. Сохраните свою карту, скомпилируйте её и проверьте. Всё должно работать.

Появление без картофелины (простой способ)

1. Создайте logic_playerproxy под именем player_settings.

2. Где-нибудь в карте поместите logic_auto, лучше рядом с logic_playerproxy, чтобы их вместе было легче найти.

3. На вкладке Output в свойствах logic_auto добавьте этот выход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn player_settings RemovePotatosFromPortalgun 1.00 No

4. Наконец, сохраните свою карту, скомпилируйте и проверьте.

Появление без картофелины (простой способ 2)

1. Создайте trigger_weaponstrip внизу входного лифта.

2. Поместите портальную пушку над триггером.

3. В свойствах портальной пушки настройте её по своим предпочтениям (без картофелины или только с синим порталом).

Создание старого лифта

1. Следуйте инструкциям выше, но для Arrival_Elevator используйте instances/underground/test_dome_entrance_lift_01.vmf и не создавайте Arrival_Logic.

2. Внутри лифта создайте info_player_start. Если это не удалось сделать в трехмерном виде, создайте эту энтити в двухмерном виде и поместите её так, чтобы она касалась ногами пола лифта. (НЕ шахты лифта, а самого лифта.)

3. Создайте энтити logic_auto (или, если такая уже есть, используйте её). На вкладке Outputs добавьте вход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn Arrival_Elevator-entrance_lift_train StartForward 0.00 No

Он будет указан, как ошибочный. Но он всё равно работает. Здесь также работает "простой способ", как убрать картофелину с пушки.

Создание старого лифта (простой способ)

Откройте vmf-файл maps\instances\underground\test_dome_entrance_lift_01.vmf и найдите энтити point_teleport под именем @test_dome_lift_entry_teleport, смените её имя на @arrival_teleport и сохраните экземпляр под другим именем.

Свой вход и выход

Чтобы игрок появлялся в другом месте, создайте point_teleport(en) и назовите её @arrival_teleport, задайте Entity to Teleport на "!player".

Чтобы создать конец уровня в другом месте, добавьте следующий выход к триггеру или другой энтити, которая оканчивает ваш уровень:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png "insert output" @exit_teleport teleport 0.00 No

Если выход отмечен как ошибочный, игнорируйте это.

См. также