Тема: Методы генерации ландшафта карт в разработке игр на примере Unreal Engine 4
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи 5
Задачи работы 6
Глава 1. Обзор предметной области 7
1.1 Игровая индустрия как сфера научной деятельности 7
1.2 Обзор существующих решений 10
Глава 2. Процедурная генерация ландшафта 12
2.1 Генерация карты высот 12
2.2 Unreal Engine Landscape API и Procedural Mesh Component 15
2.3 Реализация алгоритмов процедурной генерации 18
2.3.1 Diamond-Square 19
2.3.2 Fault алгоритм 21
2.3.3 Шум Перлина 22
2.4 Расположение ключевых объектов 24
Глава 3. Проведение эксперимента 27
3.1 Генерация 2D текстур и использование Landscape API 27
3.1.1 Diamond-Square 28
3.1.2 Fault алгоритм 30
3.1.3 Шум Перлина 33
3.2 Генерация ландшафта с применением Procedural Mesh Component . .35
3.3 Выводы 38
Заключение 40
Список литературы 41
📖 Введение
Разработка игры — сложный процесс, требующий слаженной работы всей команды, которая может включать в себя множество специалистов разных профессий: аналитиков, программистов, дизайнеров и других. Успешные проекты могут быть реализованы как большой командной, которая может позволить себе потратить на разработку большие деньги, так и независимыми энтузиастами, чему способствует появление бесплатных платформ для разработки, площадок для краудфандинга и возможностей для распространения своего продукта.
Одним из важных этапов разработки любой игры является разработка уровня или уровней, на которых будет происходить игровой процесс. Обычно этим занимаются дизайнеры уровней под руководством дизайнеров игры. Таким образом, вид и даже стиль игровой карты могут меняться в зависимости от жанра и стилистики игры. Например, для игры в двухмерном пространстве, разрабатываемой в стиле рисованной мультипликации, нет смысла создавать трехмерный уровень и полностью заполнять его контентом. С развитием технологий во многих играх разных жанров начала использоваться реалистичная графика, позволяющая игроку более глубоко погружаться в игровой процесс. Как следствие, необходимо создание реалистичного игрового уровня.
Основанием уровня служит его ландшафт. Такие игровые движки, как Unity или Unreal Engine, предлагают готовые средства для его “лепки”. Эти средства представляют из себя набор инструментов скульптинга (например, вытягивание, сглаживание, эрозия, распрямление и т.п.). Благодаря данным инструментам, человек, отвечающий за создание уровня, может создать ландшафт нужного вида, который будет использоваться в дальнейшей разработке. Однако, участие человека в создании ландшафта требует определенных временных затрат в связи с тем, что использование вышеупомянутых средств требует мануальной работы с ними. В случаях, требующих быстрого создания уровня для дальнейшей разработки или даже для последующей игры на нем можно использовать процедурную генерацию — автоматическое создание контента с помощью алгоритмов. При разработке игр процедурная генерация используется для генерации материалов и текстур или для расположения объектов на игровом уровне и наполнения его контентом. Также ее можно применить и для генерации ландшафта. В качестве основного алгоритма для процедурной генерации ландшафта можно выбрать множество алгоритмов, например, создание шума.
Постановка задачи
Целью данной работы является реализация решения для процедурной генерации ландшафта для использования при разработке игр на движке Unreal Engine 4 [16].
Сгенерированный с помощью такого решения ландшафт должен представлять из себя участок земли, который содержал бы на себе возвышенности и углубления, но который при этом позволял бы строить систему навигации для перемещения по данному ландшафту искусственного интеллекта и размещать на себе ключевые для игрового процесса объекты, или участок земли, который можно было бы использовать как базу для последующего создания полноценного уровня на нем.
✅ Заключение
• Путем обзора научной деятельности в сфере игровой индустрии показана актуальность работы;
• Проведен обзор существующих решений;
• Проведен обзор основных групп алгоритмов, применимых для решения данной задачи;
• Рассмотрены 2 способа решения задачи: генерация 2D текстуры и создание ландшафта на ее основе, генерация ландшафта с применением Procedural Mesh Component;
• Выбраны, реализованы и оценены 3 алгоритма.
При дальнейшей работе над алгоритмом планируется:
• Реализовать другие алгоритмы генерации карты высот, например, симплекс-шум (улучшенная версия шума Перлина) или шум Вороного;
• Процедурная генерация окружения — расположение определенных мешей, задающих местность, например, травы, деревьев, камней;
• Усложнение геометрии ландшафта, например, генерация пещер и каменных навесов;
• Добавление возможности генерации биомов — природно-климатический зон, которые будут определяться набором определенных параметров таких как высота, объекты, характеризующие эту зону, текстуры, накладывающиеся на ландшафт и т.п.



