Предисловие
В данном уроке мы разберем 3 вида камер:
- Security Camera
- Aiming Camera
- Moving Camera
Приступим.
Покачивающаяся камера (SecurityCamera)
Рассмотрим самую простую камеру «Security Camera«. Для начала, добавьте «Security Camera» к себе на карту.
И задайте ему нужные настройки.
- Maximum Yaw: указывает максимальный угол поворота камеры (влево / вправо)
- Cycle Time (octics): указывает время, за которое камера повернется влево / вправо. Чем меньше время, тем быстрее поворачивается камера.
Мы указали этой камере tag: 1, что-бы можно было на неё переключится. Для переключения, используется комманда ChangeCamera.
Теперь перепишите следующий код к себе в ACS:
#include "zcommon.acs"
script 1 ENTER
{
ChangeCamera(1,0,0);
}
Скрипт 1 запустится, в момент подключения игрока на карту (ENTER). Разберем синтаксис ChangeCamera:
ChangeCamera(tid_камеры, tid_игрока, revert);
- tid_камеры — игрок будет видеть изображение этой камеры.
- tid_игрока — кто будет видеть изображение камеры.
- revert — если true, то любое действие вернет игроку его исходную камеру.
Теперь запустим.
Перейдем к следующей камере.
Камера с наведением (AimingCamera).
Данная камера постоянно наводится на объект, с нужным tid.
Сначала, поставьте «Aiming Camera» на свою карту.
И настройте камеру.
- Pitch — указывает начальный поворот камеры вверх / вниз.
- Max. yaw per second — задает скорость изменения yaw, при наведении.
- Max. pitch per second — задает скорость изменения pitch, при наведении.
- Target Thing Tag — указывает tid предмета, на который наводится камера.
Теперь в ACS, с помощью ChangeCamera, переключитесь на нужную камеру.
ChangeCamera(2,0,0);
И поставьте монстра на карту, с tid = 100. Готово, теперь камера будет наводится на монстра.
Но, если вы хотите, что-бы камера наводилась на игрока, то придется немного повозится. Первым делом, добавьте следующий код в ACS:
script 1 ENTER
{
Thing_ChangeTID(0,100);
ChangeCamera(2,0,0);
}
Комманда Thing_ChangeTID заменила объекты с tid = 0, на объекты с tid = 100. На деле это значит, что у игрока теперь tid = 100.
Теперь, камера будет наводится на игрока.
Двигающаяся камера (MovingCamera)
Данная камера самая продвинутая, и самая интересная, на мой взгляд. Это та самая камера, что вы видели на превью.
Перво наперво, поставьте «Moving Camera» на карту.
И задайте ей, нужные настройки.
«Moving Camera» работает в связке с «Interpolation Point«, поэтому в графе Interpolation Point Tag — задаем tag первой точки (в нашем случае 4).
Подробнее об Interpolation Point, я рассказывал в уроке ZDoom. Двигающийся SkyBox.
Ок, накидаем путь нашей камере.
Также, к любому из «Interpolation Point» можно привязать действие (вызов скрипта, открытие двери). Делается это с помощью «Interpolation Special«.
Создаем «Interpolation Special» и присваиваем ему тот же tid, что и «Interpolation Point«
И указываем ему нужный Action, в нашем случае вызов скрипта. Кстати, код этого скрипта представлен ниже.
script 100 (void)
{
ChangeCamera(0,0,0);
}
Данный скрипт, возвращает камеру игроку.
Смотрим, что получилось.