К списку уроков

Урок 2. Основы работы в Unreal Engine 5

Онлайн и в Б-829, 2 октября (четверг), 15:30

На занятии познакомимся с движком поближе.

Занятие 1: Основы работы UE5

Презентация с занятия.

Добро пожаловать на первое занятие нашего курса! Сегодня мы заложим фундамент для вашей будущей работы в Unreal Engine 5. Мы познакомимся с движком, его интерфейсом, научимся управлять проектами и импортировать свои первые объекты.

Оглавление

  1. Знакомство с курсом

  2. Что такое Unreal Engine 5?

  3. Работа в Epic Games Launcher

  4. Файловая система и структура проекта

  5. Разбор интерфейса редактора

  6. Импорт ассетов

  7. Редактор Static Mesh

  8. Настройка коллизии

  9. Подключение к GitHub (Системы контроля версий)

1. Знакомство с курсом

  • Цель курса: Научиться работать с движком для создания игровых прототипов, дизайна уровней.

  • Коммуникация: тг чат курсов геймдев.

2. Что такое Unreal Engine 5?

Unreal Engine (UE) — это мощный игровой движок, разработанный компанией Epic Games. Он используется для создания игр (от инди до AAA-проектов), фильмов, архитектурной визуализации, симуляций и многого другого.

История
Unreal Engine родился в 1998 году с шутером Unreal. Движок быстро стал коммерческим продуктом. Версия UE3 (2006) сделала его отраслевым стандартом. В UE4 (2014) появились Blueprints, открыв разработку инди-студиям. Современный UE5 (2022) получил ненависные, но прорывные технологиями Nanite и Lumen.

Ключевые особенности UE5:

  • Lumen: Динамическая система глобального освещения в реальном времени. И она уже начинает работать не плохо.

  • Nanite: Технология виртуализированной геометрии, позволяющая использовать миллионы полигонов "без потери производительности". С UE5.7 работает очень хорошо с листвой, в остальном не рекомендую её применять.

  • Blueprints: Система визуального скриптинга, которая позволяет быстро создавать и компелировать логику без написания кода. Отлично для протатипирования, игр для джемов и быстрого старта.

  • Кроссплатформенность: Поддержка ПК, консолей, мобильных устройств и VR/AR.

3. Работа в Epic Games Launcher

Epic Games Launcher — это ваш центр управления проектами, версиями движка и ассетами.

  • Вкладка "Библиотека" (Library):

    • Версии UE: Здесь можно устанавливать, обновлять и запускать разные версии UE. Рекомендуется использовать последнюю стабильную версию.

    • Мои проекты: Список всех ваших проектов. Отсюда их можно открывать.

    • Библиотека Fab: Коллекция всех ассетов, которые вы приобрели или скачали из Fab. Они хранятся здесь и могут быть добавлены в любой проект.

  • Вкладка слева "Fab":

    • Магазин, где можно найти тысячи готовых ассетов: 3D-модели, материалы, звуки, плагины и целые игровые системы.

    • Важно: Каждый месяц Epic Games раздает подборку платных ассетов бесплатно! Обязательно забирайте их.

  • Создание нового проекта:

    1. Нажмите "Запустить" (Launch) на нужной версии движка.

    2. В окне Project Browser выберите категорию (например, Games).

    3. Выберите шаблон (Template), например, Blank (пустой) или Third Person (с готовым персонажем).

    4. Настройки проекта (Project Settings):

      • Blueprint / C++: Не имеет значения в перспективе, но стартовые наборы будут запрограммированы в выбраном режиме

      • Target Platform: Desktop или Mobile.

      • Quality Preset: Maximum или Scalable(чаще используют для 2д игр(да их тоже тут делают)).

      • Starter Content: Набор базовых объектов и материалов для быстрого старта.

    5. Укажите путь и имя проекта (используйте только латиницу). Нажмите Create.

4. Файловая система и структура проекта

Золотое правило: Никогда не изменяйте файлы проекта через Проводник Windows или Finder. Все операции (перемещение, переименование, удаление) выполняются только внутри редактора Unreal Engine в окне Content Browser.

  • Папка Content: Корневая папка для всех ассетов вашего проекта.

  • Папка Config: Папка с ini-файлами конфигурации движка и проекта.

  • Папка Saved: Сохранения вашей игры, авто сохранения проекта, скриншоты.

  • Папки Intermediate и DerivedDataCache: Кэш.

  • Файл запуска nameproj.uproject: Файл запуска проекта, если открыть в блокноте можно увидеть информациб по проекте: версия, плагины, т.д.

Для запуска проекта обязательны: папки Content и Config и файл nameproj.uproject. Остальное генерируется автоматом.

5. Разбор интерфейса редактора

Документация UE

  1. Viewport (Окно проекции): Главное окно, где вы видите и редактируете вашу сцену (уровень).

    • Навигация:

      • Зажать Правую кнопку мыши (ПКМ) + WASDQE для полета.

      • Зажать Левую кнопку мыши (ЛКМ) + двигать мышь для перемещения вперед/назад и поворота.

      • Колесико мыши: Приближение/отдаление.

  2. Outliner (Структура сцены): Список всех объектов (Actors), которые находятся на текущем уровне.

  3. Details (Подробности): Панель, где отображаются и редактируются свойства выделенного в Outliner или Viewport объекта (его позиция, поворот, масштаб, компоненты и т.д.).

  4. Content Browser (Браузер контента): Доступ к файлам и папкам проекта.

  5. Toolbar (Панель инструментов): Основные кнопки: Save, Play, Build и т.д.

  6. Place Actors (Размещение объектов): Панель для добавления на сцену базовых объектов: кубов, сфер, источников света, камер.

6. Импорт ассетов

Вы можете добавлять в проект свои собственные 3D-модели (например, в формате .fbx или .obj).

  1. Способ 1 (Drag-and-Drop): Перетащите файл модели из Проводника прямо в нужную папку в Content Browser.

  2. Способ 2 (Кнопка "Import"): В Content Browser нажмите кнопку + Add -> Import To... и выберите файл.

  • Окно импорта:

    • Generate Missing Collisions: Поставьте галочку, чтобы движок автоматически создал простую коллизию для объекта или уберите галочку если вам это не нужно.

    • Import Materials и Import Textures: Если у модели есть материалы и текстуры, UE попытается их создать. Для начала можно оставить включенным.

    • Combine Statick Meshes: Поставьте галку если вы хотите чтобы объект состоящий из множества деталий загрузился одним мешем.

    • Нажмите Import или Import All.

7. Редактор Static Mesh

Static Mesh — это статический (не анимированный) 3D-объект. Двойной клик по ассету Static Mesh в Content Browser откроет Static Mesh Editor.

  • Что здесь можно делать:

  • Просматривать модель со всех сторон.

  • Назначать материалы: В панели Details есть раздел Material Slots. Сюда можно перетаскивать ассеты материалов.

  • Настраивать коллизию: Самое важное для физики. Если тыкнуть на глазик можно отображать Simple(простую) и Complex(сложную, за частую полностью повторяющую границы меша) коллизию объекта. А сверху на соотвествуещей кнопке с выпадающим списком сосздавать нужную коллизию.

    • Простая коллизия (Simple Collision): Оптимизированные примитивы (кубы, сферы, капсулы). Используется для физики и передвижения. Игрок всегда взаимодействует с простой коллизией.

    • Сложная коллизия (Complex Collision): Повторяет геометрию самой модели. Используется для точных трассировок лучей (например, попадание пули). Не используется для передвижения игрока, так как это очень непроизводительно.

  • Настраивать уровни детализации (LODs): Отключить Nanite и настроить нормальные лоды.

  • Для того чтобы настроить процедурные LOD, после открытия статик-меша в новом окне в панели Details будет вкладка LODs, вам нужно включить LOD Picer -> Custom LODs, ниже в LOD Settings выставить количество лодов, применить (если требуется) и приступить к настройке лодов (появятся новые вкладки LOD 1, LOD 2,... LOD n). В настройке у вас есть изменение количества полигонов в процентах, а также с выключённым параметром Auto Compute LOD Distance вы сможете настраивать включаемый уровень детализации в зависимости от того, какой процент (параметр screen size) экрана занимает объект, чем меньше процент, тем более низкая детализация объекта.

8. Настройка коллизии

Коллизия (Collision) — это невидимая простая форма, которая определяет физические границы объекта. Она нужна, чтобы персонаж не проходил сквозь стены, а предметы не падали под пол.

Важно: Для физических расчетов используется именно простая коллизия, а не сама 3D-модель, так как это в сотни раз производительнее.

  • Как посмотреть и настроить коллизию:

    1. Откройте Static Mesh Editor.

    2. На верхней панели инструментов нажмите кнопку Collision, чтобы отобразить коллизию (она будет подсвечена зеленым).

    3. Если коллизии нет или она некорректна, ее можно создать/удалить через меню Collision на той же панели.

      • Add Box Simplified Collision: Добавить простую коллизию в форме куба.

      • Add Sphere Simplified Collision: В форме сферы.

      • Auto Convex Collision: Движок попытается автоматически создать сложную, но оптимизированную коллизию. Это мощный инструмент.

9. Подключение к GitHub (Системы контроля версий)

Способ с GitHub Desktop

Общая схема работы:

  1. Git отслеживает изменения в файлах.

  2. Git LFS (Large File Storage) хранит большие файлы (бинарные ассеты UE: .uasset, .umap и др.) не в основном репозитории, а на отдельном облачном сервере, экономя место и время.

  3. GitHub Desktop предоставляет удобный графический интерфейс для работы с Git/Git LFS.

  4. GitHub — это хостинг вашего репозитория.

Шаг 1: Предварительная настройка (Установка всего необходимого)

  1. Установите Git: Скачайте с официального сайта. Во время установки:

    • Оставьте настройки по умолчанию.

    • В разделе "Choosing the default editor" можно выбрать удобный для вас редактор (например, VS Code).

    • Важно: В разделе "Adjusting the name of the initial branch" выберите main.

  2. Установите Git LFS: Скачайте с git-lfs.com. После установки откройте командную строку (терминал) и выполните команду для инициализации:

    git lfs install

    Вы должны увидеть сообщение "Git LFS initialized."

  3. Установите GitHub Desktop: Скачайте с официального сайта.

  4. Аккаунт на GitHub: Убедитесь, что у вас есть аккаунт на github.com.

Шаг 2: Настройка Git LFS для проекта Unreal Engine

Это самый важный шаг. Мы должны указать Git LFS, какие именно файлы нужно отслеживать как большие.

  1. Создайте файл .gitattributes в корне вашего проекта UE.

    • Корень проекта — это папка, где лежит файл YourProjectName.uproject.

    • Создать его можно через любой текстовый редактор (Блокнот, VS Code и т.д.).

  2. Добавьте в этот файл следующие строки:

    Content/** filter=lfs diff=lfs merge=lfs -text
    *.uasset filter=lfs diff=lfs merge=lfs -text
    *.umap filter=lfs diff=lfs merge=lfs -text
    • Строки *.uasset filter=lfs... и *.umap filter=lfs... — это приказ Git LFS взять под контроль все файлы с этими расширениями.

  3. Сохраните файл .gitattributes.

Шаг 3: Создание репозитория и первый коммит через GitHub Desktop

  1. Откройте GitHub Desktop.

  2. Добавьте ваш проект:

    • Нажмите File -> Add Local Repository....

    • В поле "Path" укажите путь к корневой папке вашего UE-проекта.

    • Если Git не инициализирован в папке, программа предложит вам создать здесь репозиторий. Согласитесь.

  3. Создайте репозиторий на GitHub:

    • В левой панели GitHub Desktop вы увидите ваш проект.

    • Нажмите кнопку Publish repository.

    • В открывшемся окне:

      • Name: Название вашего репозитория (обычно совпадает с названием проекта).

      • Description: Описание (опционально).

      • Keep this code private: Поставьте галочку, если проект закрытый.

      • Убедитесь, что в поле "Local path" указан правильный путь.

    • Нажмите Publish Repository.

  4. Сделайте первый коммит:

    • После публикации вы вернетесь в главное окно.

    • Слева вы увидите список измененных файлов.

    • В левом нижнем углу в поле Summary введите сообщение коммита, например, "Initial commit".

    • Важно: Убедитесь, что в коммит не попали папки Saved, Intermediate, Binaries и т.д. (они должны быть серыми, так как мы добавили их в .gitattributes как linguist-generated).

    • Нажмите кнопку Commit to main.

    • Чтобы отправить коммит на GitHub, нажмите кнопку Push origin.

Шаг 4: Настройка проекта Unreal Engine для работы с Git --- НЕ РЕКОМЕНДУЕТСЯ

  1. Откройте ваш проект (YourProjectName.uproject).

  2. Перейдите в меню Edit -> Editor Preferences.

  3. В левой панели найдите раздел Loading & Saving -> Source Control.

  4. В правой части в выпадающем списке Provider выберите Git.

    • Примечание: Это встроенная базовая интеграция. Она не заменяет GitHub Desktop, но добавляет иконки статуса файлов прямо в редакторе.

  5. Закройте настройки. Перезапустите редактор.

Теперь в Content Browser вы будете видеть небольшие иконки рядом с ассетами, показывающие их статус (изменен, добавлен и т.д.).

Почему "НЕ РЕКОМЕНДУЕТСЯ" 4 шаг. Во время больших изменений, таких как перемещение пары сотен ассетов из одной папки в другую и подобные действия, вы будете вынуждены отключать привязку с Гитом, в противном случае у вас будет зависать движок приблизительно навсегда. С этим столкнулся и я, после первого отключения не включал больше.

Если у вас что-то не то с папками

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

Способ без GitHub Desktop

Система контроля версий (VCS), такая как Git, — это стандарт для работы в команде и безопасного хранения проекта. Она позволяет отслеживать изменения, откатываться к предыдущим версиям и совместно работать над одним проектом.

  • Особенности UE и Git: Проекты Unreal Engine содержат много больших бинарных файлов (.uasset, .umap), которые Git в чистом виде обрабатывает плохо.

  • Решение: Git LFS (Large File Storage). Это расширение для Git, которое хранит большие файлы на отдельном сервере.

  • Краткий план подключения:

    1. Создать репозиторий на GitHub.

    2. Установить Git и Git LFS на компьютер.

    3. Создать .gitignore: Специальный файл, который говорит Git, какие файлы и папки игнорировать (кэш, временные файлы). Для UE это обязательно! Используйте готовый шаблон для Unreal Engine.

    4. Инициализировать репозиторий в папке проекта:

      git init
      git lfs install
        
    5. Настроить отслеживание LFS для бинарных файлов (добавить это в файл .gitattributes):

      Content/** filter=lfs diff=lfs merge=lfs -text
      *.uasset filter=lfs diff=lfs merge=lfs -text
      *.umap filter=lfs diff=lfs merge=lfs -text
        
    6. Сделать первый коммит и отправить на GitHub.

      git add .
      git commit -m "Initial commit"
      git remote add origin [ССЫЛКА_НА_ВАШ_РЕПОЗИТОРИЙ]
      git push -u origin main
        

Для новичков проще использовать GUI-клиенты, такие как GitHub Desktop (разбирается в занятии), SourceTree или иную систему. Они сильно упрощают работу с Git.

Задания