Ru/Creating a portal elevator: Difference between revisions
No edit summary |
m (obsolete language category) |
||
(11 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Создание лифта для Portal/Portal 2|Creating a portal elevator}} | ||
|title= | {{todo|Данная статья переведена не полностью.}} | ||
| | |||
}} | |||
{{ | |||
== Введение == | == Введение == | ||
Не смотря на кажущуюся сложность, создание лифта достаточно простой процесс. А при желании можно создать заготовку с лифтом ( | Не смотря на кажущуюся сложность, создание лифта достаточно простой процесс. А при желании можно создать заготовку с лифтом ({{L|prefab}}) и необходимыми атрибутами для последующего дублирования в ваших картах, что в конечном итоге позволит избежать лишней работы. | ||
== Основа лифта == | == Основа лифта == | ||
Первое, что нужно сделать, это создать основу для лифта. Она состоит из | Первое, что нужно сделать, это создать основу для лифта. Она состоит из {{L|brush|браша}} и энтити {{en}}[[func_detail]]. | ||
=== Посадочная платформа === | === Посадочная платформа === | ||
[[ | [[File:Eletut.jpg|right|thumb|Шаг 1]] | ||
Наша платформа будет состоять | Наша платформа будет состоять из 7 стен, пола и потолка с отверстием как на рисунке справа. Пожалуйста, обратите внимание, что на изображение справа сетка равна 16 юнитам. По образу и подобию создайте ещё одну платформу (достаточно просто скопировать) и разместите её чуть выше первой. Таким образом у нас получилось две платформы, между которыми будет ходить наш лифт. | ||
=== Основа шахты лифта === | === Основа шахты лифта === | ||
[[ | [[File:Eletut_(1).jpg|right|thumb|Шаг 2]] | ||
Шахта будет состоять из 3 частей. Средняя часть шахты будет соединять наши 2 платформы, а верхняя и нижняя части будут закрывать вверх и низ у платформ соответственно (смотри рисунок справа). | Шахта будет состоять из 3 частей. Средняя часть шахты будет соединять наши 2 платформы, а верхняя и нижняя части будут закрывать вверх и низ у платформ соответственно (смотри рисунок справа). | ||
Среднею часть шахты сделайте высотой 384 юнита, верхнею и нижнею части высотой 64 юнита. Длину и ширину стен у всех частей шахты сделайте 192*16 юнитов. | Среднею часть шахты сделайте высотой 384 юнита, верхнею и нижнею части высотой 64 юнита. Длину и ширину стен у всех частей шахты сделайте 192*16 юнитов. | ||
Line 27: | Line 24: | ||
=== Доработка шахты лифта (использование func_detail) === | === Доработка шахты лифта (использование func_detail) === | ||
[[ | [[File:Eletut_(2).jpg|right|thumb|Шаг 3]] | ||
* 1. Создайте 4 браша размерами 16*16 и разместите их по углам шахты. Далее превратите их в | * 1. Создайте 4 браша размерами 16*16 и разместите их по углам шахты. Далее превратите их в {{L|func_detail}}. | ||
* 2. Затем, создайте блок, размерами 8*8*160 (это у нас будут балки шахты лифта, тем самым мы придадим более реалистичный вид нашей шахте): | * 2. Затем, создайте блок, размерами 8*8*160 (это у нас будут балки шахты лифта, тем самым мы придадим более реалистичный вид нашей шахте): | ||
:A. Примените к блоку текстуру - plasticwall002a. | :A. Примените к блоку текстуру - plasticwall002a. | ||
:B. Разделите наш блок при помощи инструмента | :B. Разделите наш блок при помощи инструмента {{L|Hammer_Clipping_Tool|Clipping Tool}} по вертикали на 3 части: 2, 4 и 2 юнита соответственно. | ||
:C. Затем возьмите среднею часть, которая у нас 4 юнита и уменьшите по ширине до 2х юнитов. Примените к этой части текстуру white008. В итоге у вас должна получиться балка в виде лежащей буквы П. (смотрите рисунок, шаг 3 нижняя проекция). | :C. Затем возьмите среднею часть, которая у нас 4 юнита и уменьшите по ширине до 2х юнитов. Примените к этой части текстуру white008. В итоге у вас должна получиться балка в виде лежащей буквы П. (смотрите рисунок, шаг 3 нижняя проекция). | ||
:D. Продублируйте нашу балку по периметру шахты. Т.е. в итоге у нас получилось 4 балки. | :D. Продублируйте нашу балку по периметру шахты. Т.е. в итоге у нас получилось 4 балки. | ||
Line 38: | Line 35: | ||
=== Доработка посадочной платформы === | === Доработка посадочной платформы === | ||
[[ | [[File:Eletut_(3).jpg|right|thumb|Шаг 4]] | ||
На посадочной платформе также можно разместить источники света по периметру как в оригинальных картах игры. Для простоты вы может открыть карту с примерами из SDK и скопировать оттуда. В примерах карт используется 16 источников света. (смотрите рисунок шаг 4, проекция вида сверху) | На посадочной платформе также можно разместить источники света по периметру как в оригинальных картах игры. Для простоты вы может открыть карту с примерами из SDK и скопировать оттуда. В примерах карт используется 16 источников света. (смотрите рисунок шаг 4, проекция вида сверху) | ||
<br> | <br> | ||
Line 51: | Line 48: | ||
=== Модель лифта === | === Модель лифта === | ||
[[ | [[File:Eletut_(4).jpg|right|thumb|Шаг 5]] | ||
Разместите [[prop_dynamic]] со следующими параметрами: | Разместите {{en}}[[prop_dynamic]] со следующими параметрами: | ||
{| class=standard-table | {| class=standard-table | ||
! Property Name || Value | ! Property Name || Value | ||
Line 63: | Line 60: | ||
|} | |} | ||
=== | === Добавление func_ tracktrain === | ||
[[ | [[File:Eletut_(5).jpg|right|thumb|Шаг 6]] | ||
Hide world details and make a | Hide world details and make a {{L|func_tracktrain}} out of invisible brushes as shown. | ||
{| class=standard-table | {| class=standard-table | ||
! Property Name || Value | ! Property Name || Value | ||
Line 89: | Line 86: | ||
=== Fixing door collisions === | === Fixing door collisions === | ||
[[ | [[File:Eletut_(6).jpg|right|thumb|Шаг 7]] | ||
Create a brush textured with tools\toolsinvisible and place it as shown. Tie this brush to a func_brush. This will stop a player from getting stuck in the door when collisions are enabled. | Create a brush textured with tools\toolsinvisible and place it as shown. Tie this brush to a func_brush. This will stop a player from getting stuck in the door when collisions are enabled. | ||
{| class=standard-table | {| class=standard-table | ||
Line 103: | Line 100: | ||
=== The Paths === | === The Paths === | ||
[[ | [[File:Eletut_(7).jpg|right|thumb|Шаг 8]] | ||
Place two paths in the center of the room. Call the first one "elevator1_path1," and the second one "elevator1_path2." Do not set the second path to point to anything. | Place two paths in the center of the room. Call the first one "elevator1_path1," and the second one "elevator1_path2." Do not set the second path to point to anything. | ||
Enable props and test the map using | Enable props and test the map using {{L|ent_fire}}. Determine if the paths need to be repositioned. In my case I needed to move it back 8 units and down 16. | ||
== The Details == | == The Details == | ||
Line 111: | Line 108: | ||
=== Beams === | === Beams === | ||
[[ | [[File:Eletut_(8).jpg|right|thumb|Шаг 9]] | ||
Place an | Place an {{L|info_particle_system}} with the following values: | ||
{| class=standard-table | {| class=standard-table | ||
! Property Name || Value | ! Property Name || Value | ||
Line 137: | Line 134: | ||
=== Lights === | === Lights === | ||
[[ | [[File:Eletut_(9).jpg|right|thumb|Шаг 10]] | ||
Place two | Place two {{L|light}}s with the following settings: | ||
{| class=standard-table | {| class=standard-table | ||
! Property Name || Value | ! Property Name || Value | ||
Line 154: | Line 151: | ||
=== Sounds === | === Sounds === | ||
[[ | [[File:Eletut_(10).jpg|right|thumb|Шаг 11]] | ||
Place three | Place three {{L|sound}}s, with their source set to the elevator model. | ||
They should be: | They should be: | ||
* Portal.elevator_chime | * Portal.elevator_chime | ||
Line 165: | Line 162: | ||
=== Shake === | === Shake === | ||
Add an | Add an {{L|env_shake}} with these settings: | ||
{| class=standard-table | {| class=standard-table | ||
! Property Name || Value | ! Property Name || Value | ||
Line 178: | Line 175: | ||
== The Trigger == | == The Trigger == | ||
Create a | Create a {{L|trigger}} brush inside the elevator with these outputs: | ||
{| class=standard-table | {| class=standard-table | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_doors || SetAnimation || close || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_doors || EnableCollision || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_block || Enable || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_train || StartForward || || 5.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_start || PlaySound || || 5.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_shake || StartShake || || 5.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_lights || TurnOn || || 8.00 || No | ||
|} | |} | ||
Line 202: | Line 199: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_shake || StartShake || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_close || PlaySound || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_lights || TurnOff || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_chime || PlaySound || || 1.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_doors || SetAnimation || open || 1.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_block || Disable || || 1.50 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || elevator1_doors || DisableCollision || || 1.50 || No | ||
|} | |} | ||
== Final Touches == | == Final Touches == | ||
Place a | Place a {{L|soundscape}} (portal_testchmb.elevator_shaft) in the center of the shaft. You may add a changelevel, which fires with the {{L|path_track}}. Change levels will not be covered in this tutorial. | ||
To make this an elevator at the beginning, simply change the train's first stop target to elevator1_path2. | To make this an elevator at the beginning, simply change the train's first stop target to elevator1_path2. | ||
Line 226: | Line 223: | ||
To make a multiple stop elevator, simply add another path track, and set the middle path tracks to fire a stop event to the train. A trigger can be placed at every floor and disabled until required. | To make a multiple stop elevator, simply add another path track, and set the middle path tracks to fire a stop event to the train. A trigger can be placed at every floor and disabled until required. | ||
Remember to disable collision when placing your trigger in your level. Otherwise, you will not be able to enter the elevator. | Remember to disable collision when placing your trigger in your level. Otherwise, you will not be able to enter the elevator. | ||
== См. также == | == См. также == | ||
* [[Category:Level_Design:ru|Дизайн Уровней]] | * [[Category:Level_Design:ru|Дизайн Уровней]] | ||
* | * {{LCategory|Portal level design|Разработка уровней для Portal}} | ||
* | * {{LCategory|Portal_2_Level_Design|Разработка уровней для Portal 2}} | ||
[[Category: | {{ACategory|Level_Design}} | ||
[[Category::Category:Portal level design/ru]] | |||
{{ACategory|Portal 2 Level Design}} | |||
{{ACategory|Portal 2 Tutorials}} |
Latest revision as of 03:43, 22 August 2024
Введение
Не смотря на кажущуюся сложность, создание лифта достаточно простой процесс. А при желании можно создать заготовку с лифтом (prefab ) и необходимыми атрибутами для последующего дублирования в ваших картах, что в конечном итоге позволит избежать лишней работы.
Основа лифта
Первое, что нужно сделать, это создать основу для лифта. Она состоит из браша и энтити func_detail.
Посадочная платформа
Наша платформа будет состоять из 7 стен, пола и потолка с отверстием как на рисунке справа. Пожалуйста, обратите внимание, что на изображение справа сетка равна 16 юнитам. По образу и подобию создайте ещё одну платформу (достаточно просто скопировать) и разместите её чуть выше первой. Таким образом у нас получилось две платформы, между которыми будет ходить наш лифт.
Основа шахты лифта
Шахта будет состоять из 3 частей. Средняя часть шахты будет соединять наши 2 платформы, а верхняя и нижняя части будут закрывать вверх и низ у платформ соответственно (смотри рисунок справа). Среднею часть шахты сделайте высотой 384 юнита, верхнею и нижнею части высотой 64 юнита. Длину и ширину стен у всех частей шахты сделайте 192*16 юнитов. Текстуру для нашей шахты можно использовать plasticwall002a.
Доработка шахты лифта (использование func_detail)
- 1. Создайте 4 браша размерами 16*16 и разместите их по углам шахты. Далее превратите их в func_detail .
- 2. Затем, создайте блок, размерами 8*8*160 (это у нас будут балки шахты лифта, тем самым мы придадим более реалистичный вид нашей шахте):
- A. Примените к блоку текстуру - plasticwall002a.
- B. Разделите наш блок при помощи инструмента Clipping Tool по вертикали на 3 части: 2, 4 и 2 юнита соответственно.
- C. Затем возьмите среднею часть, которая у нас 4 юнита и уменьшите по ширине до 2х юнитов. Примените к этой части текстуру white008. В итоге у вас должна получиться балка в виде лежащей буквы П. (смотрите рисунок, шаг 3 нижняя проекция).
- D. Продублируйте нашу балку по периметру шахты. Т.е. в итоге у нас получилось 4 балки.
- E. Преобразуйте наши балки в func_detail и разместите их через каждые 64 юнита в центральной части шахты (смотрите рисунок справа, шаг 3).
Доработка посадочной платформы
На посадочной платформе также можно разместить источники света по периметру как в оригинальных картах игры. Для простоты вы может открыть карту с примерами из SDK и скопировать оттуда. В примерах карт используется 16 источников света. (смотрите рисунок шаг 4, проекция вида сверху)
Лифт
Модель лифта
Разместите prop_dynamic со следующими параметрами:
Property Name | Value |
---|---|
Name | elevator1_model |
Parent | elevator1_train |
World Model | models/props/round_elevator_body.mdl |
Добавление func_ tracktrain
Hide world details and make a func_tracktrain out of invisible brushes as shown.
Property Name | Value |
---|---|
Change Angles | None |
First Stop Target | elevator1_path1 |
Height Above Track | 0 |
Max Speed | 65 |
Name | elevator1_train |
Stop Sound | eli_lab.elevator_stop |
Volume | 1 |
Check every flag except Fixed Orient, and Use Max Speed. Set these settings:
Fixing door collisions
Create a brush textured with tools\toolsinvisible and place it as shown. Tie this brush to a func_brush. This will stop a player from getting stuck in the door when collisions are enabled.
Property Name | Value |
---|---|
Name | elevator1_block |
Parent | elevator1_train |
Start Disabled | Yes |
The Paths
Place two paths in the center of the room. Call the first one "elevator1_path1," and the second one "elevator1_path2." Do not set the second path to point to anything. Enable props and test the map using ent_fire . Determine if the paths need to be repositioned. In my case I needed to move it back 8 units and down 16.
The Details
Beams
Place an info_particle_system with the following values:
Property Name | Value |
---|---|
Name | elevator1_beam |
Parent | elevator1_train |
Particle System Name | elevator_beam |
Start Active | Yes |
Place an env_citidel_energy_core with these settings:
Property Name | Value |
---|---|
Name | elevator1_core |
Parent | elevator1_train |
Lights
Place two light s with the following settings:
Property Name | Value |
---|---|
Name | elevator1_lights |
Appearence | Slow strobe |
Brightness | 183 204 218 60 |
Brightness HDR | 183 204 218 40 |
Also, set initially dark.
Sounds
Place three sound s, with their source set to the elevator model. They should be:
- Portal.elevator_chime
- Portal.elevator_start
- Doors.FullClose11
Name them something unique.
Shake
Add an env_shake with these settings:
Property Name | Value |
---|---|
Duration | 2 |
Name | elevator1_shake |
Parent | elevator1_train |
The Trigger
Create a trigger brush inside the elevator with these outputs:
Set the second path track to have these outputs:
Final Touches
Place a soundscape (portal_testchmb.elevator_shaft) in the center of the shaft. You may add a changelevel, which fires with the path_track . Change levels will not be covered in this tutorial.
To make this an elevator at the beginning, simply change the train's first stop target to elevator1_path2.
Note: You should save the elevator in its own file and copy and paste it to preserve the grouping, so you can easily turn it into a multi stop elevator.
To make a multiple stop elevator, simply add another path track, and set the middle path tracks to fire a stop event to the train. A trigger can be placed at every floor and disabled until required.
Remember to disable collision when placing your trigger in your level. Otherwise, you will not be able to enter the elevator.
См. также
[[Category::Category:Portal level design/ru]]