Как установить unreal engine 4 на linux ubuntu

Обновлено: 05.07.2024

О чем хочу поговорить? О том, как настроить свое окружение для UE4 так, чтобы потом не было мучительно больно работать. Какой у меня опыт? Никакого - инди из ассетов и та еще в разработке. Поэтому правки, замечания и дополнения максимально приветствуются!

Я, наверняка, опоздал с помощью к текущему гейм-джему… Значит, оставим сей труд для будущих поколений. 😁 Еще хочу отметить, что буду говорить о настройке UE4 именно для программирования. Скорее всего, у художников или звуковиков свои требования.

Да, анрил требователен к железу. Если у вас совсем древняя пишущая машинка и нет возможности апгрейда, то стоит посмотреть на другие движки: Unity или Godot. Если же у вас геймерский ПеКа, то он наверняка подойдет для комфортной работы с UE4.

  • Видеокарта. Советовать тут сложно. Она должна быть. Она должна быть дискретной. А дальше все зависит от тяжести игры. Я не замечал, чтобы анрил что-то усиленно считал на видюхе. Думаю, любая современная (год-два) дискретная видеокарта потянет большинство задач.
  • Процессор. Сборка С++ и шейдеров проходит именно на CPU. Больше потоков – больше одновременных задач – быстрее выполняется работа. Частота процессора по приоритету ниже.
  • Память. Ее должно быть очень много. 😊 Минимальный минимум 8 гигабайт. И очень важна скорость взаимодействия процессора с памятью, память должна успевать обслуживать все ядра. Вот тут может быть ощутимый профит от «разгона».
  • Самое главное – винчестер. С HDD будут боль и страдания. Только SSD и по возможности NVMe. Обращать внимание на случайную скорость записи и чтения. 120 гигабайт будет впритык. Поставить 2 версии движка уже не получится, так как 4.22 с отладочной инфой весит около 35 гигабайт.

На 3dnews есть великолепный раздел «Компьютер месяца», конкретные комплектующие можно посмотреть в нем. Например:

На недавно прошедшей выставке Computex 2019 было представлено множество интересных новинок…

Еще я не замечал на официальных стримах, чтобы кто-то из эпиков пользовался компьютерами от Apple. Если у кого-нибудь есть такой опыт, интересно будет его обсудить в комментариях.

Напоминаю, весь софт должен лежать на SSD, не только движок.

  • Винда. Эпики кругом и по всякому используют семерку и десятку. Я не видел macOS или Linux. Поэтому у меня большие сомнения, что они хорошо оптимизируют и тестируют работу с движком под другие платформы.
  • Студия. Две версии на выбор: 2017 и 2019. 2017-я хороша и надежна, но без Visual Assist X работать с UE4 тяжело. IntelliSense не справляется совсем: подсветку не дождешься, автозаполнение не работает, кругом фантомные ошибки. А VAX стоит от $50 до $250, что, мягко говоря, ощутимо. С 2019 таких проблем нет, IntelliSense «из коробки» отлично переваривает UE4. Правда, сейчас есть небольшие проблемы со стабильностью, у меня пару раз студия падала на поиске.
  • Если не устраивает студия, то можно попробовать CLion или Visual Studio Code. Но, в любом случае, придется ставить студию со всеми SDK.
  • Epic Games Launcher (в этот момент раздается зловещий хохот Галенкина за кадром) и Unreal Engine 4. Я крайне рекомендую ставить самую последнюю версию движка и всегда его обновлять. Например, полная пересборка нашей игры на 4.21 занимала около 120 секунд, сейчас, на 4.22, эта операция занимает меньше 90 секунд.
  • GIT или любая другая система контроля версий, поддерживаемая UE4. Даже если работа идет в одиночку. Дело в том, что через нее UE4 узнает об измененных файлах, и может группировать неизмененные С++ файлы в один, что существенно повышает скорость сборки. Поработали, видим, что студия начинает компилировать тонну файлов, коммит+пуш и снова все собирается быстро.
  • Периодически желательно чистить папку с игрой. BAT-ничек прилагаю ниже, его кладем рядышком с *.uproject. Запускать перед коммитом, естественно закрыв студию и движок.
echo off rem Visual Studio del /Q .vs rd /S /Q .vs del *.sln rem Visual Studio Code del /Q .vscode rd /S /Q .vscode del *.code-workspace rem Unreal Engine del /Q Binaries rd /S /Q Binaries rem Build - build settings del /Q "Build\WindowsNoEditor" rd /S /Q "Build\WindowsNoEditor" rem Intermediate - temporary files generated when you compile your code del /Q Intermediate rd /S /Q Intermediate rem Saved - local log & configuration files, screenshots, auto-saves etc. del /Q Saved rd /S /Q Saved

Антивирус. Этот друг реально бесит, но без него страхово. Поэтому в исключения добавим только критичные для разработки папки:

В марте 2015 года Epic Games повернулась лицом к Open Source сообществу, предоставив бесплатный доступ к своему движку Unreal Engine версии 4 (установив лимит на прибыль от использования движка в 3000$ за квартал). Более того, еще в 2014 году компания говорила о том, что поддержка свободных операционных систем, в частности Linux, является для неё одной из приоритетных задач.

Стоит отметить, что эти слова не стали пустым звуком, и на сегодняшний день движок достаточно уверенно работает в среде Linux. Существует достаточное количество официальной документации, повествующей о том, как установить и настроить движок в среде этой ОС.

Однако, при кажущейся прозрачности процесса развертывания рабочего окружения, существует ряд мелких, но неприятных нюансов, затрудняющих жизнь поклонникам пингвинов. Под катом краткое и вольное описание особенностей установки движка, с которыми столкнулся автор, призванное разрешить некоторые из трудностей, с которыми сталкиваются новички.

Итак, имеем компьютер (CPU: Intel Core i7-2600K, RAM: 16Gb, Video: GeForce 580GTX), с дистрибутивом Arch Linux в качестве операционной системы.

Для этого дистрибутива существует пакет в пользовательском репозитории AUR. Судя по комментариям к пакету, он собирается и работает, и в принципе, для установки движка можно воспользоваться им. Только вот ждать, пока сборщик пакетов клонирует репозиторий придется долго. При общем размере release-ветки в 1,5-2 Гб процесс клонирования зависает на 81% вытягивая из сети около четырех гигабайт. У меня не хватило терпения дождаться окончания этого процесса.

Поэтому мы пойдем другим путем, собрав движок из исходников не заворачивая его в пакет, мотивируя это тем, что инсталляция движка в общем-то и не требуется. Убедимся, что в системе установлены следующие пакеты:

Подробно данная процедура описана на официальном сайте Epic Games. Для начала потребуется завести себе аккаунт Epic Games, так как репозиторий исходного кода движка приватный. Кроме того, вам потребуется завести аккаунт на Github, для которого вышеупомянутая контора даст доступ к репозиторию. Особенно здесь комментировать нечего: процедура вполне проста и понятна.

Получив доступ к репозиторию, создаем в файловой системе каталог, где будет располагаться движок, переходим в него и говорим заклинание

и дожидаемся загрузки релизной ветки движка. Этот процесс протекает не в пример быстрее чем при использовании ауровского PKGBUILD.

Получив исходники, переходим в каталог

наблюдая такую картину

Инструкции по сборке приведены на официальном сайте в документации а так же в официальной вики. Однако, в случае с Arch Linux не следует спешить следовать этой инструкции, так как в вики имеется настораживающая реплика

Arch Linux users should try building the Editor using the Debug profile if Development (default) does not work

/usr/bin/ld: /mnt/data/install/ue4-test/Engine/Source/ThirdParty/FreeType2/FreeType2-2.6/Lib/Linux/x86_64-unknown-linux-gnu/libfreetype.a(ftlzw.c.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; перекомпилируйте с параметром -fPIC
/usr/bin/ld: /mnt/data/install/ue4-test/Engine/Source/ThirdParty/zlib/v1.2.8//lib//Linux/x86_64-unknown-linux-gnu/libz.a(uncompr.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; перекомпилируйте с параметром -fPIC
/usr/bin/ld: final link failed: Раздел, непредставимый для вывода
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: UBT ERROR: Failed to produce item: /mnt/data/install/ue4-test/Engine/Binaries/Linux/CrashReportClient
Total build time: 196,17 seconds (Local executor: 0,00 seconds)
make: *** [Makefile:252: CrashReportClient-Linux-Shipping] Ошибка 5

Эта проблема известна майтейнерам пакета unreal-engine в AUR, для чего они предлагают наложить на исходники исправляющий это патч. Проблема связана с изменением параметров сборки gcc и clang в Arch Linux, о чем упомянуто например тут

SSP and PIE are now enabled in gcc (commit) and clang (commit) in the stable repos.
These changes will make it harder to exploit potential security holes in binaries built with these compilers.

Some discussion about this can be found on the arch-dev-public mailing list (subject «Changing compilation flags»).

Включение Position Independent Executables (PIE) ломает совместимость на уровне ABI для собираемых библиотек движка и приводит к упомянутым выше ошибкам компоновки. Соответственно, для нормальной сборки следует выключить эту опцию.

--- a/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
+++ b/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
@@ -377,6 +377,9 @@ namespace UnrealBuildTool
Result += " -Wno-invalid-offsetof";
// we use this feature to allow static FNames.
Result += " -Wno-gnu-string-literal-operator-template";
+// disable unused result's warnings
+Result += " -Wno-unused-result";

Опция -Wno-unused-result выключает предупреждения о неиспользуемых результатах возвращаемых функциями

@@ -402,6 +405,7 @@ namespace UnrealBuildTool
Result += " -fno-inline";
Result += " -fno-omit-frame-pointer";
Result += " -fstack-protector";
+ Result += " -fno-pie";

@@ -588,6 +592,8 @@ namespace UnrealBuildTool
Result += " -Wl,--disable-new-dtags";
+ Result += " -nopie";
+ Result += " -Wno-unused-command-line-argument";

Ключами -fno-pie и -nopie мы отключаем PIE для компилятора и компоновщика. Ключ -Wno-unused-command-line-argument отключает вывод предупреждения о неизвестных параметрах командной строки.

Прежде чем начать сборку, создадим симлинк

$ sudo ln -s /usr/include/locale.h /usr/include/xlocale.h

предупреждая ошибку «xlocale.h is not found».

Описанные проблемы решаются в AUR наложением на исходники серии патчей, и, в принципе никто не запрещает читателю пойти по этому пути.

После описанной подготовки выполняем скрипт

Скрипт качает и собирает необходимые сторонние библиотеки. Далее выполняем скрипт

активирующий систему сборки Unreal, генерирующую файлы для сборки проектов с помощью make, cmake, qmake, MS Visual Studio, KDevelop и CodeLite. По окончании работы скрипта с чистой совестью даем команду

Отмечу, что тут не следует использовать ключ -j задающий число собирающих потоков. Makefile генерируется с учетом распараллеливания сборки на все потоки, доступные вашей машине.

Процесс сборки пройдет без ошибок и займет некоторое время, на моей системе это порядка 40 минут

[1367/1372] Link libUE4Editor-UE4Game.so
[1368/1372] Link libUE4Editor-Advertising.so
[1369/1372] Link libUE4Editor-BlankModule.so
[1370/1372] Link libUE4Editor-IPC.so
[1371/1372] Link libUE4Editor-BlankPlugin.so
[1372/1372] Link libUE4Editor-XGEController.so
Total build time: 2560,27 seconds (Local executor: 2481,53 seconds)

Собираем так же и отладочный вариант движка

Запускаем собранный нами редактор UE4

$ cd Engine/Binaries/Linux
$ ./UE4Editor

Терпеливо ждем пока скомпилируются шейдеры (результат компиляции кэшируется и следующий запуск пройдет гораздо быстрее). По окончании компиляции создаем новый проект на C++


Выбираем путь, по которому располагается проект, даем ему имя QuickStart и жмем зеленую кнопку CreateProject. Ждем пока редактор сгенерирует файлы проекта. По окончании генерации редактор закроется. В Windows при наличии MS Visual Studio у вас откроется именно эта IDE, предлагая приступить к кодингу. В арче ничего не произойдет. Поэтому идем по пути, который мы указали при создании проекта и смотрим, что там нагенерировалось

$ ls -l
итого 4728
-rw-r--r-- 1 maisvendoo users 1999696 ноя 7 00:06 CMakeLists.txt
drwxr-xr-x 2 maisvendoo users 4096 ноя 7 00:05 Config
drwxr-xr-x 2 maisvendoo users 4096 ноя 7 00:05 Content
drwxr-xr-x 4 maisvendoo users 4096 ноя 7 00:06 Intermediate
-rw-r--r-- 1 maisvendoo users 16777 ноя 7 00:05 Makefile
-rw-r--r-- 1 maisvendoo users 350169 ноя 7 00:06 QuickStartCodeCompletionFolders.txt
-rw-r--r-- 1 maisvendoo users 14860 ноя 7 00:06 QuickStartCodeLitePreProcessor.txt
-rw-r--r-- 1 maisvendoo users 60261 ноя 7 00:06 QuickStartConfig.pri
-rw-r--r-- 1 maisvendoo users 22114 ноя 7 00:06 QuickStartDefines.pri
-rw-r--r-- 1 maisvendoo users 908626 ноя 7 00:06 QuickStartHeader.pri
-rw-r--r-- 1 maisvendoo users 220484 ноя 7 00:06 QuickStartIncludes.pri
-rw-r--r-- 1 maisvendoo users 59 ноя 7 00:05 QuickStart.kdev4
-rw-r--r-- 1 maisvendoo users 17091 ноя 7 00:06 QuickStart.pro
-rw-r--r-- 1 maisvendoo users 722630 ноя 7 00:06 QuickStartSource.pri
-rw-r--r-- 1 maisvendoo users 224 ноя 7 00:05 QuickStart.uproject
-rw-r--r-- 1 maisvendoo users 462378 ноя 7 00:06 QuickStart.workspace
drwxr-xr-x 3 maisvendoo users 4096 ноя 7 00:05 Source

Ок, редактор создал исходники (каталог Source) и ряд фалов проектов, в том числе и *.pro сценарий для qmake. Запускаем Qt Creator и открываем в нем QuickStart.pro.


В появившемся окне жмем «Настроить проект». Настройка Qt Creator подробнейшим образом описана в официальной документации движка. Я остановлюсь лишь на некоторых моментах настройки и приведу скриншоты своих настроек

Настройка отладочной сборки


Настройка релизной сборки



После того, как все настройки выполнены, нажимаем Ctrl + R и запускаем проект. На заданный нам вопрос


отвечаем утвердительно. Движок подумает ещё немного, скомпилирует шейдеры и в конечном итоге мы получаем проект, готовый к работе над упражнением QuickStart из официальной документации.


При правильное настройке проекта возможен следующий фокус. В открытом проекте жмем F10


Ага, наличие исходных текстов движка дает нам возможность не только отлаживать код игры, но и трассировать код самого движка, что иногда требуется для выяснения причин ошибок. В этом Epic Games выглядит намного более дружественнее к свои пользователям, чем некоторые другие конторы, так же предоставляющие свой движок бесплатно

Содержимое этой статьи было первоначально написано на этой странице и адаптировано специально для Arch Linux.

Contents

Минимальные требования

  • Intel или Amd CPU@2.5GHz Quad Core 64 бит
  • GPU: NVIDIA GeForce GTX 470 или AMD Radeon 6870 HD series
  • RAM: 8 GB

Установка

Установка из AUR

Unreal Engine 4 доступен в AUR как пакет unreal-engine AUR .

Пакет весит 22 ГБ после установки, поэтому для сборки требуется около 100 ГБ свободного места. Существует около 7 ГБ исходных файлов для загрузки, а компиляция может занять несколько часов.

Поскольку репозиторий является приватным, вы можете настроить SSH-ключ, чтобы ваша учетная запись GitHub использовалась для загрузки источника.

Так-же рекомендуется увеличить размер папки tmp (исходный размер 7.8), либо сменить каталог сборки.

Установка из исходного кода

Получение

Компиляция

Исправление проблем

Проблемы с компиляцией

Если компиляция не удалась, попробуйте собрать редактор с помощью профиля Debug:

Проблемы во время выполнения

Если редактор не запускается из меню, или что-то не работает правильно, запустите его в консоли и проверьте вывод на наличие ошибок.

Проблемы с проектом кода на C++

После создания проекта кода новый проект открывается в текстовом редакторе, а не в UE4Editor, как это должно быть. После повторного запуска редактора новый проект появляется и может быть открыт, но при первом запуске для компиляции требуется около получаса, и поскольку это происходит в фоновом режиме (без GUI), это может показаться недействительным. Использование ЦП должно показывать, что оно все еще компилируется, и вы можете запустить редактор с консоли, чтобы увидеть прогресс.

Отключение всплывающих подсказок

Наведение указателя мыши на всплывающие подсказки UE4 может оказаться очень медленной процедурой. Их можно отключить, добавив

Случайное зависание под KDE

Отключите содержимое индексного файла в параметрах поиска файлов KDE.

Пустой огромный квадрат в Blueprint

Если вы используете мультимониторную конфигурацию и переместили blueprint на второй экран, и при вызове контекстного меню (ПКМ в blueprint) у вас проявляется данный баг, то откройте Edit Preferences -> User interface и поставьте галочку напротив Enable Window Animation и перезапустите UnrealEngine.

Дополнительный контент

Стартовый контент

Проект StarterContent установлен в /opt/unreal-engine/Samples/StarterContent/StarterContent.uproject, вы можете перейти к нему с панели запуска.

Приложения marketplace

Лаунчер с Unreal Marketplace недоступен для Linux еще [1], поэтому приложения, такие как проект ContentExamples, не могут быть установлены из Linux[2].

Приложения marketplace можно загрузить с помощью лаунчера в Windows (в Mac также может работать), они хранятся в:


В этом уроке по Unreal Engine вы узнаете, как установить движок, перемещаться по интерфейсу и создать свой первый игровой объект.

Unreal Engine 4 – инструментарий для GameDev: это разработка и мобильных игр 2D, и компьютерных игр с высоким бюджетом. Движок стоит за именами: «Королевство Сердец III», «ARK: Survival Evolved» и «Железный Кулак 7».

Геймдев в Unreal Engine 4 легко даётся новичкам, ведь благодаря Blueprints вы сделаете игру без единой строки кода! В связке с простым в использовании интерфейсом быстро получите и запустите прототип.

Вы узнаете об установке движка, импорте ресурсов, добавлении материалов и объектов с базовой функциональностью на примере вращающегося стола для демонстрации банана.

Устанавливаем Unreal Engine 4

Перейдите на сайт Unreal Engine и кликните по кнопке Get Unreal справа сверху.


Для загрузки лаунчера создайте аккаунт. Выберите вашу операционную систему.


Когда откроете установленный лаунчер, увидите:


Введите данные, которые использовали при скачивании лаунчера, и после входа откроется:


Слева сверху нажмите кнопку Install Engine, и появится экран с выбором компонентов для установки:


Обратите внимание, что из-за регулярных обновлений версия вашего движка будет отличаться от этой.

Оставьте отмеченные по умолчанию пункты, и вот почему:

  • Starter Content: набор ресурсов для свободного использования в проектах. Содержит материалы и модели, которые пригодятся вам как заглушки или для конечного продукта.
  • Templates and Feature Packs устанавливают базовую функциональность исходя из жанра. Выберите Side Scroller и получите проект с героем, базовым перемещением и камерой в одной плоскости.
  • Engine Source: Epic предоставляет доступ к исходному коду. Если хотите добавить пользовательские фичи в редактор, внесите изменения в движок.

В списке увидите также платформы. Отключите ненужные:


После выбора компонентов кликните Install. Когда движок установился, переходим к делу.


Создайте проект

После нажатия любой кнопки Launch запустится диспетчер проектов. Перейдите на вкладку New Project.


Во вкладке Blueprint выберите шаблон Blank, потому что начинаете с чистого листа.

Посмотрите, что вы настраиваете в дополнение:

Теперь указывайте путь к директории проекта и название:


Для изменения расположения используйте кнопку с тремя точками.

По поводу имени проекта не волнуйтесь: это не название игры. Вы измените его на любой стадии разработки игры. Наберите BananaTurntable в поле Name.

В завершение кликните Create Project.

Перемещаемся по интерфейсу

Дальше появится редактор с такими панелями:

  1. Content Browser показывает структуру вашего проекта. Здесь создавайте папки, группируйте файлы, делайте поиск через специальную панель либо пользуйтесь фильтрами.
  2. Modes отвечает за выбор инструментов. По дефолту стоит Place Tool для размещения объектов в уровне, например, камеры или источников освещения.
  3. World Outliner демонстрирует уровневые объекты. Группируйте их по папкам, фильтруйте или ищите по типам.
  4. Details включает свойства объекта. Редактируя настройки объекта, вы изменяете данные только конкретного экземпляра.
  5. Toolbar: из кучи функций чаще нужна Play.
  6. Viewport: вид уровня. Чтобы оглядеться, удерживайте правую кнопку и двигайте мышью. Для движения сочетайте эту кнопку с использованием клавиш управления курсором.

Импортируем ресурсы

Зачем нужен вращающийся стол, когда пусто? Загрузите модель банана или используйте собственную.

Для импорта файлов перейдите в контент-диспетчер и нажмите Import.


Выберите папку с загруженными файлами и откройте их, выделив оба и нажав Open.


Перед вами окно с настройками импорта. Проверьте, чтобы не стояла галочка возле пункта Import Materials, поскольку вы сами займётесь материалами. Другие настройки не интересуют.


После нажатия кнопки Import вы увидите оба файла:


Импорт файлов не означает их сохранение в проекте. Воспользуйтесь контекстным меню для явного сохранения или выберите массовую операцию File/Save All, чтобы сэкономить время.

Кстати, модели в этом движке называют мешами. Меш для банана готов, осталось разметить его в уровне.

Включаем меш в уровень

Щёлкните левой кнопкой мыши и перетащите модель банана из Content Browser во Viewport. Меш добавится, как только вы бросите кнопку.

Для перемещения объекта используйте W на клавиатуре, для вращения – E, масштабирования – R. С последующим применением манипулятора:


Разбираемся с материалами

Взгляните на объект: он серый, а не жёлтый!

Поэтому создадим материал для придания ему желтизны и деталей.

Вот составляющие материала:

  • Base Color отвечает за цвет объекта или текстуру. Нужен для детализации и цветовой вариативности.
  • Metallic регулирует степень «металлизации» объекта: от нуля для тканей и до максимума у металлов.
  • Specular управляет блеском неметаллов: для глины это значение низкое, а для керамики – высокое.
  • Roughness определяет шероховатость: при максимуме убирает блеск, что полезно для дерева или камня.

Взгляните, что получится, если по очереди накрутить максимум металлизации, блеска и шероховатости, оставляя нули для остальных свойств:


Создаём материал

В диспетчере контента кликните Add New и увидите меню со списком доступных ресурсов. Нас интересует Material.


Введите название Banana_Material и сделайте двойной клик по файлу для открытия редактора.


Рассмотрим редактор материалов

Здесь четыре главные панели:

  1. Graph показывает все узлы, включая Result. Для перемещения удерживайте правую кнопку и управляйте мышью. Для приближения крутите колесо мыши.
  2. Details содержит свойства выбранного узла, а если нет выделения – свойства материала.
  3. Viewport отображает меш-превью материала. Вращайте камеру, двигая мышкой с нажатой левой кнопкой. Приближайте колесом прокрутки.
  4. Palette включает узлы для добавления материалу.

Определяем узел

Узлы – основа материала со всевозможной функциональностью. Слева увидите входные точки, а справа – точки-выходы в виде кружков со стрелкой.

К примеру, добавим в текстуру жёлтый цвет с помощью узлов Constant3Vector и Multiply:


Итоговый вид каждого материала определяет узел Result.


Добавляем текстуру

Для окраски и детализации модели нужна текстура, обыкновенное 2D-изображение, которое накладывается на 3D-модели.

Возьмите узел TextureSample из Palette и перетащите в рабочую зону, удерживая левую кнопку мыши.

Выделив узел TextureSample, переключитесь на панель Details и откройте выпадающий список справа от Texture.


Увидите меню со всеми текстурами, кликните по банановой.


Подключите текстуру к узлу Result для её отображения на меш-превью. С помощью удержания левой кнопки мыши возьмите выход узла TextureSample белого цвета и перетащите на вход с названием Base Color узла Result.

Viewport покажет текстуру на меш-превью. Для поворота и рассматривания деталей удерживайте левую кнопку мыши и перетаскивайте.


Не забудьте нажать Apply на панели Toolbar, чтобы применить изменения материала, и закройте редактор.

Используем материалы

Перейдите в Content Browser и откройте материал двойным кликом по Banana_Model. Откроется окно:


Во вкладке Details ищите секцию Materials. Кликните по выпадающему списку рядом с картинкой и выберите Banana_Material.


Возвращайтесь в главный редактор и заметите, какой текстурный стал банан. Ура, вы готовый дизайнер игровых уровней!


Смущает степень освещённости? Перейдите во World Outliner и щёлкните по Light Source. Поменяйте показатель Intensity на панели Details.

Изучаем Blueprints

Вдохновились бананом? Представьте, как круто он будет смотреться на вращающемся столе. Нам помогут Blueprints.

Blueprint отражает «сущность»: материальную – вращающийся стол или абстрактную – систему здравоохранения. С использованием Blueprints вы задаёте кастомное поведение объектов.

Задумали спроектировать несущийся автомобиль? Делайте Blueprint. Или летающего слона? Понадобятся Blueprints. А что вы думаете по поводу котика, который взрывается при столкновении? Blueprints.

Blueprints основываются на узлах, как материалы. Поэтому кодить не придётся – создали узлы и связали!

При лёгкости использования Blueprints проигрывают по скорости коду на C ++. Поэтому для ресурсоёмких вычислений выбирайте C ++.

А вот в чём выигрывают Blueprints:

  • Ускорение разработки.
  • Простота организации узлов на отдельные группы.
  • Лёгкость внесения изменений даже для непрограммистов, которым незнакома методика разработки игр.

Создавайте объекты с использованием Blueprints. Если станет вопрос производительности, переходите на С++.

Создаём Blueprint

В контент-диспетчере кликните Add New и найдите Blueprint Class.


Прочитайте информацию в окне выбора родительского класса, ведь Blueprint унаследует все свойства и атрибуты от родителя.


Классы Pawn и Character также относятся к Actors.

Вращающийся стол стоит в одной точке, поэтому выберите класс Actor и дайте файлу название Banana_Blueprint.


Откройте созданный Blueprint двойным щелчком и кликните Open Full Blueprint Editor, если увидите такое окно:


Знакомимся с редактором Blueprint

Откройте вкладку Event Graph в редакторе Blueprint.

Разберёмся с главными панелями:

  1. Components отображает компоненты.
  2. My Blueprint применяют преимущественно для взаимодействия с переменными, функциями и графиками.
  3. Details показывает свойства выделенного элемента.
  4. Graph включает всю магию: узлы и логику. Панорамируйте, двигая мышью с удержанием правой кнопки. Приближайте прокруткой колеса мыши.
  5. Viewport отвечает за визуальные компоненты. Перемещайтесь и осматривайтесь, как обсуждали во Viewport главного редактора.

Создаём вращающийся стол

Для этого понадобится основа и столешница, сделать которые помогут компоненты.

Вникаем в Component

Если Blueprint – машина, то компоненты – двигатель, коробка передач, руль и остальные составляющие авто.

Компоненты также выходят за рамки материальных объектов.

Чтобы машина ехала, создайте двигательный компонент, для полёта – летательный.

Добавляем компоненты

Перейдите на Viewport для отображения компонентов:


DefaultSceneRoot видно исключительно в редакторе.

Для вращающегося стола понадобится:

  • Cylinder: основа для банана в виде обыкновенного белого цилиндра.
  • Static Mesh: банановый меш.

Добавьте основу через панель компонентов, нажав Add Component и выбрав Cylinder.


Нажмите R, чтобы вызвать манипулятор масштаба и уменьшить размер основы.

Прежде чем добавить меш, вернитесь в Components и снимите выделение с цилиндра, кликнув левой кнопкой мыши по пустому пространству, чтобы избежать привязки компонентов друг к другу.

В противном случае масштабирование цилиндра отразится и на меше.


Повторите операцию добавления для Static Mesh.


Выделите Static Mesh и перейдите во вкладку деталей для отображения банана. Откройте выпадающий список правее Static Mesh и выберите банановую модель.


Переместите банан в правильную позицию с помощью соответствующего манипулятора, который вызывается клавишей W.

Знакомимся с узлами Blueprint

Без них стол не будет вращаться.

Узлы Blueprint отличаются от собратьев особенными точками под названием Execution. Слева – входы, а справа – выходы. У каждого узла как минимум одна точка.

Без соединения входной точки узел не выполняется. Отсутствие подключения узла отключает идущие после него.


Соединение входных точек у Node A и Node B говорит, что узлы выполняются. В Node C подключения нет, а, значит, он и Node D не сработают.

Поворачиваем вращающийся стол

На панели компонентов обратите внимание, что перед DefaultSceneRoot отсутствует отступ, в противоположность Static Mesh и Cylinder.


Из-за привязки к DefaultSceneRoot компоненты Static Mesh и Cylinder вращаются, масштабируются и меняют положение вместе.

Создаём узел

Переключитесь на Event Graph для написания сценариев.

Для поворота стола нужен единственный узел. Вызовите меню щелчком правой кнопки мыши на пустом месте графика. Добавьте узел AddLocalRotation для DefaultSceneRoot, чтобы вращались все компоненты.

Нет такого узла? Снимите галочку с Context Sensitive справа сверху.


После добавления вход Target автоматически соединится с выбранным компонентом.

Для вращения установите значение 1.0 для Z на входе Delta Rotation. Чем выше показатель, тем быстрее поворачивается стол вокруг оси Z.


Для непрерывного вращения стола понадобится узел Event Tick, чтобы AddLocalRotation выполнялся в каждом кадре. Если узел не появился на графике, то создайте его уже знакомым методом.

Захватите выходную точку узла Event Tick и соедините со входом AddLocalRotation.

Это упрощённый подход, и вращение будет зависеть от скорости смены кадров, поэтому замедлится на некоторых компьютерах.

Обновите Blueprint, нажав Compile на панели Toolbar, и закройте этот редактор.


Добавляем Blueprints в уровень

Сначала удалите банановую модель: во Viewport выделите модель и кликните Edit/Delete или нажмите Delete на клавиатуре.

Аналогично добавлению меша удерживайте левую кнопку мыши на файле и перетаскивайте Blueprint во Viewport.

Нажмите Play в Toolbar и насладитесь результатами труда!

Выскочила ошибка о смене освещения? Значит, забыли удалить первоначальную модель объекта. Удалите, и будет вам счастье. Или скачайте проект.

Читайте также: