Ru/Discouragement Field: Difference between revisions
| No edit summary | m (obsolete language category) | ||
| (6 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
| {{ | {{lang|title=Лазерное поле|Discouragement Field}} | ||
| |title=Лазерное поле | |||
| | | |||
| }} | |||
| [[File:Death field 1280.jpg|thumb|right|Пример смертельного лазерного поля.]] | [[File:Death field 1280.jpg|thumb|right|Пример смертельного лазерного поля.]] | ||
| '''Лазерное поле''' или '''Смертельное поле''' - специальное энергетическое поле в  | '''Лазерное поле''' или '''Смертельное поле''' - специальное энергетическое поле в {{L|Portal 2}}, которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог {{L|Emancipation Grid|поля экспроприации}}. | ||
| == Экземпляры == | == Экземпляры == | ||
| * Скачайте два файла-экземпляра (instance): [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_128x128.vmf death_field_128x128.vmf] и [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_256x256.vmf death_field_256x256.vmf] и поместите их в папку ''instances\gameplay''. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf). | * Скачайте два файла-экземпляра (instance): [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_128x128.vmf death_field_128x128.vmf] и [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_256x256.vmf death_field_256x256.vmf] и поместите их в папку ''instances\gameplay''. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf). | ||
| * Создайте новую энтити  | * Создайте новую энтити {{L|func_instance}} в карте, выберите ''VMF Filename'' и нажмите ''Browse...'' и выберите один из вариантов экземпляров смертельного поля. | ||
| * Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее: | * Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее: | ||
| ** Дайте func_instance название (''Fix Up Name''), например <code>death_field_1</code>. | ** Дайте func_instance название (''Fix Up Name''), например <code>death_field_1</code>. | ||
| Line 17: | Line 14: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger || death_field_1 || instance:enable;Trigger || <none>  || 0.00 || No | ||
| |} | |} | ||
| (для включения поля) | (для включения поля) | ||
| Line 24: | Line 21: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger || death_field_1 || instance:disable;Trigger|| <none>  || 0.00 || No | ||
| |} | |} | ||
| (для отключения поля) | (для отключения поля) | ||
| Line 31: | Line 28: | ||
| В данном руководстве мы создадим поле размером в 128 единиц. | В данном руководстве мы создадим поле размером в 128 единиц. | ||
| Выберите текстуру '''tools/toolsnodraw''' и создайте браш с размерами 128w 1l 128h. | Выберите текстуру '''tools/toolsnodraw''' и создайте браш с размерами 128w 1l 128h. | ||
| Нажмите {{key|Shift|A}}, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру '''effects/laserplane''' и нажмите кнопку "Fit". [[File:Laserplance tex.jpg|thumb|right|Нажмите для просмотра.]] | Нажмите {{key|Shift|A}}, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру '''effects/laserplane''' и нажмите кнопку "Fit". | ||
| Далее, преобразуйте браш в энтити, нажав кнопку '''toEntity''' в нижней правой части Hammer и сделайте её  | {{Note|После использования кнопки "Fit" также рекомендуется выровнять текстуру по верху, а также ввести 250 для оси 'Y'. Так будет убран нежелательный визуальный промежуток в средней части поля.}} | ||
| [[File:Laserplance tex.jpg|thumb|right|Нажмите для просмотра.]] | |||
| Далее, преобразуйте браш в энтити, нажав кнопку '''toEntity''' в нижней правой части Hammer и сделайте её {{L|func_brush}} со следующими настройками: | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Свойство || Значение | !  Свойство || Значение | ||
| Line 43: | Line 42: | ||
| |} | |} | ||
| Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него. | Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него. | ||
| Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру '''tools/toolstrigger''' ко всем сторонам и сделайте этот браш энтитей  | Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру '''tools/toolstrigger''' ко всем сторонам и сделайте этот браш энтитей {{L|trigger_hurt}} со следующими настройками: | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Свойство || Значение | !  Свойство || Значение | ||
| Line 54: | Line 53: | ||
| |} | |} | ||
| И, конечно, не забудьте включить флаг '''Clients''', иначе поле не будет работать. | И, конечно, не забудьте включить флаг '''Clients''', иначе поле не будет работать. | ||
| Чтобы лазеры не выходили из ниоткуда, создайте две энтити  | Чтобы лазеры не выходили из ниоткуда, создайте две энтити {{L|prop_static}}. | ||
| Одна будет слева, а другая - справа от браша со смертельным полем. | Одна будет слева, а другая - справа от браша со смертельным полем. | ||
| Выберите для энтитей модель '''models/props/fizzler.mdl''' и выберите стиль (skin) "2". | Выберите для энтитей модель '''models/props/fizzler.mdl''' и выберите стиль (skin) "2". | ||
| [[File:deathfield_models.jpg|thumb|right|Нажмите для просмотра.]] | [[File:deathfield_models.jpg|thumb|right|Нажмите для просмотра.]] | ||
| Теперь создайте  | Теперь создайте {{L|ambient_generic}} и разместите её примерно в середине браша. Дайте ей следующие настройки: | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Свойство || Значение | !  Свойство || Значение | ||
| Line 74: | Line 73: | ||
| Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте. | Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте. | ||
| Для примера возьмём  | Для примера возьмём {{L|prop_floor_button}}. Назовите её чем-то вроде "button" и создайте следующие выходы: | ||
| ::{| 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]] || OnPressed|| deathfield1_brush || Disable || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnPressed|| deathfield1_trigger || Disable || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnPressed|| deathfield1_sound || StopSound || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnPressed|| deathfield1_light || TurnOff || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnUnPressed|| deathfield1_brush || Enable || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnUnPressed|| deathfield1_trigger || Enable || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnUnPressed|| deathfield1_sound || PlaySound || || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnUnPressed|| deathfield1_light || TurnOn || || 0.00 || No | ||
| |} | |} | ||
| Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте. | Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте. | ||
| {{ACategory|Portal 2 Level Design}} | |||
| {{ACategory|Portal 2 Tutorials}} | |||
Latest revision as of 03:44, 22 August 2024
Лазерное поле или Смертельное поле - специальное энергетическое поле в Portal 2, которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог поля экспроприации.
Экземпляры
- Скачайте два файла-экземпляра (instance): death_field_128x128.vmf и death_field_256x256.vmf и поместите их в папку instances\gameplay. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf).
- Создайте новую энтити func_instance в карте, выберите VMF Filename и нажмите Browse... и выберите один из вариантов экземпляров смертельного поля.
- Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее:
- Дайте func_instance название (Fix Up Name), например death_field_1.
- Создайте триггер или кнопку где-нибудь и дайте следующие выходы:
 
- Дайте func_instance название (Fix Up Name), например 
| My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
|---|---|---|---|---|---|---|
|  | OnTrigger | death_field_1 | instance:enable;Trigger | <none> | 0.00 | No | 
(для включения поля)
| My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
|---|---|---|---|---|---|---|
|  | OnTrigger | death_field_1 | instance:disable;Trigger | <none> | 0.00 | No | 
(для отключения поля)
Создание вручную
В данном руководстве мы создадим поле размером в 128 единиц. Выберите текстуру tools/toolsnodraw и создайте браш с размерами 128w 1l 128h. Нажмите ⇧ Shift+A, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру effects/laserplane и нажмите кнопку "Fit".
 Примечание:После использования кнопки "Fit" также рекомендуется выровнять текстуру по верху, а также ввести 250 для оси 'Y'. Так будет убран нежелательный визуальный промежуток в средней части поля.
Примечание:После использования кнопки "Fit" также рекомендуется выровнять текстуру по верху, а также ввести 250 для оси 'Y'. Так будет убран нежелательный визуальный промежуток в средней части поля.Далее, преобразуйте браш в энтити, нажав кнопку toEntity в нижней правой части Hammer и сделайте её func_brush со следующими настройками:
- Свойство - Значение - Name - deathfield1_brush - Render FX - Constant Glow - Solidity - Never Solid 
 
Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него. Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру tools/toolstrigger ко всем сторонам и сделайте этот браш энтитей trigger_hurt со следующими настройками:
- Свойство - Значение - Name - deathfield1_trigger - Damage - 1000 - Damage Type - ENERGYBEAM 
 
И, конечно, не забудьте включить флаг Clients, иначе поле не будет работать. Чтобы лазеры не выходили из ниоткуда, создайте две энтити prop_static. Одна будет слева, а другая - справа от браша со смертельным полем. Выберите для энтитей модель models/props/fizzler.mdl и выберите стиль (skin) "2".
Теперь создайте ambient_generic и разместите её примерно в середине браша. Дайте ей следующие настройки:
- Свойство - Значение - Name - deathfield1_sound - Sound Name - Laser.BeamLoopMega - Volume - 8 - SourceEntityName - deathfield1_brush 
 
Выключите флаги Start silent и Is NOT looped!
Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте. Для примера возьмём prop_floor_button. Назовите её чем-то вроде "button" и создайте следующие выходы:
Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте.




























