АВТОМОБИЛЬКАМЕРА ПРЕСЛЕДОВАНИЯ
Камера преследования
Назначение
Заголовок раздела «Назначение»Камера преследования — камера от третьего лица для пешки автомобиля. Вы вращаете её вводом обзора, и когда вы перестаёте осматриваться, она плавно возвращается за машину, как только машина поедет. Она управляет поворотом одного Spring Arm пешки. Камера не зависит от остальной части Crushform: ей ничего не нужно из ядра плагина, и ядру она не нужна. Её использует пешка-пример из плагина.
Как это работает
Заголовок раздела «Как это работает»Spring Arm. Камера управляет мировым поворотом одного Spring Arm пешки, который вы выбираете по имени. Она переключает этот Spring Arm на абсолютный поворот, поэтому поворот машины не тащит камеру за собой.
Обзор. Два действия ввода Axis 1D подают ввод в камеру: одно для рысканья (yaw), другое для наклона (pitch), где положительное значение смотрит вверх. Камера привязывает их к компоненту Enhanced Input пешки, когда пешку контролирует локальный игрок. Значение действия обзора — в градусах. Мышь учитывается через свою чувствительность, а стик масштабируется по времени кадра.
Порог обзора. Ввод обзора считается обзором, только если он набирает Look Threshold (2 градуса) примерно за четверть секунды. Мелкое дрожание, например шум датчика мыши или стик, чуть выходящий за мёртвую зону, слегка поворачивает вид и оставляет слежение включённым. Обзор удерживает камеру и перезапускает ожидание.
Слежение. Через Follow Delay (1,5 секунды) без обзора камера плавно возвращается за машину. Она следует за направлением движения, пока машина едет вперёд или вбок со скоростью Min Follow Speed (200 см/с) или быстрее. Ниже этой скорости и когда машина едет задним ходом, камера следует за направлением носа машины, так что почти неподвижная машина не раскачивает камеру. Наклон плавно возвращается к Default Pitch.
Скорость начала слежения. Ниже Follow Start Speed (50 см/с) камера не возвращается за машину вовсе. Она остаётся на месте, так что вокруг стоящей машины можно осматриваться. Задержка слежения ниже этой скорости продолжает отсчитываться, поэтому, когда она истекла, камера начинает следовать в тот момент, когда машина наберёт эту скорость. Задайте 0, чтобы камера возвращалась и за стоящую машину.
Скорость слежения. Камера за кадр проходит долю оставшегося угла. Эта доля растёт вместе со скоростью машины: от Min Follow Rate при Min Follow Speed до Max Follow Rate при Full Follow Speed (2500 см/с), и выше этой скорости остаётся на нём.
Возврат за машину. SnapBehind сразу ставит камеру за машину, на наклон по умолчанию. Камера вызывает его, когда начинается игра, когда пешку перезапускают и когда вы вызываете его сами после телепортации.
Выделенный сервер. Камера не обновляется на выделенном сервере.
Настройка
Заголовок раздела «Настройка»- Убедитесь, что у пешки есть Spring Arm с камерой на конце. Spring Arm находится в панели Components, а камера — его дочерний элемент.
- Откройте Blueprint пешки. В панели Components нажмите Add и выберите CFVehicle Chase Camera. Он находится в группе Crushform. Скомпилируйте и сохраните.
- Выберите камеру преследования. Укажите в Spring Arm Spring Arm пешки.
- Задайте Yaw Action и Pitch Action — два действия Axis 1D, по одному на каждое направление обзора. Плагин поставляет образцы
IA_LookAroundиIA_LookUpв своей папке Input.
| Camera | ||
|---|---|---|
| Spring Arm | ||
| Tuning | ||
| Min Pitch | ||
| Max Pitch | ||
| Default Pitch | ||
| Follow Delay | 1.5 s | |
| Look Threshold | 2.0° | |
| Follow Start Speed | 50.0 cm/s | |
| Min Follow Speed | 200.0 cm/s | |
| Full Follow Speed | 1000.0 cm/s | |
| Min Follow Rate | 1.0 | |
| Max Follow Rate | 4.0 | |
| Input | ||
| Yaw Action | IA_LookAround | |
| Pitch Action | IA_LookUp | |
- Меняйте значения Tuning, только если ощущение по умолчанию неверно. Значения по умолчанию — в разделе «Основные настройки» ниже.
Камере нужен плагин Enhanced Input, потому что она привязывает два своих действия к компоненту Enhanced Input.
Использование
Заголовок раздела «Использование»В Blueprint обычные задачи — поворачивать вид от сенсорного стика и ставить камеру за машину после респауна. Вызовите AddLookInput с рысканьем и наклоном в градусах и SnapBehind после телепортации.
Те же вызовы в C++. Получите камеру у пешки, затем вызовите её функции. Сигнатуры — те, что в заголовке. Ваш модуль должен перечислить модули Crushform в Build.cs, как в Установке.
#include "CFVehicleChaseCameraComponent.h"
void AMyPawn::OnTouchLook(const float YawDegrees, const float PitchDegrees){ if (UCFVehicleChaseCameraComponent* Camera = FindComponentByClass<UCFVehicleChaseCameraComponent>()) { Camera->AddLookInput(YawDegrees, PitchDegrees); }}
void AMyPawn::Respawn(const FVector& Location){ SetActorLocation(Location); if (UCFVehicleChaseCameraComponent* Camera = FindComponentByClass<UCFVehicleChaseCameraComponent>()) { Camera->SnapBehind(); }}Если вы привязываете действия обзора сами, BindLookInput принимает компонент Enhanced Input пешки. Он заменяет привязки, которые камера сделала раньше.
Основные настройки
Заголовок раздела «Основные настройки»Они находятся в UCFVehicleChaseCameraComponent, кроме значений настройки, которые находятся в FCFVehicleChaseCameraTuning в свойстве Tuning. Углы — в градусах, скорости — в сантиметрах в секунду, а скорости изменения — в 1/с.
| Свойство | Что делает | По умолчанию |
|---|---|---|
UCFVehicleChaseCameraComponent::SpringArm | Spring Arm, который поворачивает камера, выбирается по имени. Без него камера выключена. | нет |
UCFVehicleChaseCameraComponent::YawAction | Действие Axis 1D, которое поворачивает вид в сторону, в градусах. Пусто — без рысканья. | пусто |
UCFVehicleChaseCameraComponent::PitchAction | Действие Axis 1D, которое наклоняет вид, в градусах. Положительное значение смотрит вверх. Пусто — без наклона. | пусто |
UCFVehicleChaseCameraComponent::Tuning | Значения орбиты и слежения, см. ниже. | см. ниже |
FCFVehicleChaseCameraTuning::MinPitch | Самый низкий наклон: камера на самой высокой точке смотрит на машину сверху. | -60 град |
FCFVehicleChaseCameraTuning::MaxPitch | Самый высокий наклон: камера на самой низкой точке. Держите камеру над землёй на длине Spring Arm. | 10 град |
FCFVehicleChaseCameraTuning::DefaultPitch | Наклон, к которому камера возвращается при слежении, в пределах значений выше. | 0 град |
FCFVehicleChaseCameraTuning::FollowDelay | Секунды без обзора, прежде чем камера начнёт следовать за машиной. | 1,5 с |
FCFVehicleChaseCameraTuning::LookThreshold | Ввод обзора, который считается обзором, примерно за четверть секунды. | 2 град |
FCFVehicleChaseCameraTuning::FollowStartSpeed | Ниже этой горизонтальной скорости камера не возвращается за машину, так что у стоящей машины вид остаётся на месте. 0 — камера следует и за стоящей машиной. | 50 см/с |
FCFVehicleChaseCameraTuning::MinFollowSpeed | Ниже этой горизонтальной скорости камера следует за направлением носа машины, а не её движения. | 200 см/с |
FCFVehicleChaseCameraTuning::FullFollowSpeed | При этой горизонтальной скорости и выше камера следует с максимальной скоростью слежения. | 2500 см/с |
FCFVehicleChaseCameraTuning::MinFollowRate | Скорость слежения при минимальной скорости и ниже. | 1 /с |
FCFVehicleChaseCameraTuning::MaxFollowRate | Скорость слежения на полной скорости. | 4 /с |
Проверка работы
Заголовок раздела «Проверка работы»- Нажмите Play и поезжайте вперёд. Камера следует за машиной сзади.
- Двигайте мышь. Вид поворачивается сразу. Отпустите и подождите около 1,5 секунды. Камера плавно возвращается за машину.
- Подождите, пока камера успокоится за машиной, затем поезжайте назад. Она повернётся к носу машины, а не к направлению движения.
- Остановите машину. Двигайте мышь, чтобы посмотреть в сторону, отпустите и подождите несколько секунд. Камера остаётся там, куда вы её повернули. Тронитесь, и она плавно вернётся за машину.
Камера не объявляет группы статистики, поэтому вывода в консоль нет. Проверьте её на глаз.
Решение проблем
Заголовок раздела «Решение проблем»Камера выключена, и в логе написано, что Spring Arm не назван
Заголовок раздела «Камера выключена, и в логе написано, что Spring Arm не назван»Причина. Spring Arm не указывает на компонент Spring Arm пешки. Камера выключает себя.
Решение. Укажите в Spring Arm компонент Spring Arm пешки.
Ввод обзора ничего не делает
Заголовок раздела «Ввод обзора ничего не делает»Причина. Одна из трёх причин: Yaw Action или Pitch Action пусты, компонент ввода пешки не Enhanced Input, или пешку не контролирует локальный игрок, поэтому привязки нет.
Решение. Задайте оба действия, используйте Enhanced Input для пешки и проверьте, что её контролирует локальный игрок.
Камера не возвращается за машину
Заголовок раздела «Камера не возвращается за машину»Причина. Ввод обзора продолжает приходить. Ввод, который набирает Look Threshold примерно за четверть секунды, считается обзором, и каждый обзор перезапускает ожидание. Стик, дрейфующий за пределы мёртвой зоны, может так делать.
Решение. Добавьте мёртвую зону в назначение стика или увеличьте Look Threshold, если дрейф стика больше значения по умолчанию.
Камера не возвращается за медленно едущую машину
Заголовок раздела «Камера не возвращается за медленно едущую машину»Причина. Машина едет медленнее Follow Start Speed. Ниже этой скорости камера не возвращается за машину.
Решение. Уменьшите Follow Start Speed или задайте 0, чтобы камера возвращалась на любой скорости.
Камера поворачивается за стоящую машину
Заголовок раздела «Камера поворачивается за стоящую машину»Причина. Follow Start Speed равна 0 или ниже скорости, с которой дрожит стоящая машина.
Решение. Увеличьте Follow Start Speed выше этого дрожания.
