Автор: Михаил Русаков
Данный курс научит Вас созданию игр на Unreal Engine 5. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.
В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.
Помимо самого курса Вас ждёт ещё 3 бесплатных ценных Бонуса: «Chaos Destruction», «Разработка 2D-игры» и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков и множество дополнительных Бонусов.
Модуль №1. Введение
В уроке будут даны важные рекомендации по эффективному прохождению курса.
В уроке скачаем и установим этот движок.
Дам множество полезных секретов по эффективной работе в лаунчере.
После этого модуля у Вас будет уже всё готово для работы в самом движке.
Модуль №2. Основы работы в движке
Материал этого модуля совершенно необходим, прежде чем пытаться хоть что-то делать в Unreal Engine.
Разберём, какие есть важные настройки при создании проекта.
Эта информация особенно актуальна, у кого производительность компьютера оставляет желать лучшего.
Из урока Вы узнаете, какова структура файлов и папок проекта и где и что находится.
Из урока Вы познакомитесь с интерфейсом движка и узнаете все возможности по его настройке.
Освоите всё необходимое, что имеется в панели Menu.
Здесь содержатся полезные советы по эффективной работе во Viewport.
В Unreal Engine 5 в ней многое поменялось, и всё это мы разберём.
После этого урока Вы научитесь эффективно взаимодействовать с Content Browser.
Обсудим импорт/экспорт 3D-моделей, LOD, Nanite, настройку Static Mesh, слоты и много чего ещё по мелочи.
Из урока Вы узнаете, что такое коллизия, как с ней работать, как её настраивать в мельчайших подробностях и деталях.
Обсудим эту важнейшую тему в Unreal Engine, которые новички, как правило, плохо понимают.
Координаты и всё, что с ними связано
Обсудим важнейшие моменты, касающиеся координат.
Обсудим, какие есть Volumes в Unreal, и как и когда их нужно применять.
После этого урока Вы научитесь настраивать физические объекты.
Из урока Вы узнаете, как упаковать проект под разные платформы, чтобы в Вашу игру мог поиграть любой желающий.
После данного модуля Вы уже будете иметь ту базу, которой и близко нет у тех, кто учится самостоятельно по разрозненным видеоурокам из Интернета. А эта база совершенно необходима перед тем, как двигаться дальше.
Модуль №3. Дизайн уровней
Редко, какая игра обходится без дизайна уровней, и любой специалист по Unreal Engine (даже если он не Level Designer) обязан быть хорошо знакомым с инструментами для этого. И посмотрев этот модуль, Вы сможете с ними работать.
В уроке обсудим правильную настройку освещения, познакомимся с различными типами источников света.
В Unreal Engine 5 больше нет BSP-геометрии, однако, разработчики добавили инструмент для 3D-моделирования, который идеально подходит для прототипирования, и об этом инструменте мы и поговорим в уроке.
Из урока Вы научитесь создавать и настраивать объемные облака.
Поговорим о пост-процессинге, который позволит Вам создавать любую атмосферу на сцене, а также различные эффекты.
Поговорим про возможности движка при создании/редактировании ландшафта.
Из урока Вы узнаете, как правильно добавлять множество растительности и других различных объектов на сцену.
С организацией сцены у многих новичков проблемы, однако, её правильная организация – это основа качественного дизайна уровня.
Достаточно сложная тема для новичков с большим количеством подводных камней, однако, на ней я «собаку съел» в своё время, поэтому и Вы разберётесь в ней после этого урока.
World Partition появился в 5-й версии движка, и он совершенно необходим при создании больших открытых миров, и именно о нём мы и поговорим в этом уроке.
В этом уроке я покажу пример создания полноценного уровня от начала и до конца.ль №3. Дизайн уровней
Модуль №4. Аудио
Аудио – важнейшая часть большинства игр, особенно, в инди-проектах, где нет большого бюджета. Аудио способно создать абсолютно любую атмосферу, и с ним нужно уметь работать.
Из урока Вы узнаете, как подготовить аудио-файлы перед импортом в движок.
Обсудим, что вообще можно делать в Unreal Engine со звуком.
Из урока Вы узнаете, как работать с Sound Cue – совершенно необходимым инструментом при работе со звуком.
Sound Attenuation – важнейший элемент, который используется для затухания звуков в пространстве, о чём мы и поговорим в уроке.
Из урока Вы узнаете, что такое ревербация и как её настроить на сцене.
Это очень полезные классы, которые позволяют группировать звуки и управлять их настройками по-отдельности (например, благодаря им можно отдельно задавать громкость речи, звуков, музыки).
Пройдя данный модуль, Вы научитесь работать с самыми разными звуками в Unreal Engine, используя для этого самые разные инструменты и возможности движка.
Модуль №5. Материалы
Материалы определяют, как выглядят 3D-объекты: какая на них текстура, какой рельеф, как они отражают свет и многое другое. Исходя из этого, эту тему невозможно обойти стороной, и ею мы и займёмся в данном модуле.
В уроке Вы узнаете, что такое материалы, как они работают, что требуется для их создания, а также как они работают в Unreal Engine 5.
Познакомимся с интерфейсом редактора материалов, чтобы Вы в нём чувствовали себя уверенно.
В уроке мы создадим первые материалы, познакомимся с различными параметрами.
Material Instance с помощью параметров позволяет использовать один материал для создания множества других. Это очень удобный инструмент, с которым Вы научитесь работать в этом уроке.
Математика (а зачастую просто арифметика) – это основа любого даже самого сложного материала. В уроке Вы научитесь применять математические операции для создания, на первый взгляд, непростых материалов.
Из урока Вы узнаете, что такое тайлинг и как его настраивать.
Поговорим про функции, которые позволяют использовать какой-то блок вычислений повторно в других материалах.
Из урока Вы узнаете, как сделать глобальные параметры и получить к ним доступ из материалов. Например, на уровне идёт дождь, и Вам нужно все материалы на сцене сделать влажными.
Это полезный инструмент, который позволяет делать более красивые уровни.
Посмотрев урок, Вы научитесь делать материалы для ландшафтов, что позволит Вам разукрашивать любой ландшафт по своему усмотрению.
Автоматериал позволяет автоматически раскрасить весь ландшафт в зависимости от различных параметров (например, если угол наклона резкий, то там нарисуется материал скалы).
Из урока Вы узнаете, что такое декали и как их применять.
В уроке создадим материал стекла и познакомимся с ещё некоторыми настройками материалов.
Познакомимся с этим параметром, который используется для перемещения вертексов (вершин) объектов. Например, это может использоваться для создания деформации объектов.
В уроке Вы увидите создание анимированного материала.
В некоторых ситуациях очень полезный параметр, позволяющий создать как бы внутреннее свечение.
Очень полезная практика, когда для всех объектов используется некоторый Master Material, а уже на его основе создаются все остальные. Вот об этой технике Вы и узнаете из этого урока.
Посмотрев данный модуль, Вы уже сможете создавать множество различных материалов и будете знать, как с ними работать.
Модуль №6. Основы программирования
Из урока Вы узнаете, как устроено программирование в Unreal Engine 5 и как всё это работает.
В уроке Вы научитесь эффективно работать с интерфейсом редактора Blueprint, также я дам несколько полезных советов.
Важнейшая тема, о которой мы поговорим в этом уроке.
Обсудим, что такое переменные, какие есть типы и когда их применять (например, не все понимают разницы между String, Text и Name).
Разберём в уроке несколько примеров с переменными.
Из урока Вы узнаете, что такое перечисления и когда их стоит применять.
Поговорим о различных математических операциях, которые имеются в Unreal Engine 5.
Данная тема является основой для ветвления логики, поэтому она очень важна.
Данный оператор уже осуществляет ветвление логики.
Функции позволяют повторно использовать один и тот же код, а также позволяют сделать его более компактным и более читабельным (туторщикам из Интернета очень рекомендую посмотреть этот урок, а не использовать постоянно Sequence).
Я не большой поклонник макросов, но иногда они очень выручают, и о таких ситуациях мы поговорим. Разумеется, что такое макросы мы также обсудим.
Циклы позволяют многократно выполнять один и тот же код (например, поочерёдно удалить все предметы из инвентаря), и именно о них мы поговорим в этом уроке.
Ещё одна очень важная тема (как и все остальные в этом модуле), в которой любой новичок обязан быть как рыба в воде. И этим мы и займёмся в этом уроке.
Помимо классических массивов есть и другие способы хранения данных, и о них мы и поговорим в этом уроке.
Разберём множество полезных функций для работы с массивами.
Таймеры позволяют запускать какую-то логику через заданный промежуток времени. Например, раз в секунду уменьшать сытость у персонажа и/или восстанавливать здоровье.
В уроке Вы узнаете, что такое Timeline, как с ним работать и когда его стоит использовать.
Из урока Вы узнаете, что такое трассировка, какие есть виды трассировки, как её применять на практике.
В уроке мы рассмотрим создание кривых и их использование в играх.
Очень полезный урок, который научит Вас находить ошибки в своих программах.
Данный модуль снабжён множество примеров. И после этого раздела Вы будете знать всю необходимую базу для создания своих собственных несложных игровых механик. Ключевое слово здесь «своих». Есть принципиальная разница между созданием своего и копированием чужого. Последнее – абсолютно бесполезное занятие, которое, на самом деле, ничему не учит. Поэтому чтобы не задавать вопросы: «А как сделать, чтобы пища портилась» или «Как сделать, чтобы зелье восстанавливало здоровье» - нужно иметь всю эту базу. Имея базу, эти вопросы начнут сами собой отпадать. И эту базу Вы получите как раз в этом модуле.
Модуль №7. Объектно-ориентированное программирование
Без ООП немыслим ни один даже маленький проект. Это самый популярный подход к программированию в целом, и в Unreal Engine в частности. И именно он рассматривается в данном модуле.
В уроке разберём, что такое ООП, что такое наследование, инкапсуляция и полиморфизм.
В уроке мы создадим класс и пропишем логику в нём.
Из урока Вы узнаете, что такое компоненты, какие они бывают и как с ними работать.
В уроке Вы узнаете, как правильно использовать Construction Script.
В уроке мы ещё раз остановимся на наследовании и реализуем пример с наследованием классов.
Если преподаватель не использует protected/private (а их использует навскидку 1 из 15 «преподавателей»), значит, в программировании он является полным нулём. Но Вы после этого урока уже будете понимать, что такое доступ к переменным и функциям и почему так важно использовать модификаторы доступа protected/private.
Ещё одна сложная тема для новичков, но я постараюсь её объяснить простым языком и на примерах.
Из урока Вы узнаете, что такое класс GameMode, для чего он нужен и как его настраивать.
В уроке Вы увидите создание персонажа игрока с нуля.
Добавим управление к созданному персонажу.
Поговорим про компонент CharacterMovement и про его настройки.
Создадим нашего противника.
Добавим к нашему противнику искусственный интеллект.
Обсудим дерево поведения, которое очень помогает при создании даже очень сложной логики искусственного интеллекта.
Это важная система, которая позволяет делать "разумный" AI, опирающийся на окружающую среду.
Из урока Вы узнаете, как реализуется сохранение и загрузка игры.
Научимся создавать свои собственные компоненты.
Диспетчеры событий необычайно важны, если Вы хотите делать качественные проекты. По сути, это реализованный паттерн Наблюдатель. Но даже, если Вы новичок, всё равно надо привыкать использовать Event Dispatcher с самого начала.
Посмотрев этот урок, Вы узнаете, что такое структуры и как их применять на практике.
Благодаря этому уроку Вы научитесь работать с таблицами данных.
В уроке поговорим про сплайны и про их программирование.
Генерация объектов встречается достаточно часто, и как это делается в Unreal Engine, Вы узнаете из этого урока.
Данный модуль даст Вам все необходимые знания по объектно-ориентированному программированию в Unreal Engine 5.
Модуль №8. Виджеты
Весь интерфейс в играх: главное меню, меню паузы, инвентарь, количество патронов/здоровья, журнал и многое-многое другое – это всё виджеты. И в этом модуле мы займёмся их изучением.
В уроке Вы получите всю базу для создания своих первых виджетов.
Обсудим весь необходимый функционал для создания виджетов.
В уроке мы разберём десятки самых разных элементов, которые нам доступны в движке.
Создадим свой HUD.
Добавим кода, чтобы этот HUD изменялся в зависимости от текущих параметров (например, количества здоровья персонажа).
Сделаем оптимизированный вариант получения данных для виджетов. Большинство новичков делает связку каждый тик, что крайне расточительно и неправильно в 99% случаях.
Добавим ещё один виджет, настроим его логику.
В уроке Вы познакомитесь с тем, как создаётся анимация виджетов и как с ней вообще работать.
Очень полезное событие, которое многие новички игнорируют, однако, Вы из урока узнаете, почему оно так важно и как его правильно использовать.
Очень часто приходится выводить виджеты динамически (например, ячейки инвентаря), и как это делать, Вы узнаете в этом уроке.
Посмотрев данный модуль, Вы научитесь создавать свои собственные интерфейсы любой сложности.
Модуль №9. Анимация
Весь интерфейс в играх: главное меню, меню паузы, инвентарь, количество патронов/здоровья, журнал и многое-многое другое – это всё виджеты. И в этом модуле мы займёмся их изучением.
В уроке Вы получите всю базу для создания своих первых виджетов.
Обсудим весь необходимый функционал для создания виджетов.
В уроке мы разберём десятки самых разных элементов, которые нам доступны в движке.
Создадим свой HUD.
Добавим кода, чтобы этот HUD изменялся в зависимости от текущих параметров (например, количества здоровья персонажа).
Сделаем оптимизированный вариант получения данных для виджетов. Большинство новичков делает связку каждый тик, что крайне расточительно и неправильно в 99% случаях.
Добавим ещё один виджет, настроим его логику.
В уроке Вы познакомитесь с тем, как создаётся анимация виджетов и как с ней вообще работать.
Очень полезное событие, которое многие новички игнорируют, однако, Вы из урока узнаете, почему оно так важно и как его правильно использовать.
Очень часто приходится выводить виджеты динамически (например, ячейки инвентаря), и как это делать, Вы узнаете в этом уроке.
Посмотрев данный модуль, Вы научитесь создавать свои собственные интерфейсы любой сложности.
Модуль №10. Системы частиц
Искры, взрывы, дым, огонь, брызги крови, дождь, снег и многое-многое другое – всё это системы частиц. И именно их мы с Вами и будем учиться создавать в этом модуле.
Обсудим всю терминологию, необходимую для создания частиц в Niagara.
Познакомимся с интерфейсом редактора, где создаются системы частиц.
Из урока Вы узнаете, как создаются и настраиваются частицы.
Разберём случаи, когда нужны GPU-частицы, а также создадим пример.
В уроке мы разберём создание частиц, состоящих из обычных 3D-объектов.
Создадим лазерный луч, которым будет стрелять наш персонаж.
После просмотра урока Вы узнаете, как добавить звук в нужный момент при проигрывании системы Niagara.
Разберёмся с очень полезным механизмом в Niagara – событиями.
Реализуем дождь на уровне с брызгами от удара капель об землю.
Посмотрев этот модуль, Вы сможете создавать свои собственные системы частиц в Niagara, а также сможете модифицировать под себя чужие, коих великое множество.
Модуль №11. Cinematics
Cinematics используется, в первую очередь, для внутриигровых кат-сцен. Однако, очень часто этот инструмент используется и для создания фильмов, и для рекламных роликов, и даже для инфографики. И с этим инструментом Вы научитесь работать в этом модуле.
Разберём все необходимые инструменты, доступные нам в Sequencer.
Добавим персонажа и камеру, а также создадим уже первый снимок (shot).
Познакомимся с ещё некоторыми функциональными возможностями Sequencer.
Очень полезная возможность Sequencer – это вызов функций прямо из кат-сцены. Например, у Вас есть функция в Blueprint, где запускается какой-нибудь механизм, и Вы эту функцию можете вызвать прямо из кат-сцены.
Разберёмся с тем, как динамически регулировать скорость воспроизведения.
Добавим в кат-сцену системы частиц Niagara.
Добавим эффект затухания в кат-сцену.
Добавим музыку на фон, а также речь персонажам кат-сцены.
Добавим субтитры к диалогу во время кат-сцены.
Научимся запускать кат-сцены через Blueprint, как это обычно и происходит. Например, персонажа заходит в какой-нибудь триггер и после этого начинается кат-сцена. Разберём так же некоторые важные настройки.
Сделаем рендер кат-сцены, чтобы её мог посмотреть любой человек в обычном проигрывателе.
В рамках данных уроков мы с Вами создадим полноценную кат-сцену. Пройдя данный модуль, Вы сможете создавать уже свои собственные ролики, ограниченные только Вашей фантазией.
Модуль №12. Мультиплеер
Не секрет, что наиболее прибыльные игры являются сетевыми. И самые сложные игры для создания – это как раз они, поэтому они были оставлены напоследок. Однако, в Unreal Engine 5, в отличие от конкурентов, уже очень многое имеется из коробки. Поэтому создавать сетевые игры на Unreal Engine 5 существенно проще, чем на любом другом движке. И в этом модуле Вы узнаете, как это делается.
В уроке Вы получите всю необходимую базу для качественного понимания того, как работают сетевые игры.
Разберём очень полезный макрос, который помогает разделить логику клиента и сервера.
Из урока Вы узнаете, что такое репликация и как её настраивать у объектов.
Обсудим репликацию переменных, разберём примеры.
Важнейшая тема, которая позволит Вам не запускать эффекты частиц на выделенном сервере и не позволять делать проверки важных вещей на клиенте.
Поговорим об оптимизации репликации, а также о решении проблем, которые эта оптимизация вызывает.
Разберёмся с механизмом сессий. После этого урока Вы уже сможете запаковать свою игру, отправить другу и играть в неё с ним по сети.
Важные слова напутствия и советы, в каком направлении стоит двигаться дальше, исходя из моего опыта.
Знаний из данного раздела Вам уже хватит на создание несложных мультиплеерных проектов. Но отмечу, что для создания более серьёзных сетевых игр, потребуется уже знание C++.