Создание игр на Unreal Engine 4 (Михаил Русаков)
Почему именно Unreal Engine 4?
Этот вопрос действительно очень важный. И в отличие от фанатов того же Unity у меня был выбор, так как я начал изучать Unreal Engine в 2016-м году, а не годами ранее, когда действительно был только Unity. А в 2016-м году уже было 3 крупных движка: Unreal Engine 4, Unity и CryEngine.
Я очень подробно изучил преимущества и недостатки всех движков. Посмотрел где-то с десяток часов видеоуроков по каждому из них, чтобы понять, какой мне нравится больше. И, в конечном итоге, я сделал осознанный выбор в пользу именно Unreal Engine 4, и за все эти годы я ни разу об этом не пожалел.
В таблице ниже я сравниваю по разным аспектам движки Unreal Engine 4 и Unity. CryEngine здесь нет, поскольку, к сожалению, движок уже заброшен. Компания CryTek продала права на него Amazon, а это означает, что движок канул в лету и, скорее всего, про него можно будет забыть.
Как же освоить Unreal Engine 4?
Главная проблема Unreal Engine 4 на данный момент – это малое количество качественных учебных материалов. В таблице ниже Вы можете увидеть различные варианты обучения, их преимущества и недостатки.
Возможно, кого-то удивит отсутствие разбора обучения с помощью книг. Это очень хороший вариант обучения, но его бессмысленно здесь разбирать, поскольку хороших книг по Unreal Engine 4 нет ни русском языке, ни даже на английском. Да, и, в целом, книг по этой тематике практически нет.
Программа:
Введение
Это вводный модуль, из которого Вы узнаете:
- Как скачать и установить Unreal.
- Множество полезных секретов по эффективной работе в лаунчере.
- Какие виды ассетов НЕ стоит покупать.
Основы работы в движке
Прежде чем начинать делать хоть что-то в движке, нужно знать всю необходимую информацию по работе с ним, и как раз в этом модуле Вы её получите.
- Какие есть важные настройки при создании проекта.
- Какова структура файлов и папок проекта и где, что находится.
- Все возможности по настройке интерфейса движка.
- Назначение множества вкладок, панелей, кнопок, переключателей, пунктов меню и так далее.
- Полезные советы по эффективной работе во Viewport.
- Какие есть базовые объекты в Unreal Engine и как их использовать.
- Как работать в Content Browser.
- Что такое LOD и как их настраивать.
- Что такое коллизия, как с ней работать, как её настраивать в мельчайших подробностях и деталях.
- Как работать с 3D-моделями: экспортировать/импортировать их, настраивать и использовать.
- Важнейшие моменты, касающиеся координат.
- Как настраивать физику.
- Как работать с BSP-геометрией и чего ни в коем случае нельзя делать, если Вы хотите, чтобы не было проблем с FPS.
- Как упаковать проект под разные платформы.
Дизайн уровней
Редко, какая игра обходится без дизайна уровней, и любой специалист по Unreal Engine (даже если он не Level Designer) обязан быть хорошо знакомым с инструментами для этого. И посмотрев этот модуль, Вы сможете с ними работать и узнаете:
- Как создать и настроить ландшафт.
- Как добавлять сторонние ассеты.
- Как правильно добавлять множество растительности и других различных объектов на сцену.
- Как правильно настраивать освещение и как правильно работать с источниками света.
- Как создать и настроить небо.
- Как использовать Sky Atmosphere для более красивого освещения сцены.
- Как добавлять и настраивать туман.
- Как использовать постобработку.
- Как правильно организовывать сцену.
- Как оптимально создавать большие уровни.
Аудио
Аудио – важнейшая часть большинства игр, особенно, в инди-проектах, где нет большого бюджета. Аудио способно создать абсолютно любую атмосферу, и с ним нужно уметь работать. Этому посвящён весь этот модуль, из которого Вы узнаете:
- Как подготовить аудио-файлы перед импортом в движок.
- Как добавить звуки и музыку в игру и как их настраивать.
- Как использовать Sound Cue.
- Как использовать Sound Attenuation.
- Что такое ревербация и как её настроить на сцене.
Материалы
Материалы определяют, как выглядят 3D-объекты: какая на них текстура, какой рельеф, как они отражают свет и многое другое. Исходя из этого, эту тему невозможно обойти стороной, и ею мы и займёмся в данном модуле, из которого Вы узнаете:
- Что такое материалы.
- Как работают материалы в Unreal Engine 4.
- Как правильно создаются материалы.
- Что такое Material Instance.
- Какие есть математические операции в материалах и, главное, как их применять.
- Что такое тайлинг и как его настраивать.
- Как использовать Material Parameter Collection.
- Как использовать функции для материалов.
- Как можно раскрашивать модели по вертексам.
- Как создать материал для ландшафта.
- Как сделать авто-материал для ландшафта.
- Что такое декали и как их использовать.
- Как создать материал стекла.
- Что такое Master Material и как его использовать.
Основы программирования
В любой даже самой простой игре не обходится без программирования. И очень важно научиться создавать свою собственную логику. Большинство в состоянии только скопировать чужую, но в данном модуле Вы получите все необходимые знания для создания своих собственных механик.
Пройдя данный модуль, Вы узнаете:
- Как устроено программирование в Unreal Engine 4 и как это всё работает.
- Как работать с интерфейсом редактора Blueprint.
- Что такое переменные и как с ними работать.
- Какие есть типы переменных.
- Как работать с событиями.
- Что такое перечисления.
- Какие есть математические операции.
- Какие есть логические операции и операции сравнения.
- Что такое функции и как их правильно использовать.
- Что такое условный оператор.
- Что такое макросы.
- Что такое циклы.
- Что такое массивы.
- Какие есть функции для работы с массивами.
- Как работать с таймерами.
- Как использовать Timeline.
- Что такое трассировка, какие есть виды трассировки, как её использовать на практике.
- Как работать с кривыми.
- Как отлаживать программу и как, в целом, искать ошибки.
Объектно-ориентированное программирование
Без ООП немыслим ни один даже маленький проект. Это самый популярный подход к программированию в целом, и в Unreal Engine в частности. И именно он рассматривается в данном модуле, в котором Вы узнаете:
- Что такое ООП.
- Какие есть важнейшие концепции ООП.
- Термины ООП.
- Как создать свой класс.
- Что такое компоненты и как с ними работать.
- Как настроить доступ к переменным.
- Как правильно работать с Construction Script.
- Что такое наследование и как правильно его применять.
- Что такое интерфейсы, почему они так важны и когда их стоит использовать.
- Возможности и назначение класса GameMode.
- Как создать класс игрока.
- Как настроить управление в игре.
- Какие есть настройки в Character Movement.
- Как создать класс противника.
- Как добавить к нему искусственный интеллект.
- Что такое Behavior Tree, а также как и когда его стоит использовать.
- Как реализовать сохранение и загрузку игры.
- Как использовать Actor Component.
- Что такое Event Dispatcher и как с ними работать.
- Что такое структуры.
- Как работать с Data Table.
Виджеты
Весь интерфейс в играх: главное меню, меню паузы, инвентарь, количество патронов/здоровья, журнал и многое-многое другое – это всё виджеты. И в данном модуле Вы узнаете:
- Основы создания виджетов в Unreal Engine.
- Как работать с интерфейсом редактора виджетов.
- Какие есть очень полезные настройки, которые редко используются другими, по причине их незнания? Я сам с ними разбирался методом тыка, и свой опыт передам Вам.
- Как правильно создавать/верстать виджет.
- Как программируется логика виджета.
- Как делать Binding через Event Dispatcher. Это очень важная информация, которую тяжело найти, но она крайне важна для оптимизации.
- Как управлять множеством виджетов.
- Как делать анимационные виджеты.
- Как правильно и эффективно использовать PreConstruct.
Анимация
Без анимации в играх обходится крайне редко. И, в основном, анимация в играх является скелетной, и именно о ней мы с Вами будем говорить в данном модуле, из которого Вы узнаете:
- Всю необходимую теорию по скелетной анимации.
- Как работать со Skeletal Mesh?
- Как работать с Animation Sequence?
- Что такое BlendSpace, как его создать и, главное, как настроить?
- Как создаётся анимационная логика?
- Что такое State Machine и когда её нужно использовать?
- Как создать Aim Offset?
- Как работать с Animation Montage?
- Как работать с Anim Notify?
- Как настраивается Root Motion?
- Как делается ретаргетинг?
Системы частиц
Искры, взрывы, дым, огонь, брызги крови, дождь, снег и многое-многое другое – всё это системы частиц. И именно их мы с Вами и будем учиться создавать в этом модуле. Посмотрев модуль, Вы узнаете:
- Всю важную терминологию, касающуюся систем частиц.
- Как работать с интерфейсом редактора Cascade.
- Как создаются частицы и как настраиваются.
- Зачем нужны GPU-частицы и когда их применять.
- Как создаются Mesh-частицы.
- Как настраиваются Beam-частицы.
- Как создаются Ribbon-частицы.
- Как настраивается AnimTrail.
Cinematics
Cinematics используется, в первую очередь, для внутриигровых кат-сцен. Однако, очень часто этот инструмент используется и для создания фильмов, и для рекламных роликов, и даже для инфографики. И с этим инструментов Вы научитесь работать в этом модуле.
Посмотрев модуль, Вы узнаете:
- Основы и интерфейс редактора Sequencer.
- Как добавлять камеры и персонажей.
- Как настраивать камеры.
- Как работать с дорожками у объектов.
- Как делать отдельные shot-ы.
- Как использовать SubScene.
- Как управлять скоростью воспроизведения.
- Как добавлять эффекты.
- Как добавлять аудио.
- Как добавить механизм затухания ролика.
- Как сделать рендер игровой катсцены в avi-файл.
Мультиплеер
Не секрет, что наиболее прибыльные игры являются сетевыми. И самые сложные игры для создания – это как раз они, поэтому они были оставлены напоследок. Однако, в Unreal Engine 4, в отличие от конкурентов, уже очень многое имеется из коробки. Поэтому создавать сетевые игры на Unreal Engine 4 существенно проще, чем на любом другом движке. И в этом модуле Вы узнаете, как это делается. Посмотрев его, Вы узнаете:
- Как работает мультиплеер и как всё устроено.
- Как использовать макрос Switch Has Authority.
- Что такое репликация.
- Как настраивать репликацию объектов.
- Как настраивать репликацию переменных.
- Как настраивать репликацию событий.
- Как можно оптимизировать репликацию.
- Как работать с сессиями, чтобы можно было игрокам создавать свои хосты, либо подключаться к чужим.
Бонусы
Помимо самого курса Вы также получите целых 5 отлично дополняющих основной курс Бонусов. Все эти Бонусы – это чистая практика для знаний, полученных из курса. Это очень ценная практическая информация.
Динамическая смена дня и ночи
В этом Бонусе из 10 уроков Вы научитесь созданию мощного механизма смены дня и ночи с нуля. Вы увидите, как настраиваются кривые, чтобы рассвет и закат было именно в нужное Вам время. Узнаете, как сделать вращение солнца, как сделать красивое звёздное ночное небо, как сделать луну и фазы луны, которые ещё будут плавно меняться с течением времени. Узнаете, как сделать всё максимально удобным для настройки и как добавить, чтобы время плавно менялось с заданной скоростью во время игры. Также узнаете, как сделать правильное освещение, чтобы ночью было темно, а днём было светло.
Создание динамической погоды
Бонус состоит из 7 уроков, в которых Вы увидите создание с нуля дождя, управляемого через Blueprint. Узнаете, как динамически менять влажность материалов объектов и ландшафта, как создаётся сам контроллер для настройки погоды и управления ею, как создаются тучи. В итоге, у нас получится следующая система: перед дождём сначала скапливаются и темнеют облака, потом начинает лить дождь, плавно увеличивается влажность поверхностей, затем дождь прекращается, начинается плавное рассеивание туч и плавное высыхание поверхностей. Всё это Вы увидите в этом Бонусе.
Создание искусственного интеллекта для NPC
Во многих играх NPC живут по своему расписанию. Например, утром просыпаются, идут завтракать, затем идут на работу, вечером идут гулять, потом ужинают и идут спать. И вот реализацию такой системы Вы и увидите в этих 7 уроках данного Бонуса.
В результате наши NPC будут жить строго по заданному нами расписанию и будут: гулять, есть и спать. Причём, спать они будут исключительно в своей кровати. А в качестве места для приёма пищи будут выбирать ближайшее место для этого. Также Вы увидите, как легко всё это расширяется для добавления новых возможных действий для NPC.
Создание игры под мобильные устройства
Не секрет, что Unreal Engine всё больше и больше пользуется популярностью у разработчиков мобильных игр. В целом, процесс создания игры под мобильные устройства не сильно отличается от создания игры на ПК. Однако, есть множество мелких нюансов, которые надо учитывать. И в рамках 10 уроков этого Бонуса, мы с Вами об этих нюансах поговорим, а попутно создадим мобильный шутер от первого лица, в котором надо сражаться с постоянно появляющимися и атакующими игрока зомби.
Создание прототипа RPG с открытым миром
И, наконец, последний самый крупный Бонус из всех. Состоит он из 19 уроков, в которых Вы с нуля увидите создание прототипа RPG с открытым миром. В рамках данного Бонуса Вы увидите огромное количество примеров реализации самых разных вещей: создание собственных крупных компонентов, создание оружия, атаки, искусственный интеллект для противников (причём, противники у нас будут разных уровней), создание механизма прокачки (скорость атаки, урон, количество жизней, опыт, уровни), создание всевозможных виджетов, создание миникарты, создание механизма возрождения, использование множества различные звуков и многое-многое другое. Это действительно серьёзный и крупный Бонус, который даже один сам по себе тянет на отдельный курс. Однако, этот Бонус, как и все предыдущие, Вы получите абсолютно бесплатно при заказе основного курса.
Об авторе:
Для начала я обязан представиться, чтобы Вы были уверены в моей компетенции. Данный раздел могут пропустить те, кто уже со мной давно знаком.
Меня зовут Михаил Русаков
На момент написания этих строк мне 29 лет, имею высшее техническое образование. С начала 2010-го веду учебную деятельность, а именно обучаю людей создавать сайты и программировать. На текущий момент за все эти годы я записал 46 обучающих курсов, включая как платные, так и бесплатные. Через мои обучающие материалы за все эти годы прошли сотни тысяч людей.