Ru/Panels: Difference between revisions
m (Не переводите технические названия(браш, энтити, аутпут)) |
m (obsolete language category) |
||
(16 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Панели|Panels}} | ||
| | |||
[[File:Portal2_panels.jpg|thumb|right|300px|"Доски будущего!" <br>- '''Кейв Джонсон''']] | |||
{{portal2}} '''Панели''' - архитектурный элемент {{L|Portal 2}}. Каждая панель расположена так, что вместе они образуют тестовую камеру. Поскольку панели находятся на роботизированных руках, камера может реагировать на действия игрока. Панели могут образовывать лестницы, выступы, открываться наподобие дверей, и, как правило, дают эффект "живой" комнаты. | |||
== Создание панелей == | |||
{{ | 1. Создайте {{L|prop_dynamic}} со следующими настройками: | ||
::{| class=standard-table | ::{| class=standard-table | ||
! Название | ! Название свойства || Параметр | ||
|- | |- | ||
| World Model || models/anim_wp/room_transform/arm64x64_interior.mdl | | World Model || models/anim_wp/room_transform/arm64x64_interior.mdl | ||
|- | |- | ||
| Name || panel1 | | Name || panel1 | ||
|- | |||
| HoldAnimation || true | |||
|- | |- | ||
| Collision || Not Solid | | Collision || Not Solid | ||
|} | |} | ||
2. Создайте браш размером <code>256Lx256Wx32H</code>. Преобразуйте | 2. Создайте браш размером <code>256Lx256Wx32H</code>. Преобразуйте его в энтити {{L|func_brush}} со следующими настройками: | ||
::{| class=standard-table | ::{| class=standard-table | ||
! Название | ! Название свойства || Параметр | ||
|- | |- | ||
| Name || panel1_brush | | Name || panel1_brush | ||
Line 33: | Line 29: | ||
|} | |} | ||
3. Создайте | 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 | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnMapSpawn || panel1_brush || SetParentAttachmentMaintainOffset || panel_attach || 0.00 || Yes(?) | ||
|} | |} | ||
Теперь | Теперь func_brush будет двигаться вместе с анимацией prop_dynamic. | ||
4. Создайте | 4. Создайте {{L|logic_relay}} со следующими настройками: | ||
::{| class=standard-table | ::{| class=standard-table | ||
! Название Свойства || Параметр | ! Название Свойства || Параметр | ||
Line 48: | Line 44: | ||
| Name || relay_panel1_animation | | Name || relay_panel1_animation | ||
|} | |} | ||
и | и следующими выходами: | ||
::{| 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 || panel1 || SetAnimation || (ANIMATION NAME) || 0.00 || Yes(?) | ||
|} | |} | ||
== | == Прикрепляемые к панелям материалы == | ||
'' | ''Примечание: Модели idle или static модели не двигаются. Они служат только для красоты.'' | ||
---- | ---- | ||
{|class="prettytable" | {|class="prettytable" | ||
|- | |- | ||
! Модель | ! Модель | ||
! Анимированная | ! Анимированная? | ||
! Название | ! Название прикрепления к панели | ||
|-- | |-- | ||
| anim_wp\arm_interior_192\arm_interior_128.mdl | | anim_wp\arm_interior_192\arm_interior_128.mdl | ||
Line 130: | Line 126: | ||
|} | |} | ||
---- | ---- | ||
[[ | == Скорость воспроизведения анимации == | ||
[[ | Иной раз бывает необходимо воспроизвести анимацию робо-руки (или любой другой {{L|prop_dynamic}}) быстрее или медленнее. Скорость воспроизведения энтити {{L|prop_dynamic}} выражается десятичными дробями, имеющими процентное значение, 1 - эквивалент 100%, 2 - 200%, 0.5 - 50%, 0 - 0% от исходной скорости воспроизведения (0 остановит анимацию). Для изменения стандартной скорости воспроизведения есть два способа. | ||
Первый способ более лёгкий и применяется ко всем анимациям какой-либо {{L|prop_dynamic}}. Скорость воспроизведения можно назначить робо-руке, и она сохранится для всех анимаций руки (любые её анимации всегда будут воспроизводиться на заданной скорости). Для этого в свойствах руки нужно добавить ещё один выход: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnAnimationBegun || !self || SetPlaybackRate || 5 || 0.00 || No | |||
|} | |||
Этот выход заставит все анимации руки воспроизводиться в 5 раз быстрее. ''!self'' - это специальный подстановочный символ, который выбирает энтити, вызвавшую этот выход (рука выберет себя). | |||
Второй способ сложнее, но он более гибок. Для этого энтити-триггеру (например, trigger_once) нужно задать следующие выходы: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnStartTouch|| arm_0 || SetAnimation || pitflings_angled_01 || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnStartTouch|| arm_0 || SetPlaybackRate || 2 || 0.01 || No | |||
|} | |||
Эти настройки при срабатывании триггера запустят анимацию ''arm_0'', сотой секундой позже анимация ускорится на 200% (но если вызвать выходы в одно и то же время, скорость останется стандартной - 1). | |||
== "Пробуждающиеся" панели == | |||
В некоторых сюжетных темах Portal 2 можно увидеть анимацию "пробуждающихся" панелей - сначала они вялые и безжизненные, но затем они 'пробуждаются' и возвращаются в своё правильное положение, встраиваясь в стену. Если всё сделать правильно, ваша карта будет выглядеть гораздо более динамичной и реалистичной для этой темы. | |||
Однако, в отличие от стандартных, эти панели создаются по-другому. Вот как это делает Valve: | |||
1. Создайте энтити {{L|prop_dynamic}} со следующими настройками: | |||
::{| class=standard-table | |||
! Название свойства || Значение | |||
|- | |||
| World Model || models/anim_wp/room_transform/arm64x64_interior.mdl | |||
|- | |||
| Name || panel1 | |||
|- | |||
| HoldAnimation || true | |||
|- | |||
| Collision || Not Solid | |||
|- | |||
| Default Animation || powerup(X_0Y)idleend | |||
|} | |||
{{Note|Для выбора доступно огромное количество анимаций "пробуждения", начиная с powerupA_01. Выберите среди них ту, которая подойдёт лучше всего.}} | |||
2. Создайте браш над моделью, проверьте, что он подходит и правильно выровнен по лицевой стороне панели. Преобразуйте её в энтити {{L|func_brush}} со следующими настройками: | |||
::{| class=standard-table | |||
! Название свойства || Значение | |||
|- | |||
| Name || panel1_brush | |||
|- | |||
| Parent || panel1 | |||
|} | |||
3. Создайте энтити {{L|logic_auto}} и добавьте следующие выходы: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnMapSpawn || panel1_brush || SetParentAttachmentMaintainOffset || panel_attach || 0.10 || Yes(?) | |||
|- | |||
|[[File:Io11.png]] || OnMapSpawn || panel1 || SetAnimation || powerup(X_0Y)idle || 0.50 || Yes(?) | |||
|} | |||
{{Note|Вы можете задать любую задержку, но выход 'SetParentAttachmentMaintainOffset' должен находиться обязательно ДО выхода 'SetAnimation'.}} | |||
4. Создайте {{L|logic_relay}} со следующими настройками: | |||
::{| class=standard-table | |||
! Название свойства || Значение | |||
|- | |||
| Name || relay_panel1_animation | |||
|} | |||
и следующими выходами: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || panel1 || SetAnimation || powerup(X_0Y) || 0.00 || Yes(?) | |||
|} | |||
Теперь просто добавьте триггер и активируйте реле - лучше всего подойдёт {{L|trigger_look}}. | |||
Анимации пробуждения после бездействия не выровнены по сетке в Hammer, и поэтому их нельзя назначить родителями для браша. | |||
Используя этот метод, мы можем выровнять браш по лицевой стороне панели по сетке в Hammer, а после загрузки карты он войдёт в анимацию пробуждения, которая назначена брашу в качестве родителя. | |||
== См. также == | |||
* {{L|Creating_rotating_panels|Вращающиеся панели}} | |||
{{ACategory|Portal 2 Level Design}} | |||
{{ACategory|Portal 2 Tutorials}} |
Latest revision as of 03:56, 22 August 2024
Панели - архитектурный элемент Portal 2 . Каждая панель расположена так, что вместе они образуют тестовую камеру. Поскольку панели находятся на роботизированных руках, камера может реагировать на действия игрока. Панели могут образовывать лестницы, выступы, открываться наподобие дверей, и, как правило, дают эффект "живой" комнаты.
Создание панелей
1. Создайте prop_dynamic со следующими настройками:
Название свойства Параметр World Model models/anim_wp/room_transform/arm64x64_interior.mdl Name panel1 HoldAnimation true Collision Not Solid
2. Создайте браш размером 256Lx256Wx32H
. Преобразуйте его в энтити func_brush со следующими настройками:
Название свойства Параметр Name panel1_brush Parent panel1
3. Создайте энтити logic_auto и установите следующие выходы:
Теперь func_brush будет двигаться вместе с анимацией prop_dynamic.
4. Создайте logic_relay со следующими настройками:
Название Свойства Параметр Name relay_panel1_animation
и следующими выходами:
Прикрепляемые к панелям материалы
Примечание: Модели 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 ) быстрее или медленнее. Скорость воспроизведения энтити prop_dynamic выражается десятичными дробями, имеющими процентное значение, 1 - эквивалент 100%, 2 - 200%, 0.5 - 50%, 0 - 0% от исходной скорости воспроизведения (0 остановит анимацию). Для изменения стандартной скорости воспроизведения есть два способа.
Первый способ более лёгкий и применяется ко всем анимациям какой-либо prop_dynamic . Скорость воспроизведения можно назначить робо-руке, и она сохранится для всех анимаций руки (любые её анимации всегда будут воспроизводиться на заданной скорости). Для этого в свойствах руки нужно добавить ещё один выход:
Этот выход заставит все анимации руки воспроизводиться в 5 раз быстрее. !self - это специальный подстановочный символ, который выбирает энтити, вызвавшую этот выход (рука выберет себя).
Второй способ сложнее, но он более гибок. Для этого энтити-триггеру (например, trigger_once) нужно задать следующие выходы:
Эти настройки при срабатывании триггера запустят анимацию arm_0, сотой секундой позже анимация ускорится на 200% (но если вызвать выходы в одно и то же время, скорость останется стандартной - 1).
"Пробуждающиеся" панели
В некоторых сюжетных темах Portal 2 можно увидеть анимацию "пробуждающихся" панелей - сначала они вялые и безжизненные, но затем они 'пробуждаются' и возвращаются в своё правильное положение, встраиваясь в стену. Если всё сделать правильно, ваша карта будет выглядеть гораздо более динамичной и реалистичной для этой темы.
Однако, в отличие от стандартных, эти панели создаются по-другому. Вот как это делает Valve:
1. Создайте энтити prop_dynamic со следующими настройками:
Название свойства Значение World Model models/anim_wp/room_transform/arm64x64_interior.mdl Name panel1 HoldAnimation true Collision Not Solid Default Animation powerup(X_0Y)idleend

2. Создайте браш над моделью, проверьте, что он подходит и правильно выровнен по лицевой стороне панели. Преобразуйте её в энтити func_brush со следующими настройками:
Название свойства Значение Name panel1_brush Parent panel1
3. Создайте энтити logic_auto и добавьте следующие выходы:

4. Создайте logic_relay со следующими настройками:
Название свойства Значение Name relay_panel1_animation
и следующими выходами:
Теперь просто добавьте триггер и активируйте реле - лучше всего подойдёт trigger_look .
Анимации пробуждения после бездействия не выровнены по сетке в Hammer, и поэтому их нельзя назначить родителями для браша.
Используя этот метод, мы можем выровнять браш по лицевой стороне панели по сетке в Hammer, а после загрузки карты он войдёт в анимацию пробуждения, которая назначена брашу в качестве родителя.