Перейти к содержимому
CRUSHFORMV1.1.0
ПОЛУЧИТЬ НА FAB

АВТОМОБИЛЬКАМЕРА ПРЕСЛЕДОВАНИЯ

Камера преследования

Камера преследования — камера от третьего лица для пешки автомобиля. Вы вращаете её вводом обзора, и когда вы перестаёте осматриваться, она плавно возвращается за машину, как только машина поедет. Она управляет поворотом одного 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 сразу ставит камеру за машину, на наклон по умолчанию. Камера вызывает его, когда начинается игра, когда пешку перезапускают и когда вы вызываете его сами после телепортации.

Выделенный сервер. Камера не обновляется на выделенном сервере.

  1. Убедитесь, что у пешки есть Spring Arm с камерой на конце. Spring Arm находится в панели Components, а камера — его дочерний элемент.
  2. Откройте Blueprint пешки. В панели Components нажмите Add и выберите CFVehicle Chase Camera. Он находится в группе Crushform. Скомпилируйте и сохраните.
  3. Выберите камеру преследования. Укажите в Spring Arm Spring Arm пешки.
  4. Задайте Yaw Action и Pitch Action — два действия Axis 1D, по одному на каждое направление обзора. Плагин поставляет образцы IA_LookAround и IA_LookUp в своей папке Input.
Camera
Spring ArmBackSpringArm
Tuning
Min Pitch-70.0°
Max Pitch30.0°
Default Pitch0.0°
Follow Delay1.5 s
Look Threshold2.0°
Follow Start Speed50.0 cm/s
Min Follow Speed200.0 cm/s
Full Follow Speed1000.0 cm/s
Min Follow Rate1.0
Max Follow Rate4.0
Input
Yaw ActionIA_LookAround
Pitch ActionIA_LookUp
Компонент ChaseCamera у BP_VehicleAdvSedan: Spring Arm с раскрытым Tuning и действия Yaw и Pitch.
  1. Меняйте значения Tuning, только если ощущение по умолчанию неверно. Значения по умолчанию — в разделе «Основные настройки» ниже.

Камере нужен плагин Enhanced Input, потому что она привязывает два своих действия к компоненту Enhanced Input.

В Blueprint обычные задачи — поворачивать вид от сенсорного стика и ставить камеру за машину после респауна. Вызовите AddLookInput с рысканьем и наклоном в градусах и SnapBehind после телепортации.

График вызывает 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::SpringArmSpring 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 /с
  1. Нажмите Play и поезжайте вперёд. Камера следует за машиной сзади.
  2. Двигайте мышь. Вид поворачивается сразу. Отпустите и подождите около 1,5 секунды. Камера плавно возвращается за машину.
  3. Подождите, пока камера успокоится за машиной, затем поезжайте назад. Она повернётся к носу машины, а не к направлению движения.
  4. Остановите машину. Двигайте мышь, чтобы посмотреть в сторону, отпустите и подождите несколько секунд. Камера остаётся там, куда вы её повернули. Тронитесь, и она плавно вернётся за машину.

Камера не объявляет группы статистики, поэтому вывода в консоль нет. Проверьте её на глаз.

Камера выключена, и в логе написано, что 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 выше этого дрожания.