Ru/Elevator (Portal 2): Difference between revisions
Artyomkorol1 (talk | contribs) No edit summary |
m (obsolete language category) |
||
(8 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Лифт (Portal 2)|Elevator (Portal 2)}} | ||
|title=Лифт (Portal 2) | '''Лифты''' используются в Portal 2 для перехода игрока между уровнями. Не путайте лифт с {{L|Disassembler|разборочным аппаратом}}, который используется для перехода между уровнями в кооперативном режиме. | ||
| | |||
}} | |||
'''Лифты''' используются в Portal 2 для перехода игрока между уровнями. Не путайте лифт с | |||
==Добавление лифтов на карту== | ==Добавление лифтов на карту== | ||
{{ | {{Note|В данной статье мы создадим лифт, в котором будет появляться игрок в начале уровня. При появлении игрока на его портальной пушке будет прикреплена картофелина. Чтобы убрать картофелину, см. руководства ниже.}} | ||
===Входной лифт=== | ===Входной лифт=== | ||
1) Выберите инструмент entity tool и создайте | 1) Выберите инструмент entity tool и создайте {{L|func_instance}}. В поле Fix Up Name введите - "Arrival_Elevator", а в поле VMF file name укажите путь к лифту "instances/turbine_elevator/arrival_elevator_a4_base.vmf" | ||
{{ | {{Note|Если заготовка с лифтом не загружается, сохраните карту и перезапустите Hammer. Карта, которую вы редактировали, находится в папке portal 2\sdk_content\maps.}} | ||
[[ | [[File:Elevatortutorial1.jpg|thumb|right|Оба экземпляра сразу после копирования.]] | ||
2) Чтобы сделать проще, и не создавать два func_instance и потом не искать второй экземпляр среди всей этой путаницы, просто дублируйте "Arrival_Elevator" с помощью {{key|Shift}} и перетащите копию так, чтобы она оказалась точно над оригиналом. | 2) Чтобы сделать проще, и не создавать два func_instance и потом не искать второй экземпляр среди всей этой путаницы, просто дублируйте "Arrival_Elevator" с помощью {{key|Shift}} и перетащите копию так, чтобы она оказалась точно над оригиналом. | ||
{{ | {{Note|Если посмотреть на два высоких синих столба с текстурой "skip", вы сможете легко выровнять два этих элемента. Просто проверьте, чтобы столбы были выровнены во всех двухмерных видах. Также проверьте, чтобы были выровнены нижние части столбов. Если нужно выбрать одну из двух частей, то есть лифт или логику, вы можете нажать на один из кубов, соединённых со столбом.}} | ||
3) Дважды любой из двух экземпляров и переименуйте его на "Arrival_Logic" с VMF file name "instances/turbine_elevator/arrival_elevator_a4_logic.vmf". | 3) Дважды любой из двух экземпляров и переименуйте его на "Arrival_Logic" с VMF file name "instances/turbine_elevator/arrival_elevator_a4_logic.vmf". | ||
{{ | {{Note|Вы можете не использовать a4_logic. "arrival_elevator_logic" работает точно так же, только лифт идёт сверху вниз, а не снизу верх.}} | ||
Вы можете использовать другие лифты для разных тем; только проверьте, что у вас есть экземпляры и лифта, и логики. | Вы можете использовать другие лифты для разных тем; только проверьте, что у вас есть экземпляры и лифта, и логики. | ||
===Управление переходами=== | ===Управление переходами=== | ||
[[ | [[File:Elevatortutorial2.jpg|thumb|right|Управление переходами осуществляется с помощью небольших кубов за лифтом.]] | ||
4) Создайте где-нибудь ещё одну энтити func_instance; подходящее место - прямо за моделью лифта (но не внутри входного лифта!). Назовите энтити "Arrival_Departure_Trans" с VMF file name " | 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. Полный список видеороликов см. на | Вы можете выбирать видеоклипы в лифтовых комнатах установкой значений переменных в этом экземпляре; например, попробуйте установить значение переменной $arrival_video равным media/animalking.bik. Полный список видеороликов см. на {{L|List of Portal 2 Movies|этой странице.}} | ||
P.S. Обновление редактора сломало видео. Для восстановления работы скопируйте video_splitter.nut | P.S. Обновление редактора сломало видео. Для восстановления работы скопируйте video_splitter.nut в "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2_dlc2 \ scripts \ vscripts \ video" из "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2 \ scripts \ vscripts \ video" | ||
===Выходной лифт=== | ===Выходной лифт=== | ||
Line 34: | Line 30: | ||
===Соединение с картой=== | ===Соединение с картой=== | ||
[[ | [[File:Elevatortutorial3.jpg|thumb|right|Лифт, соединённый с комнатой.]] | ||
6) Выпирающее в середине лифта боковое ответвление выглядит как коридорный переход. Именно этот переход вы должны соединить со своей картой. Для этого хорошо подойдёт | 6) Выпирающее в середине лифта боковое ответвление выглядит как коридорный переход. Именно этот переход вы должны соединить со своей картой. Для этого хорошо подойдёт {{L|Test Door (Portal 2)|тестовая дверь}}. | ||
{{ | {{Note|В карте будут утечки, если вы не прикроете проход брашами снаружи.}} | ||
{{ | {{Note|Вам не нужно создавать энтити для появления игрока или портальной пушки, всё это уже есть в экземпляре.}} | ||
Ваш лифт готов, поздравляем! | Ваш лифт готов, поздравляем! | ||
Line 57: | Line 53: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || 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 | ||
|} | |} | ||
Line 74: | Line 70: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnStartTouch || Arrival_logic || instance:elevator_1;MoveToPathNode || 0 || 0.00 || No | ||
|} | |} | ||
Line 88: | Line 84: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnMapSpawn || player_settings || RemovePotatosFromPortalgun || || 1.00 || No | ||
|} | |} | ||
Line 103: | Line 99: | ||
1. Следуйте инструкциям выше, но для Arrival_Elevator используйте instances/underground/test_dome_entrance_lift_01.vmf и не создавайте Arrival_Logic. | 1. Следуйте инструкциям выше, но для Arrival_Elevator используйте instances/underground/test_dome_entrance_lift_01.vmf и не создавайте Arrival_Logic. | ||
2. Внутри лифта создайте info_player_start. Если это не удалось сделать в трехмерном виде, создайте эту энтити в | 2. Внутри лифта создайте info_player_start. Если это не удалось сделать в трехмерном виде, создайте эту энтити в двухмерном виде и поместите её так, чтобы она касалась ногами пола лифта. (НЕ шахты лифта, а самого лифта.) | ||
3. Создайте энтити logic_auto (или, если такая уже есть, используйте её). На вкладке Outputs добавьте вход: | 3. Создайте энтити logic_auto (или, если такая уже есть, используйте её). На вкладке Outputs добавьте вход: | ||
Line 109: | Line 105: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnMapSpawn || Arrival_Elevator-entrance_lift_train || StartForward || || 0.00 || No | ||
|} | |} | ||
Line 119: | Line 115: | ||
== Свой вход и выход == | == Свой вход и выход == | ||
Чтобы игрок появлялся в другом месте, создайте | Чтобы игрок появлялся в другом месте, создайте {{L|point_teleport}} и назовите её @arrival_teleport, задайте Entity to Teleport на "!player". | ||
Чтобы создать конец уровня в другом месте, добавьте следующий выход к триггеру или другой энтити, которая оканчивает ваш уровень: | Чтобы создать конец уровня в другом месте, добавьте следующий выход к триггеру или другой энтити, которая оканчивает ваш уровень: | ||
Line 125: | Line 121: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || "insert output" || @exit_teleport || teleport || || 0.00 || No | ||
|} | |} | ||
Если выход отмечен как ошибочный, игнорируйте это. | Если выход отмечен как ошибочный, игнорируйте это. | ||
==См. также== | ==См. также== | ||
* | *{{L|Underground Elevator|Лифт старой лаборатории}} | ||
{{ACategory|Portal 2 Tutorials}} | |||
{{ACategory|Portal_2_Level_Design}} |
Latest revision as of 03:46, 22 August 2024
Лифты используются в Portal 2 для перехода игрока между уровнями. Не путайте лифт с разборочным аппаратом , который используется для перехода между уровнями в кооперативном режиме.
Добавление лифтов на карту

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

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

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

Вы можете использовать другие лифты для разных тем; только проверьте, что у вас есть экземпляры и лифта, и логики.
Управление переходами
4) Создайте где-нибудь ещё одну энтити func_instance; подходящее место - прямо за моделью лифта (но не внутри входного лифта!). Назовите энтити "Arrival_Departure_Trans" с VMF file name "instances/transitions/arrival_departure_transition_ents.vmf ". Этот экземпляр отвечает за переходы во входном И выходном лифтах, но не отвечает за vmf'ы выходного лифта (см. ниже).
Вы можете выбирать видеоклипы в лифтовых комнатах установкой значений переменных в этом экземпляре; например, попробуйте установить значение переменной $arrival_video равным media/animalking.bik. Полный список видеороликов см. на этой странице.
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) Выпирающее в середине лифта боковое ответвление выглядит как коридорный переход. Именно этот переход вы должны соединить со своей картой. Для этого хорошо подойдёт тестовая дверь .


Ваш лифт готов, поздравляем!
Появление без картофелины
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 и скопируйте строку:
6. Удалите строку этого выхода и рядом с моделью лифта поместите энтити func_instance_io_proxy с именем "proxy".
7. Перейдите на вкладку Outputs и вставьте строку, которую мы скопировали ранее.
8. Измените выход "OnStartTouch" на "OnProxyRelay". Сохраните изменения в экземпляре.
9. Вернитесь в свою карту и создайте энтити info_player_start и weapon_portalgun в лифте (проверьте, что игрок не застрянет в лифте).
10. Создайте энтити trigger_once, покрывающую всю модель лифта вместе с info_player_start.
11. Добавьте этот выход:
12. Сохраните свою карту, скомпилируйте её и проверьте. Всё должно работать.
Появление без картофелины (простой способ)
1. Создайте logic_playerproxy под именем player_settings.
2. Где-нибудь в карте поместите logic_auto, лучше рядом с logic_playerproxy, чтобы их вместе было легче найти.
3. На вкладке Output в свойствах logic_auto добавьте этот выход:
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 добавьте вход:
Он будет указан, как ошибочный. Но он всё равно работает. Здесь также работает "простой способ", как убрать картофелину с пушки.
Создание старого лифта (простой способ)
Откройте vmf-файл maps\instances\underground\test_dome_entrance_lift_01.vmf и найдите энтити point_teleport под именем @test_dome_lift_entry_teleport, смените её имя на @arrival_teleport и сохраните экземпляр под другим именем.
Свой вход и выход
Чтобы игрок появлялся в другом месте, создайте point_teleport и назовите её @arrival_teleport, задайте Entity to Teleport на "!player".
Чтобы создать конец уровня в другом месте, добавьте следующий выход к триггеру или другой энтити, которая оканчивает ваш уровень:
Если выход отмечен как ошибочный, игнорируйте это.