Вспомним правила
— Правило поднятой руки — кто помнит?
— Обращение на «вы»
— Есть вопрос — задавай!
— Идеи — общая собственность
— Можно отвечать с места с поднятой рукой!
— Можно выходить из класса в любое время!
Уходить с урока — только со звонком родителям!
Что будет на курсе
- Разбор геймдизайна и левелдизайна шутера
- Знакомство и освоение blueprints (вы полностью закодите шутер самостоятельно)
- Теория и практика по созданию красивой графики
- Более глубокое знакомство с функционалом анрила
Шутер (англ. Shooter) — жанр компьютерных игр, в котором игровой процесс сфокусирован на стрельбе.
Что точно должно быть в шутере?
- прицеливание
- стрельба
Практическое задание
Объединитесь в группы по 2-3 человека и придумайте 3 идеи для шутера.
Что сдаём
Шутер от 1го лица! Либо 1 уровень либо 1 арена (можно больше, если успеете).
Критерии:
- минимум 2 врага (препятствия, в которые надо стрелять, если нет врагов)
- применен хотя бы 1 визуальный приём (позже узнаете что за приёмы)
- самостоятельно написан код для 3 и более акторов
Не пытайтесь сделать комплексный большой проект, не успеете. Лучше сконцентрироваться на чем-то простом.
Запускаем Unreal
Выбираем шаблон от 1го лица. Ctrl+Space чтобы открыть Content Drawer.
Основные ассеты

- Подключение анимаций
- Написание кода
- Уровни
- Синематики
- Материалы
- Подключение ниагары
Создаём блюпринт актора

ПКМ по пустому месту в Content Drawer.
Открываем актора
Слева Аутлайнер — в нем компоненты актора. Вьюпорт посередине — внешний вид актора. Детали — подробная настройка компонентов.
Construction Script — то, что происходит перед запуском игры. Event Graph — то, что происходит во время игры.
Базовые ивенты
Event BeginPlay — Начало игры (код, который запустится внутри этого актора, когда игра запустится). Event ActorBeginOverlap — Что-то пересекается с актором (обычно нужно проверить кто пересёкся) Обязательно нужна коллизия! Event Tick — Код происходит каждый кадр (лучше не писать здесь много кода).
Ноды

ПКМ по пустому месту. Эта нода выводит текст на экран.
Все «связанные» ноды выполняются слева направо.
Попробуйте выводить разный текст во время всех трёх ивентов!
Переменные

Boolean — True/false Integer — целые числа Float — дробные числа String — строка Text — текст Vector — векторные координаты
Работа со значениями
Get — получить значение переменной Set — присвоить (заменить) значение переменной

Числовые значения можно сравнивать.

Также с числами можно проводить различные математические операции.
Практическое задание
У платформы есть хп. Каждый раз, когда игрок пересекается с платформой, она теряет 1 хп. При пересечении каждый раз должно выводиться текущее количество хп. Когда хп достигнет нуля на экран должно быть выведено слово «ВСЁ».
Решение
Что еще есть?
Delay

Откладывает выполнение следующей ноды на N секунд.
Создание своего ивента

Этот ивент потом можно вызывать в нужной части кода.
Timer

Вызывает ивент через N секунд. Можно зациклить. Можно прервать.
Нажатие на клавишу и реакция
Этот ивент можно вызвать только в персонаже или контроллере. Пока будем делать в персонаже.
Cast to

Проверяет нужный это нам актор или нет. Можно потом из «As BP…» вытаскивать нужные ивенты и переменные.
Практическое задание
Щенок кушает сосиски со скоростью 1 сосиска в 0,1 сек. Если он съест больше 30 сосисок, то лопнет. Останови его вовремя…
Решение
Функция

У функции есть входные и выходные параметры, а ещё локальные переменные.
У ивента есть только входные параметры.
Функции обычно используем когда:
- нужно что-то проверить;
- нужен какой-то результат;
- нет отложенных действий;
Функция или ивент?
- Проверить дошло ли хп до нуля
- Вывести на экран надпись
- Посчитать общую стоимость предметов в инвентаре
- Съесть ядовитый гриб и через секунду получить урон
Задача
Одинокий путник ищет артефакты: 3 шнейне, 2 пеппе и 1 фа.
Каждый раз когда путник натыкается на артефакт он либо забирает его себе либо говорит «ватафа», потому что у него уже есть этот артефакт в нужном количестве.
Помогите путнику собрать все артефакты.
Обязательно нужно использовать:
- cast
- функцию
- кастомный ивент
Домашнее задание
- Начать думать над концепцией шутера
- Сделать 3 мишени:
- двигающаяся не по прямой траектории
- переворачивающаяся на 90 градусов на 2 сек., потом возвращающаяся на место на 2 сек.
- на ваше усмотрение


