Ru/Panels

Панели - архитектурный элемент . Каждая панель расположена так, что вместе они образуют тестовую камеру. Поскольку панели находятся на роботизированных руках, камера может реагировать на действия игрока. Панели могут образовывать лестницы, выступы, открываться наподобие дверей, и, как правило, дают эффект "живой" комнаты. 
== Создание панелей ==
1. Создайте со следующими настройками:
::
Название свойства	Параметр
World Model 	models/anim_wp/room_transform/arm64x64_interior.mdl
Name 	panel1
HoldAnimation 	true
Collision 	Not Solid
2. Создайте браш размером 256Lx256Wx32H. Преобразуйте его в энтити со следующими настройками:
::
Название свойства	Параметр
Name 	panel1_brush
Parent 	panel1
3. Создайте энтити и установите следующие выходы:
::
	My Output 	Target Entity	Target Input 	Parameter 	Delay	Only Once
	OnMapSpawn	panel1_brush 	SetParentAttachmentMaintainOffset	panel_attach	0.00 	Yes(?)
Теперь func_brush будет двигаться вместе с анимацией prop_dynamic.
4. Создайте со следующими настройками:
::
Название Свойства	Параметр
Name 	relay_panel1_animation
и следующими выходами:
::
	My Output	Target Entity	Target Input	Parameter 	Delay	Only Once
	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
----
== Скорость воспроизведения анимации ==
Иной раз бывает необходимо воспроизвести анимацию робо-руки (или любой другой ) быстрее или медленнее. Скорость воспроизведения энтити выражается десятичными дробями, имеющими процентное значение, 1 - эквивалент 100%, 2 - 200%, 0.5 - 50%, 0 - 0% от исходной скорости воспроизведения (0 остановит анимацию). Для изменения стандартной скорости воспроизведения есть два способа.
Первый способ более лёгкий и применяется ко всем анимациям какой-либо . Скорость воспроизведения можно назначить робо-руке, и она сохранится для всех анимаций руки (любые её анимации всегда будут воспроизводиться на заданной скорости). Для этого в свойствах руки нужно добавить ещё один выход:
::
	My Output 	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnAnimationBegun	!self 	SetPlaybackRate	5 	0.00 	No
Этот выход заставит все анимации руки воспроизводиться в 5 раз быстрее. !self - это специальный подстановочный символ, который выбирает энтити, вызвавшую этот выход (рука выберет себя).
Второй способ сложнее, но он более гибок. Для этого энтити-триггеру (например, trigger_once) нужно задать следующие выходы:
::
	My Output 	Target Entity	Target Input 	Parameter 	Delay	Only Once
	OnStartTouch	arm_0 	SetAnimation 	pitflings_angled_01	0.00 	No
	OnStartTouch	arm_0 	SetPlaybackRate	2 	0.01 	No
Эти настройки при срабатывании триггера запустят анимацию arm_0, сотой секундой позже анимация ускорится на 200% (но если вызвать выходы в одно и то же время, скорость останется стандартной - 1).
== "Пробуждающиеся" панели ==
В некоторых сюжетных темах Portal 2 можно увидеть анимацию "пробуждающихся" панелей - сначала они вялые и безжизненные, но затем они 'пробуждаются' и возвращаются в своё правильное положение, встраиваясь в стену. Если всё сделать правильно, ваша карта будет выглядеть гораздо более динамичной и реалистичной для этой темы.
Однако, в отличие от стандартных, эти панели создаются по-другому. Вот как это делает Valve:
1. Создайте энтити со следующими настройками:
::
Название свойства	Значение
World Model 	models/anim_wp/room_transform/arm64x64_interior.mdl
Name 	panel1
HoldAnimation 	true
Collision 	Not Solid
Default Animation	powerup(X_0Y)idleend
2. Создайте браш над моделью, проверьте, что он подходит и правильно выровнен по лицевой стороне панели. Преобразуйте её в энтити со следующими настройками:
::
Название свойства	Значение
Name 	panel1_brush
Parent 	panel1
3. Создайте энтити и добавьте следующие выходы:
::
	My Output 	Target Entity	Target Input 	Parameter 	Delay	Only Once
	OnMapSpawn	panel1_brush 	SetParentAttachmentMaintainOffset	panel_attach 	0.10 	Yes(?)
	OnMapSpawn	panel1 	SetAnimation 	powerup(X_0Y)idle	0.50 	Yes(?)
4. Создайте со следующими настройками:
::
Название свойства	Значение
Name 	relay_panel1_animation
и следующими выходами:
::
	My Output	Target Entity	Target Input	Parameter 	Delay	Only Once
	OnTrigger	panel1 	SetAnimation	powerup(X_0Y)	0.00 	Yes(?)
Теперь просто добавьте триггер и активируйте реле - лучше всего подойдёт .
Анимации пробуждения после бездействия не выровнены по сетке в Hammer, и поэтому их нельзя назначить родителями для браша.
Используя этот метод, мы можем выровнять браш по лицевой стороне панели по сетке в Hammer, а после загрузки карты он войдёт в анимацию пробуждения, которая назначена брашу в качестве родителя.
== См. также ==
*