Ru/Creating a portal elevator: Difference between revisions
Thunder4ik (talk | contribs) m (→top: clean up, replaced: {{Todo:ru → {{todo) |
Thunder4ik (talk | contribs) m (Unicodifying, replaced: [[Image: → [[File: (25)) |
||
Line 11: | Line 11: | ||
=== Посадочная платформа === | === Посадочная платформа === | ||
[[ | [[File:Eletut.jpg|right|thumb|Шаг 1]] | ||
Наша платформа будет состоять из 7 стен, пола и потолка с отверстием как на рисунке справа. Пожалуйста, обратите внимание, что на изображение справа сетка равна 16 юнитам. По образу и подобию создайте ещё одну платформу (достаточно просто скопировать) и разместите её чуть выше первой. Таким образом у нас получилось две платформы, между которыми будет ходить наш лифт. | Наша платформа будет состоять из 7 стен, пола и потолка с отверстием как на рисунке справа. Пожалуйста, обратите внимание, что на изображение справа сетка равна 16 юнитам. По образу и подобию создайте ещё одну платформу (достаточно просто скопировать) и разместите её чуть выше первой. Таким образом у нас получилось две платформы, между которыми будет ходить наш лифт. | ||
Line 17: | Line 17: | ||
=== Основа шахты лифта === | === Основа шахты лифта === | ||
[[ | [[File:Eletut_(1).jpg|right|thumb|Шаг 2]] | ||
Шахта будет состоять из 3 частей. Средняя часть шахты будет соединять наши 2 платформы, а верхняя и нижняя части будут закрывать вверх и низ у платформ соответственно (смотри рисунок справа). | Шахта будет состоять из 3 частей. Средняя часть шахты будет соединять наши 2 платформы, а верхняя и нижняя части будут закрывать вверх и низ у платформ соответственно (смотри рисунок справа). | ||
Среднею часть шахты сделайте высотой 384 юнита, верхнею и нижнею части высотой 64 юнита. Длину и ширину стен у всех частей шахты сделайте 192*16 юнитов. | Среднею часть шахты сделайте высотой 384 юнита, верхнею и нижнею части высотой 64 юнита. Длину и ширину стен у всех частей шахты сделайте 192*16 юнитов. | ||
Line 24: | Line 24: | ||
=== Доработка шахты лифта (использование func_detail) === | === Доработка шахты лифта (использование func_detail) === | ||
[[ | [[File:Eletut_(2).jpg|right|thumb|Шаг 3]] | ||
* 1. Создайте 4 браша размерами 16*16 и разместите их по углам шахты. Далее превратите их в [[func_detail]]. | * 1. Создайте 4 браша размерами 16*16 и разместите их по углам шахты. Далее превратите их в [[func_detail]]. | ||
* 2. Затем, создайте блок, размерами 8*8*160 (это у нас будут балки шахты лифта, тем самым мы придадим более реалистичный вид нашей шахте): | * 2. Затем, создайте блок, размерами 8*8*160 (это у нас будут балки шахты лифта, тем самым мы придадим более реалистичный вид нашей шахте): | ||
Line 35: | Line 35: | ||
=== Доработка посадочной платформы === | === Доработка посадочной платформы === | ||
[[ | [[File:Eletut_(3).jpg|right|thumb|Шаг 4]] | ||
На посадочной платформе также можно разместить источники света по периметру как в оригинальных картах игры. Для простоты вы может открыть карту с примерами из SDK и скопировать оттуда. В примерах карт используется 16 источников света. (смотрите рисунок шаг 4, проекция вида сверху) | На посадочной платформе также можно разместить источники света по периметру как в оригинальных картах игры. Для простоты вы может открыть карту с примерами из SDK и скопировать оттуда. В примерах карт используется 16 источников света. (смотрите рисунок шаг 4, проекция вида сверху) | ||
<br> | <br> | ||
Line 48: | Line 48: | ||
=== Модель лифта === | === Модель лифта === | ||
[[ | [[File:Eletut_(4).jpg|right|thumb|Шаг 5]] | ||
Разместите {{en}}[[prop_dynamic]] со следующими параметрами: | Разместите {{en}}[[prop_dynamic]] со следующими параметрами: | ||
{| class=standard-table | {| class=standard-table | ||
Line 62: | Line 62: | ||
=== Добавление func_ tracktrain === | === Добавление func_ tracktrain === | ||
[[ | [[File:Eletut_(5).jpg|right|thumb|Шаг 6]] | ||
Hide world details and make a [[func_tracktrain]] out of invisible brushes as shown. | Hide world details and make a [[func_tracktrain]] out of invisible brushes as shown. | ||
{| class=standard-table | {| class=standard-table | ||
Line 86: | 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 100: | 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 [[ent_fire]]. Determine if the paths need to be repositioned. In my case I needed to move it back 8 units and down 16. | 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. | ||
Line 108: | Line 108: | ||
=== Beams === | === Beams === | ||
[[ | [[File:Eletut_(8).jpg|right|thumb|Шаг 9]] | ||
Place an [[info_particle_system]] with the following values: | Place an [[info_particle_system]] with the following values: | ||
{| class=standard-table | {| class=standard-table | ||
Line 134: | Line 134: | ||
=== Lights === | === Lights === | ||
[[ | [[File:Eletut_(9).jpg|right|thumb|Шаг 10]] | ||
Place two [[light]]s with the following settings: | Place two [[light]]s with the following settings: | ||
{| class=standard-table | {| class=standard-table | ||
Line 151: | Line 151: | ||
=== Sounds === | === Sounds === | ||
[[ | [[File:Eletut_(10).jpg|right|thumb|Шаг 11]] | ||
Place three [[sound]]s, with their source set to the elevator model. | Place three [[sound]]s, with their source set to the elevator model. | ||
They should be: | They should be: | ||
Line 180: | Line 180: | ||
! || 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 199: | 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 | ||
|} | |} | ||
Revision as of 08:41, 8 January 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 lights 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 sounds, 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.