Ru/Panels: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (Nesciuse moved page Panels:ru to Ru/Panels over redirect: -Language prefixes)
m (Using L template for links)
Line 3: Line 3:
[[File:Portal2_panels.jpg|thumb|right|300px|"Доски будущего!" <br>- '''Кейв Джонсон''']]
[[File:Portal2_panels.jpg|thumb|right|300px|"Доски будущего!" <br>- '''Кейв Джонсон''']]


{{portal2}} '''Панели''' - архитектурный элемент [[Portal 2]]. Каждая панель расположена так, что вместе они образуют тестовую камеру. Поскольку панели находятся на роботизированных руках, камера может реагировать на действия игрока. Панели могут образовывать лестницы, выступы, открываться наподобие дверей, и, как правило, дают эффект "живой" комнаты.  
{{portal2}} '''Панели''' - архитектурный элемент {{L|Portal 2}}. Каждая панель расположена так, что вместе они образуют тестовую камеру. Поскольку панели находятся на роботизированных руках, камера может реагировать на действия игрока. Панели могут образовывать лестницы, выступы, открываться наподобие дверей, и, как правило, дают эффект "живой" комнаты.  


== Создание панелей ==
== Создание панелей ==


1. Создайте [[prop_dynamic]] со следующими настройками:
1. Создайте {{L|prop_dynamic}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Название свойства || Параметр
!  Название свойства || Параметр
Line 20: Line 20:
|}
|}


2. Создайте браш размером <code>256Lx256Wx32H</code>. Преобразуйте его в энтити [[func_brush]] со следующими настройками:
2. Создайте браш размером <code>256Lx256Wx32H</code>. Преобразуйте его в энтити {{L|func_brush}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Название свойства || Параметр
!  Название свойства || Параметр
Line 29: Line 29:
|}
|}


3. Создайте энтити [[logic_auto]] и установите следующие выходы:
3. Создайте энтити {{L|logic_auto}} и установите следующие выходы:
::{| 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
Line 38: Line 38:
Теперь func_brush будет двигаться вместе с анимацией prop_dynamic.
Теперь func_brush будет двигаться вместе с анимацией prop_dynamic.


4. Создайте [[logic_relay]] со следующими настройками:
4. Создайте {{L|logic_relay}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Название Свойства || Параметр
!  Название Свойства || Параметр
Line 128: Line 128:


== Скорость воспроизведения анимации ==
== Скорость воспроизведения анимации ==
Иной раз бывает необходимо воспроизвести анимацию робо-руки (или любой другой [[prop_dynamic]]) быстрее или медленнее. Скорость воспроизведения энтити [[prop_dynamic]] выражается десятичными дробями, имеющими процентное значение, 1 - эквивалент 100%, 2 - 200%, 0.5 - 50%, 0 - 0% от исходной скорости воспроизведения (0 остановит анимацию). Для изменения стандартной скорости воспроизведения есть два способа.
Иной раз бывает необходимо воспроизвести анимацию робо-руки (или любой другой {{L|prop_dynamic}}) быстрее или медленнее. Скорость воспроизведения энтити {{L|prop_dynamic}} выражается десятичными дробями, имеющими процентное значение, 1 - эквивалент 100%, 2 - 200%, 0.5 - 50%, 0 - 0% от исходной скорости воспроизведения (0 остановит анимацию). Для изменения стандартной скорости воспроизведения есть два способа.


Первый способ более лёгкий и применяется ко всем анимациям какой-либо [[prop_dynamic]]. Скорость воспроизведения можно назначить робо-руке, и она сохранится для всех анимаций руки (любые её анимации всегда будут воспроизводиться на заданной скорости). Для этого в свойствах руки нужно добавить ещё один выход:
Первый способ более лёгкий и применяется ко всем анимациям какой-либо {{L|prop_dynamic}}. Скорость воспроизведения можно назначить робо-руке, и она сохранится для всех анимаций руки (любые её анимации всегда будут воспроизводиться на заданной скорости). Для этого в свойствах руки нужно добавить ещё один выход:


::{| class=standard-table
::{| class=standard-table
Line 159: Line 159:
Однако, в отличие от стандартных, эти панели создаются по-другому. Вот как это делает Valve:
Однако, в отличие от стандартных, эти панели создаются по-другому. Вот как это делает Valve:


1. Создайте энтити [[prop_dynamic]] со следующими настройками:
1. Создайте энтити {{L|prop_dynamic}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Название свойства || Значение
!  Название свойства || Значение
Line 176: Line 176:
{{Note|Для выбора доступно огромное количество анимаций "пробуждения", начиная с powerupA_01. Выберите среди них ту, которая подойдёт лучше всего.}}
{{Note|Для выбора доступно огромное количество анимаций "пробуждения", начиная с powerupA_01. Выберите среди них ту, которая подойдёт лучше всего.}}


2. Создайте браш над моделью, проверьте, что он подходит и правильно выровнен по лицевой стороне панели. Преобразуйте её в энтити [[func_brush]] со следующими настройками:
2. Создайте браш над моделью, проверьте, что он подходит и правильно выровнен по лицевой стороне панели. Преобразуйте её в энтити {{L|func_brush}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Название свойства || Значение
!  Название свойства || Значение
Line 185: Line 185:
|}
|}


3. Создайте энтити [[logic_auto]] и добавьте следующие выходы:
3. Создайте энтити {{L|logic_auto}} и добавьте следующие выходы:
::{| 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
Line 197: Line 197:




4. Создайте [[logic_relay]] со следующими настройками:
4. Создайте {{L|logic_relay}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Название свойства || Значение
!  Название свойства || Значение
Line 210: Line 210:
|}
|}


Теперь просто добавьте триггер и активируйте реле - лучше всего подойдёт [[trigger_look]].
Теперь просто добавьте триггер и активируйте реле - лучше всего подойдёт {{L|trigger_look}}.




Line 217: Line 217:


== См. также ==
== См. также ==
* [[Creating_rotating_panels:ru|Вращающиеся панели]]
* {{L|Creating_rotating_panels|Вращающиеся панели}}


[[Category:Portal 2 Level Design:ru]]
[[Category:Portal 2 Level Design:ru]]
[[Category:Portal 2 Tutorials:ru]]
[[Category:Portal 2 Tutorials:ru]]

Revision as of 07:37, 11 July 2024

English (en)Français (fr)Русский (ru)中文 (zh)Translate (Translate)
"Доски будущего!"
- Кейв Джонсон

Portal 2 Панели - архитектурный элемент Portal 2(en). Каждая панель расположена так, что вместе они образуют тестовую камеру. Поскольку панели находятся на роботизированных руках, камера может реагировать на действия игрока. Панели могут образовывать лестницы, выступы, открываться наподобие дверей, и, как правило, дают эффект "живой" комнаты.

Создание панелей

1. Создайте prop_dynamic(en) со следующими настройками:

Название свойства Параметр
World Model models/anim_wp/room_transform/arm64x64_interior.mdl
Name panel1
HoldAnimation true
Collision Not Solid

2. Создайте браш размером 256Lx256Wx32H. Преобразуйте его в энтити func_brush(en) со следующими настройками:

Название свойства Параметр
Name panel1_brush
Parent panel1

3. Создайте энтити logic_auto(en) и установите следующие выходы:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn panel1_brush SetParentAttachmentMaintainOffset panel_attach 0.00 Yes(?)

Теперь func_brush будет двигаться вместе с анимацией prop_dynamic.

4. Создайте logic_relay(en) со следующими настройками:

Название Свойства Параметр
Name relay_panel1_animation

и следующими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger panel1 SetAnimation (ANIMATION NAME) 0.00 Yes(?)

Прикрепляемые к панелям материалы

Примечание: Модели idle или static модели не двигаются. Они служат только для красоты.


Модель Анимированная? Название прикрепления к панели
anim_wp\arm_interior_192\arm_interior_128.mdl Да GLASS - N/A
anim_wp\arm_interior_192\arm_interior_192.mdl Да GLASS - N/A
anim_wp\arm_interior_192\video_arm.mdl Да monitor_attach
anim_wp\arm_interior_192\video_arm_big.mdl Да monitor_attach
anim_wp\circle_shield\circle_shield.mdl Да panel_top
anim_wp\framework\circle_shield_static.mdl Нет N/A
anim_wp\room_transform\arm64x64_interior.mdl Да panel_attach
anim_wp\room_transform\arm64x64_interior_rusty.mdl Да panel_attach
anim_wp\telescope_arm\telescope_arm.mdl Да panel_top
anim_wp\telescope_arm_128\telescope_arm_128.mdl Да panel_top
anim_wp\telescope_arm_128\telescope_arm_128_glass.mdl Да GLASS - panel_top
anim_wp\telescope_arm_128\telescope_arm_128_idle.mdl Нет N/A
anim_wp\telescope_arm_128\telescope_arm_128_upidle.mdl Нет N/A
anim_wp\telescope_arm_128\telescope_arm_128x256.mdl Да GLASS - panel_top
anim_wp\telescope_arm_trans\telescope_arm_trans.mdl Да GLASS - panel_attach
props_livingwall\armliving64x64.mdl Да panel_attach

Скорость воспроизведения анимации

Иной раз бывает необходимо воспроизвести анимацию робо-руки (или любой другой prop_dynamic(en)) быстрее или медленнее. Скорость воспроизведения энтити prop_dynamic(en) выражается десятичными дробями, имеющими процентное значение, 1 - эквивалент 100%, 2 - 200%, 0.5 - 50%, 0 - 0% от исходной скорости воспроизведения (0 остановит анимацию). Для изменения стандартной скорости воспроизведения есть два способа.

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

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnAnimationBegun !self SetPlaybackRate 5 0.00 No

Этот выход заставит все анимации руки воспроизводиться в 5 раз быстрее. !self - это специальный подстановочный символ, который выбирает энтити, вызвавшую этот выход (рука выберет себя).


Второй способ сложнее, но он более гибок. Для этого энтити-триггеру (например, trigger_once) нужно задать следующие выходы:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch arm_0 SetAnimation pitflings_angled_01 0.00 No
Io11.png OnStartTouch arm_0 SetPlaybackRate 2 0.01 No

Эти настройки при срабатывании триггера запустят анимацию arm_0, сотой секундой позже анимация ускорится на 200% (но если вызвать выходы в одно и то же время, скорость останется стандартной - 1).

"Пробуждающиеся" панели

В некоторых сюжетных темах Portal 2 можно увидеть анимацию "пробуждающихся" панелей - сначала они вялые и безжизненные, но затем они 'пробуждаются' и возвращаются в своё правильное положение, встраиваясь в стену. Если всё сделать правильно, ваша карта будет выглядеть гораздо более динамичной и реалистичной для этой темы.

Однако, в отличие от стандартных, эти панели создаются по-другому. Вот как это делает Valve:

1. Создайте энтити prop_dynamic(en) со следующими настройками:

Название свойства Значение
World Model models/anim_wp/room_transform/arm64x64_interior.mdl
Name panel1
HoldAnimation true
Collision Not Solid
Default Animation powerup(X_0Y)idleend
Note.pngПримечание:Для выбора доступно огромное количество анимаций "пробуждения", начиная с powerupA_01. Выберите среди них ту, которая подойдёт лучше всего.

2. Создайте браш над моделью, проверьте, что он подходит и правильно выровнен по лицевой стороне панели. Преобразуйте её в энтити func_brush(en) со следующими настройками:

Название свойства Значение
Name panel1_brush
Parent panel1

3. Создайте энтити logic_auto(en) и добавьте следующие выходы:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn panel1_brush SetParentAttachmentMaintainOffset panel_attach 0.10 Yes(?)
Io11.png OnMapSpawn panel1 SetAnimation powerup(X_0Y)idle 0.50 Yes(?)
Note.pngПримечание:Вы можете задать любую задержку, но выход 'SetParentAttachmentMaintainOffset' должен находиться обязательно ДО выхода 'SetAnimation'.


4. Создайте logic_relay(en) со следующими настройками:

Название свойства Значение
Name relay_panel1_animation

и следующими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger panel1 SetAnimation powerup(X_0Y) 0.00 Yes(?)

Теперь просто добавьте триггер и активируйте реле - лучше всего подойдёт trigger_look(en).


Анимации пробуждения после бездействия не выровнены по сетке в Hammer, и поэтому их нельзя назначить родителями для браша. Используя этот метод, мы можем выровнять браш по лицевой стороне панели по сетке в Hammer, а после загрузки карты он войдёт в анимацию пробуждения, которая назначена брашу в качестве родителя.

См. также