Ru/Panels
Панели - архитектурный элемент 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).
"Просыпающиеся" панели
For some themes in Portal 2, panels can be seen doing powerup animations - starting limp and lifeless, then 'waking up' and moving back into their proper position. Done correctly, this can make your map feel far more dynamic and will look more realistic for the theme.
Creating these panels, however, is a little different from ordinary panels. This is how Valve does it:
1. Create a prop_dynamic entity with the following settings:
Название свойства Значение World Model models/anim_wp/room_transform/arm64x64_interior.mdl Name panel1 HoldAnimation true Collision Not Solid Default Animation powerup(X_0Y)idleend

2. Create a brush above the model, making sure it fits, and is aligned to, the panel face. Tie it to a func_brush entity with the following settings:
Название свойства Значение Name panel1_brush Parent panel1
3. Создайте энтити logic_auto и добавьте следующие выходы:
4. Создайте logic_relay со следующими настройками:
Название свойства Значение Name relay_panel1_animation
и следующими выходами:
Now just add a trigger somewhere and activate the relay - a trigger_look works great for this.
The idle powerup animations are horribly off-grid in Hammer, and are therefore impossible to correctly parent the brush to.
By using this method, we can align the brush to the panel face in Hammer on-grid, but when the map spawns, it will move into an idle powerup animation, with the brush perfectly parented.