Ru/Faith Plate: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
mNo edit summary
m (obsolete language category)
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|title=Панель веры (Portal 2)|Faith Plate}}
|en=Faith Plate
|fr=Faith Plate:fr
|de=Faith Plate:de
}}
[[File:faithplateicon.png|thumb|right]]
[[File:faithplateicon.png|thumb|right]]
'''Панели Веры''' или '''катапульты''' это устройства для прыжков в [[Portal 2]]. Они могут подбрасывать объекты (такие как [[turret (Portal 2)|турели]], [[Cube (Portal 2)|кубы]]) и игроков.
'''Панели веры''' или '''катапульты''' - это подбрасывающие панели в {{L|Portal 2}}. Они могут подбрасывать объекты ({{L|npc_portal_turret_floor|турели}}, {{L|Cube (Portal 2)|кубы}}) и игроков.
==Создание==
==Создание с помощью экземпляров==
Для панели веры есть несколько экземпляров. Однако, энтити {{L|trigger_catapult}} потребуется добавить вручную. Настройте её выход для срабатывания экземпляра, который уже включает и звуки, и анимацию.


1) Создайте сущность [[prop_dynamic]]:
*gameplay\faithplate_black.vmf
*gameplay\faithplate_black_impostor.vmf
*gameplay\faithplate_clean.vmf
*gameplay\faithplate_dirty.vmf
*gameplay\faithplate_dirty_impostor.vmf
 
==Создание вручную==
 
1) Создайте энтити {{L|prop_dynamic}}:


::{| class=standard-table
::{| class=standard-table
Line 15: Line 20:
| World Model || "models/props/faith_plate.mdl" или "models/props/faith_plate_128.mdl"
| World Model || "models/props/faith_plate.mdl" или "models/props/faith_plate_128.mdl"
|-
|-
| Name || "catapult_model_1" (Вы можете изменить название, конечно, но не забудьте изменить его во всех входных воздействиях.)
| Name || "catapult_model_1" (Вы можете изменить название, но не забудьте изменить его во всех входах.)
|-
|-
| Collision || Not Solid
| Collision || Not Solid
Line 22: Line 27:
|}
|}


2) Создайте сущность [[info_target]]
2) Создайте энтити {{L|info_target}}:


::{| class=standard-table
::{| class=standard-table
Line 30: Line 35:
|}
|}


*Катапульта запустит Вас в эту цель.
*Это цель, в которую вас запустит катапульта.




3) Создайте кисть и установите тип её сущности равным [[trigger_catapult]], покройте её триггер текстурой:
3) Создайте браш и переведите его в энтити {{L|trigger_catapult}}, покройте её trigger-текстурой:


::{| class=standard-table
::{| class=standard-table
Line 42: Line 47:
| Launch Direction || "-90 0 0" Если хотите взлететь вверх
| Launch Direction || "-90 0 0" Если хотите взлететь вверх
|-
|-
| Player speed || Подберите оптимальное для Вас значение, для начала можете попробовать 750
| Player speed || Подберите оптимальное значение в зависимости от расстояния, для начала можете попробовать 750
|-
|-
| Physics speed || Параметр определяет скорость полета летающих пропов. Попробуйте +150 к Player speed (900).
| Physics speed || Определяет скорость полета летящих предметов. Прибавьте 150 к Player speed (900).
|-
|-
| Apply Angular impulse || True
| Apply Angular impulse || True
Line 50: Line 55:
| Launch target || catapult_target_1
| Launch target || catapult_target_1
|-
|-
| Use Threshold Check || NO
| Use Threshold Check || Для модели панели веры задайте значение NO.
|}
|}




{{Tip|Чтобы связать кисть с сущностью, выберите её, кликните на ней правой кнопкой мыши и выберите пункт контекстного меню Tie to Entity}}
{{tip|Чтобы преобразовать браш в энтити, выберите его, нажмите на нём правой кнопкой мыши и выберите пункт Tie to Entity}}
{{Tip|Скорость и траектория (угол запуска) являются обратными друг для друга: большая скорость - линейная траектория. И наоборот, маленькая скорость - параболическая траектория}}
{{tip|Скорость и траектория (угол запуска) обратны друг другу: чем выше скорость, тем прямее траектория. И наоборот, чем меньше скорость,  тем траектория выше.}}


::{| 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
|-
|-
| [[Image:Io11.png]] || OnCatapulted || catapult_model_1 || SetAnimation || (angled, fast or straightup) || 0.00 || No
| [[File:Io11.png]] || OnCatapulted || catapult_model_1 || SetAnimation || (angled, fast или straightup) || 0.00 || No
|}
|}
[[Image:Source_Sdk_-_Aerial_Faith_Plate.jpg|thumb|right|300px|Пример панели веры в Source Sdk]]
[[File:Source_Sdk_-_Aerial_Faith_Plate.jpg|thumb|right|300px|Пример панели веры в Source Sdk]]
4) Создайте сущность [[ambient_generic]]:
4) Создайте энтити {{L|ambient_generic}}:


::{| class=standard-table
::{| class=standard-table
Line 72: Line 77:
| Sound Name || Metal_SeafloorCar.BulletImpact
| Sound Name || Metal_SeafloorCar.BulletImpact
|-
|-
| SourceEntityName || catapult_model_1 (название пропа панели веры)
| SourceEntityName || catapult_model_1 (название модели панели веры)
|}
|}


::{| class=standard-table
::{| class=standard-table
! Flags || Value
! Флаги || Значение
|-
|-
| Is NOT Looped || Yes
| Is NOT Looped || Yes
Line 83: Line 88:
|}
|}


Чтобы звук заработал, Вы должны вернуться назад к вашему trigger_catapult и создать новое выходное воздействие:
Чтобы звук заработал, вернитесь к trigger_catapult и создайте новый выход:
::{| 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
|-
|-
| [[Image:Io11.png]] || OnCatapulted || catapult_sound_1 || playsound || - || 0.00 || No
| [[File:Io11.png]] || OnCatapulted || catapult_sound_1 || playsound || - || 0.00 || No
|}
|}
5) Создайте [[func_clip_vphysics]], покрытую текстурой триггера, под панелью веры, в противном случае объекты будут падать через нее.
5) Создайте блок с текстурой tools/toolsinvisible под моделью панели веры, чтобы игрок и предметы не проваливались сквозь неё.
6) Создайте кисть с текстурой toolsplayerclip под панелью веры, иначе вы провалитесь вниз.


7) Так же не забудьте добавить [[info_placement_helper]].
6) Также не забудьте добавить {{L|info_placement_helper}} на портальную поверхность в конце траектории - так будет легче пролететь через портал.


==Отладка==
==Отладка==
В комментариях разработчиков было показано, что имеется возможность визуально наблюдать траектории полета для отладки и настройки панели веры.
Как было показано в комментариях разработчиков, можно визуально наблюдать траектории полета для отладки и настройки панели веры.
Введите в консоли "ent_bbox trigger_catapult" и вы увидите визуальное представление траекторий полета от каждого объекта trigger_catapult. Если вы хотите увидеть только одну траекторию пропищите "ent_bbox <идентификатор сущности вашей панели веры>".
В консоли введите "ent_bbox trigger_catapult", и вы увидите визуальное представление траекторий полета от каждой trigger_catapult. Чтобы просмотреть только одну траекторию, введите "ent_bbox <название энтити панели веры>".
Also try: ent_text trigger_catapult
 
Если в trigger_catapult используется константная скорость (Use Exact Velocity = yes), то вы можете изменять скорость игрока и предметов прямо во время игры:
* "ent_fire <название энтити панели веры> setplayerspeed <скорость>"
* "ent_fire <название энтити панели веры> setphysicspeed <скорость>"


Если скорости полета объектов и игрока заданы как константы, то вы можете менять их прямо во время игры.
* "ent_fire <идентификатор сущности вашей панели веры> setplayerspeed <скорость>"
* "ent_fire <идентификатор сущности вашей панели веры> setphysicspeed <скорость>"
Визуальное отображение траекторий обновится автоматически.
Визуальное отображение траекторий обновится автоматически.


==Советы==
==Советы==


Что бы панель не отбрасывала Вас, когда вы просто проходите по ней установите следующие параметры [[trigger_catapult]]:
Вы также можете использовать {{L|trigger_catapult}} для контроля приземления игрока. Например, вы можете установить портал на стене, поднятой под углом вверх, и вылететь из неё.
 
Чтобы панель не отбрасывала, когда вы просто проходите по ней, установите следующие параметры {{L|trigger_catapult}}:


::{| class=standard-table
::{| class=standard-table
! Название свойства || Значение
! Название свойства || Значение
|-
|-
| Lower threshold || Нижняя граница скорости в процентах от заданной скорости полета, задается числом от 0 до 1.
| Lower threshold || Нижняя граница скорости в процентах от заданной скорости полета, задается десятичной дробью от 0 до 1.
|-
|-
| Upper threshold || Верхняя граница.
| Upper threshold || Верхняя граница.
|-
|-
| UseThresholdCheck || 'YES' - использовать ограничения, 'NO' - всегда катапультировать.
| UseThresholdCheck || 'YES' - использовать ограничения, 'NO' - всегда отбрасывать.
|}
|}


Например, Вы задали скорость полета 500 ед/сек. Нижняя граница 0.1, это означает, что игрок должен двигаться со скоростью равной как минимум 10% от скорости полета; т.е 50 ед/сек. Верхняя граница 0.5 т.е скорость игрока не должна превышать 50% от скорости полета; 250 ед/сек. Пока скорость перемещения игрока в этих пределах [[trigger_catapult]] работает.
С настройками ограничений необходимо немного разобраться:
 
Вопреки обыденным представлениям, ограничения '''НЕ''' выражают процент скорости игрока в традиционном понимании.
Нижняя граница - это процентное значение, которое '''''вычитается''''' из скорости игрока, а верхняя граница - '''''добавляется''''' к скорости игрока.
Например, допустим, вы задали скорость катапультирования на 500 ед./сек. Нижняя граница 0.1 подразумевает, что игрок должен двигаться со скоростью как минимум 90% (100% - 10%) - то есть 450 ед./сек. Верхняя граница 0.5 означает, что игрок не должен двигаться быстрее 150% (100% + 50%) - то есть 750 ед./сек. Пока скорость перемещения игрока находится в этих пределах, {{L|trigger_catapult}} отбрасывает игрока.
Следовательно, ограничения работают так: '''''чем ниже заданные ограничения, тем больше вероятность, что скорость игрока приведёт к срабатыванию катапульты'''''.
 
К сожалению, здесь придётся учесть ещё кое-что: если для {{L|trigger_catapult}} указана цель, то скорость игрока будет изменена так, чтобы он долетел до этой цели, поэтому становится невозможно узнать точную скорость, с которой игрок будет катапультирован. Даже если Use Exact Velocity задано на yes, скорость игрока всё ещё может варьироваться. Поэтому ограничения катапультирования должны охватывать все возможные скорости.
 
Всё это более или менее легко проверить: в целях отладки программисты добавили консольную команду ent_bbox, которая используется для графического отображения траекторий катапульт в игре. К счастью, эта команда также выводит текущую скорость игрока и действующие ограничения (в ед./сек.), в момент, когда игрок встаёт на {{L|trigger_catapult}}. Но чтобы эта команда работала, необходимо, чтобы у {{L|trigger_catapult}} была указана цель катапультирования.


== См. также ==
== См. также ==
* [[:Category:Portal 2 Level Design:ru|Разработка уровней для Portal 2]]
* {{LCategory|Portal 2 Level Design|Разработка уровней для Portal 2}}


[[Category:Portal 2 Level Design:ru]]
{{ACategory|Portal 2 Level Design}}
[[Category:Portal 2 Tutorials:ru]]
{{ACategory|Portal 2 Tutorials}}

Latest revision as of 03:47, 22 August 2024

English (en)Deutsch (de)Français (fr)Русский (ru)中文 (zh)Translate (Translate)
Faithplateicon.png

Панели веры или катапульты - это подбрасывающие панели в Portal 2(en). Они могут подбрасывать объекты (турели(en), кубы(en)) и игроков.

Создание с помощью экземпляров

Для панели веры есть несколько экземпляров. Однако, энтити trigger_catapult(en) потребуется добавить вручную. Настройте её выход для срабатывания экземпляра, который уже включает и звуки, и анимацию.

  • gameplay\faithplate_black.vmf
  • gameplay\faithplate_black_impostor.vmf
  • gameplay\faithplate_clean.vmf
  • gameplay\faithplate_dirty.vmf
  • gameplay\faithplate_dirty_impostor.vmf

Создание вручную

1) Создайте энтити prop_dynamic(en):

Название свойства Значение
World Model "models/props/faith_plate.mdl" или "models/props/faith_plate_128.mdl"
Name "catapult_model_1" (Вы можете изменить название, но не забудьте изменить его во всех входах.)
Collision Not Solid
Disable Shadows Yes

2) Создайте энтити info_target(en):

Название свойства Значение
Name catapult_target_1
  • Это цель, в которую вас запустит катапульта.


3) Создайте браш и переведите его в энтити trigger_catapult(en), покройте её trigger-текстурой:

Название свойства Значение
Name catapult_trigger_1
Launch Direction "-90 0 0" Если хотите взлететь вверх
Player speed Подберите оптимальное значение в зависимости от расстояния, для начала можете попробовать 750
Physics speed Определяет скорость полета летящих предметов. Прибавьте 150 к Player speed (900).
Apply Angular impulse True
Launch target catapult_target_1
Use Threshold Check Для модели панели веры задайте значение NO.


Tip.pngСовет:Чтобы преобразовать браш в энтити, выберите его, нажмите на нём правой кнопкой мыши и выберите пункт Tie to Entity
Tip.pngСовет:Скорость и траектория (угол запуска) обратны друг другу: чем выше скорость, тем прямее траектория. И наоборот, чем меньше скорость, тем траектория выше.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCatapulted catapult_model_1 SetAnimation (angled, fast или straightup) 0.00 No
Пример панели веры в Source Sdk

4) Создайте энтити ambient_generic(en):

Название свойства Значение
Name catapult_sound_1
Sound Name Metal_SeafloorCar.BulletImpact
SourceEntityName catapult_model_1 (название модели панели веры)
Флаги Значение
Is NOT Looped Yes
Start Silent Yes

Чтобы звук заработал, вернитесь к trigger_catapult и создайте новый выход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCatapulted catapult_sound_1 playsound - 0.00 No

5) Создайте блок с текстурой tools/toolsinvisible под моделью панели веры, чтобы игрок и предметы не проваливались сквозь неё.

6) Также не забудьте добавить info_placement_helper(en) на портальную поверхность в конце траектории - так будет легче пролететь через портал.

Отладка

Как было показано в комментариях разработчиков, можно визуально наблюдать траектории полета для отладки и настройки панели веры. В консоли введите "ent_bbox trigger_catapult", и вы увидите визуальное представление траекторий полета от каждой trigger_catapult. Чтобы просмотреть только одну траекторию, введите "ent_bbox <название энтити панели веры>".

Если в trigger_catapult используется константная скорость (Use Exact Velocity = yes), то вы можете изменять скорость игрока и предметов прямо во время игры:

  • "ent_fire <название энтити панели веры> setplayerspeed <скорость>"
  • "ent_fire <название энтити панели веры> setphysicspeed <скорость>"

Визуальное отображение траекторий обновится автоматически.

Советы

Вы также можете использовать trigger_catapult(en) для контроля приземления игрока. Например, вы можете установить портал на стене, поднятой под углом вверх, и вылететь из неё.

Чтобы панель не отбрасывала, когда вы просто проходите по ней, установите следующие параметры trigger_catapult(en):

Название свойства Значение
Lower threshold Нижняя граница скорости в процентах от заданной скорости полета, задается десятичной дробью от 0 до 1.
Upper threshold Верхняя граница.
UseThresholdCheck 'YES' - использовать ограничения, 'NO' - всегда отбрасывать.

С настройками ограничений необходимо немного разобраться:

Вопреки обыденным представлениям, ограничения НЕ выражают процент скорости игрока в традиционном понимании. Нижняя граница - это процентное значение, которое вычитается из скорости игрока, а верхняя граница - добавляется к скорости игрока. Например, допустим, вы задали скорость катапультирования на 500 ед./сек. Нижняя граница 0.1 подразумевает, что игрок должен двигаться со скоростью как минимум 90% (100% - 10%) - то есть 450 ед./сек. Верхняя граница 0.5 означает, что игрок не должен двигаться быстрее 150% (100% + 50%) - то есть 750 ед./сек. Пока скорость перемещения игрока находится в этих пределах, trigger_catapult(en) отбрасывает игрока. Следовательно, ограничения работают так: чем ниже заданные ограничения, тем больше вероятность, что скорость игрока приведёт к срабатыванию катапульты.

К сожалению, здесь придётся учесть ещё кое-что: если для trigger_catapult(en) указана цель, то скорость игрока будет изменена так, чтобы он долетел до этой цели, поэтому становится невозможно узнать точную скорость, с которой игрок будет катапультирован. Даже если Use Exact Velocity задано на yes, скорость игрока всё ещё может варьироваться. Поэтому ограничения катапультирования должны охватывать все возможные скорости.

Всё это более или менее легко проверить: в целях отладки программисты добавили консольную команду ent_bbox, которая используется для графического отображения траекторий катапульт в игре. К счастью, эта команда также выводит текущую скорость игрока и действующие ограничения (в ед./сек.), в момент, когда игрок встаёт на trigger_catapult(en). Но чтобы эта команда работала, необходимо, чтобы у trigger_catapult(en) была указана цель катапультирования.

См. также