Фиксированная камера в Unreal Engine 5 блюпринтами

Фиксированная камера в Unreal Engine 5 блюпринтами

Сейчас фиксированная камера это дешёвое и стильное решение для инди-проектов и особенно хорроров. Но вообще-то у неё большая и интересная история — мы рассказали её в ролике «Как неудобная камера меняла игры», посмотрите, если ещё не.

А в этом гайде мы расскажем, как сделать фиксированную камеру в Unreal Engine 5 с помощью блюпринтов. И чтобы приблизить ситуацию к реальной игре, камеру сделаем с двумя условиями:

  • Камера должна переходить из третьего лица в фиксированный угол и наоборот — такое решение чаще встречается в современных АА-играх, а значит будет полезнее, если вы захотите идти в геймдев
  • Камера должна подсвечивать фокусную точку. Это поможет вам освоить ключевое преимущество фиксированной камеры — возможность делать правильные акценты на объектах.

Создаём проект

Зайдите во вкладку Games, выберите шаблон Third Person и создайте проект

Выберите шаблон Third Person и создайте проект. Если не планируете серьёзный проект или экспериментируете, выбирайте Blueprint — в ином случае С++

Content Browser не пригодится — его можете скрыть. Чтобы поставить паузу, используйте клавишу ESC.

Делаем фокусную точку

Фокусная точка сцены — импровизированная статуя. Выделили для наглядности
Фокусная точка сцены — импровизированная статуя. Выделили для наглядности

С помощью фиксированной камеры можно легко и наглядно делать акценты на главных объектах сцены, делая из них фокусные точки. Давайте создадим подобную фокусную точку — у нас это будет статуя.

Один из стартовых объектов на сцене похож на пьедестал. Он состоит из четырёх элементов. Выделите их, объедините **командой Ctrl + G в одну группу и перенесите.

Увеличьте размер объекта, потянув стрелку нужной оси.

Перенесите маленький подъём, который видно на гифке, и измените его размер аналогичным образом.

Чтобы повернуть, активируйте Rotate Tool, нажав на английскую клавишу E.

Для самой статуи выберите меш из Content Drawer в левом нижнем углу. Путь к нужной папке: All → Content → Characters → Mannequens → Meshes. Понравившийся перенесите на нужное место.

Поза не важна. Главное увеличьте статую так, как увеличивали пьедестал: через скейл, вытягивая по размеру мышкой.

Смена материала

Мы решили сменить металлический материал статуи на каменный. Если хотите, можете сделать так же.

Для этого нажмите на объект, потом вкладку Details и подменю Materials. Аналог камня — SimpleBuldge, чтобы его найти — введите название в поиск.

Мы применили каменный материал сразу к статуе, пьедесталу и подъёму.

По инструкции для статуи можно поменять материал любого другого объекта

Добавляем камеру и триггер

Вам нужны Camera Actor и триггер-коллизия. Первая и будет нашей фиксированной камерой, а вторая будет активировать сегмент с камерой в определённом месте.

Экспериментируйте с расположением камеры, чтобы получить интересный и неочевидный результат

В меню Place Actors найдите Camera Actor и поставьте её в нужное место.

Нажмите правой кнопкой по камере и в выпавшем меню выберите Pilot Camera Actor. Вручную обозначьте область, которую она будет захватывать, используя кнопки W, A, S, D и мышку.

Выйдите из режима настройки камеры.

Прямоугольная форма коллизии — самая распространённая и удобная для триггера событий

Далее во вкладке Place Actors введите в поисковик Collision и выберите Collision Box. Его размер — это угол обзора, который будет показывать фиксированная камера.

Добавляем логику переключения камеры

Чтобы создать логику переключения и простые анимации, сначала создайте референсы объектов: камеры и коллизии.

Откройте Level Blueprint. Его расположение отмечено на скриншоте:

Фиксированная камера в Unreal Engine 5 блюпринтами

Нажмите ЛКМ по коллизии и ПКМ в окне блюпринта и выберите Create a Reference to (…)

Для триггер-бокса и для камеры действия идентичны.

Чтобы вызвать поисковик нод, кликните ПКМ по свободному месту в окне Level Blueprint.

Добавьте Event BeginPlay и Overlap для коллизии и соедините их.

Для этого нажмите ПКМ по свободному месту и найдите Event BeginPlay. Потяните мышкой от референса TriggerBox — у вас появится поиск. Найдите Assign On Actor Begin Overlap и добавьте, также с ним появится ещё нода OnActorBeginOverlap_Event. От Event BeginPlay протяните линк к Bind Event to on Actor Begin Overlap — от белой стрелке к белой стрелке.

Теперь добавьте окончание ивента.

Снова потяните мышкой от ноды TriggerBox, найдите Assign On Actor End Overlap и соедините его с Bind Event to on Actor Begin Overlap. Для этого потяните от (...) Begin Overlap линк от белой стрелке к белой стрелке.

Добавьте в скрипт персонажа. Фактически это и станет анимацией, которая будет воспроизводиться в начале.

Кликните ПКМ по пустому месту, в поисковике выберите Get Player Controller. Протяните линк от него и в меню найдите Set View Target With Blend.

OnActorBeginOverlap_Event свяжите с Set View Target With Blend от белой стрелки к белой стрелке.

Camera Actor свяжите с функцией New View Target ноды Set View (...). Потом на ней выставите Blend Time в секундах. У нас это 1,0, вы можете экспериментировать со значениями.

Теперь сделаем выход из камеры.

Скопируйте через CTRL+V три ноды: Get Player Controler, Set View Target With Blend и CameraActor и вставьте их в пустое место.

От (...) End Overlap сделайте линк к Set View Target With Blend.

Camera Actor замените на Get Player Character и отправьте его к функции New View Target на соседнюю ноду Set View (...).

Установите Blend Time чуть меньше, чем был до этого. Мы поставили 0,5 секунд.

Весь процесс работы над блюпринтами
Результат

Материал подготовлен командой XYZ Media.

Наши каналы в Telegram и на YouTube.

1818
1 комментарий

Спасибо! Это полезно!!