XGRIDSДокументация
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Lixel CyberColor

    • Руководство пользователя LCC Studio

      • Начало работы
      • Версия и обновления
      • Загрузка и установка
      • Обзор интерфейса и навигация
      • Перед реконструкцией
      • Реконструкция модели
      • Реконструкция одиночной модели
      • Объединение карт
      • Воздушно-наземное объединение
      • Воздушная реконструкция
      • Мои модели
      • Другие функции
      • Настройки и учётная запись
      • Конвертер
      • Реконструкция по видео
      • Часто задаваемые вопросы
    • LCC Scene Editor

      • Версия и обновления
      • Учётная запись и вход
      • Обзор продукта и главная страница
      • Интерфейс редактора
      • Режимы навигации по сцене
      • Файл
      • Настройки
      • Операции редактирования
      • Окно
      • Глобальная панель инструментов
      • Ресурсы и свойства
      • Левая панель инструментов
      • Точки обзора
      • Портал
      • Skybox
      • Аннотации
      • Измерение
      • Flythrough
      • Отчёт по сцене
      • 3D Layout
      • Мини-карта
      • Preview Mode (Viewer)
      • Справка
      • Часто задаваемые вопросы
      • Точка появления
    • LCC Model Editor

      • Версия и обновления
      • Руководство пользователя
      • Обзор и интерфейс
      • Операции с файлами
      • Инструменты выбора
      • Редактирование моделей
      • Измерение
      • Цветокоррекция
      • Управление ресурсами
      • Настройки и справка
      • Часто задаваемые вопросы
  • Plugin & SDK

    • Unreal

      • Введение
      • Быстрый старт — Windows
      • Быстрый старт — Linux
      • Быстрый старт — Quest3
      • Редакции и лицензирование
      • Рендеринг
      • Растеризация Tiled (экспериментально)
      • Визуальные настройки
      • Нормали и освещение
      • Редактирование сцены
      • Параметры производительности
      • Руководство по оптимизации производительности
      • Интеграция со сторонними и движковыми плагинами
      • Прокси-меш
      • Анимация загрузки
      • Коллизии
      • Поддержка системы навигации
      • Поддержка однослойной воды
      • Локализация
      • Частые вопросы
      • Устранение неполадок
      • Журналы и диагностика
      • Свяжитесь с нами
      • Рекомендуемые практики

        • Переосвещение 3DGS с помощью меша LixelStudio
      • Справочник API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Журнал изменений

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

Рендеринг сцены 3DGS на Linux

Этот документ начинается с установки Unreal Engine и описывает, как установить LCC4Unreal, создать проект C++, загрузить данные LCC, скомпилировать, запустить и упаковать приложение для Linux.

1. Рекомендуемое аппаратное и программное окружение

ПараметрРекомендуется
Операционная системаUbuntu 22.04
CPUIntel/AMD, четыре ядра 2,5 ГГц или выше; для сборки из исходного кода рекомендуется больше ядер
Память32 ГБ; для сборки из исходного кода рекомендуется 64 ГБ и больше
ВидеокартаNVIDIA GeForce RTX 2080 или более производительная дискретная карта
Видеопамять8 ГБ и больше
IDEVS Code или Rider
Диск300 ГБ и больше

2. Выбор способа установки Unreal Engine

На Linux доступны два способа установки Unreal Engine:

СпособОсобенностиКому подходит
Готовая сборка (Installed Build)Готова к работе сразу после скачивания и полного распаковывания; создание проекта C++ прощеПредпочтительно для начинающих
Сборка из исходного кодаМожно изменять исходный код движка; первая сборка занимает много времениРазработчикам, которым нужно изменять движок или внутренности плагина

Выбирайте готовую сборку, если нужен только LCC4Unreal и исходный код Unreal Engine изменять не требуется.

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


2.1 Способ A: установка готовой сборки Unreal Engine для Linux (рекомендуется)

  1. Откройте официальную страницу Epic Unreal Engine for Linux;

  2. Войдите с учётной записью Epic Games;

  3. Скачайте архив .zip нужной версии Unreal Engine.

    Загрузка готовой сборки Unreal Engine для Linux со страницы Epic Games

    Выберите и скачайте нужный готовый пакет Unreal Engine для Linux на официальной странице Epic Games

  4. Создайте каталог движка в файловом менеджере, например:

    /home/[USER]/Unreal/Engines/UnrealEngine
    
  5. Распакуйте все файлы и каталоги из архива в этот корневой каталог движка. Не копируйте только один файл UnrealEditor, иначе движку будет не хватать остального содержимого, необходимого для запуска и сборки;

  6. Перейдите в корневой каталог движка в файловом менеджере, щёлкните правой кнопкой по пустому месту и выберите Open in Terminal. Последующие команды нужно выполнять именно в корректном каталоге движка.

    Открытие терминала Linux в корневом каталоге Unreal Engine

    Перейдите в полностью распакованный корневой каталог Unreal Engine и откройте терминал из него

  7. Запустите редактор Unreal Engine.

Общий вид:

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor"

Если сообщается об отсутствии права на выполнение:

chmod +x "/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor"
Пример:
chmod +x "/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor"

2.1.1 Подготовка тулчейна для разработки на C++

Следуя краткому руководству Epic Games по разработке на Linux, выполните в каталоге Unreal Engine:

cd "/[UE_ROOT]/Engine/Build/BatchFiles/Linux"
./SetupToolchain.sh
Пример:
cd "/home/alice/Unreal/Engines/UnrealEngine/Engine/Build/BatchFiles/Linux"
./SetupToolchain.sh

2.2 Способ B: сборка Unreal Engine из исходного кода

Если сборка Unreal Engine из исходного кода уже работает, переходите к разделу 4.

2.2.1 Получение исходного кода

Получите его на GitHub: https://github.com/EpicGames/UnrealEngine

Получение исходного кода Unreal Engine из репозитория Epic Games на GitHub

Перейдите в репозиторий Unreal Engine компании Epic Games на GitHub и получите исходный код нужной версии

2.2.2 Загрузка зависимостей и нативного тулчейна

cd "/[UE_ROOT]"
./Setup.sh
Пример:
cd "/home/alice/Unreal/Engines/UnrealEngine"
./Setup.sh
Запуск Setup.sh для загрузки зависимостей исходного кода Unreal Engine и тулчейна Linux

С помощью Setup.sh скачайте зависимости, необходимые для сборки из исходного кода, и нативный тулчейн Linux

Критерии успеха:

  • Команда корректно завершается;
  • Нет сообщений fatal и необработанных ошибок загрузки;
  • Соответствующий тулчейн Unreal Engine присутствует в Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux.

Если появляется следующее:

fatal: not a git repository

значит, есть проблема с источником исходного кода, текущим каталогом или метаданными Git. Не игнорируйте это и не продолжайте компиляцию. Сначала убедитесь, что текущий терминал находится в корректном корневом каталоге Unreal Engine.

2.2.3 Генерация файлов проекта

cd "/[UE_ROOT]"
./GenerateProjectFiles.sh
Пример:
cd "/home/alice/Unreal/Engines/UnrealEngine"
./GenerateProjectFiles.sh
Запуск GenerateProjectFiles.sh для генерации файлов проекта Unreal Engine и Makefile

Сгенерируйте файлы проекта и Makefile для Linux для исходного кода Unreal Engine

2.2.4 Компиляция UnrealEditor

Ограничьте количество параллельных задач при первой сборке, чтобы не исчерпать память. По умолчанию подходит make -j4 UnrealEditor; при 32 ГБ памяти используйте make -j2 UnrealEditor; если Makefile движка не предоставляет отдельную цель, используйте make -j4:

cd "/[UE_ROOT]"
make -j4 UnrealEditor

# Use this with only 32 GB of memory:
make -j2 UnrealEditor

# Use this when the Makefile provides no separate target:
make -j4
Компиляция цели UnrealEditor из исходного кода с помощью make

Ограничьте количество параллельных задач и скомпилируйте UnrealEditor из исходного кода

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

Проверка успеха:

test -x "/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor" \
  && echo "Source build UnrealEditor is ready" \
  || echo "Build not finished"
Пример:
test -x "/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor" \
  && echo "Source build UnrealEditor is ready" \
  || echo "Build not finished"

Запуск браузера проектов:

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor"
Запуск собранного из исходного кода UnrealEditor и открытие Unreal Project Browser

Запустите Unreal Project Browser после компиляции UnrealEditor из исходного кода


3. Установка и настройка VS Code

3.1 Установка VS Code и инструментов разработки на C++

На Ubuntu скачайте и установите с официального сайта Visual Studio Code либо используйте пакетный способ, поддерживаемый дистрибутивом.

Перед компиляцией проектов C++ в VS Code завершите установку тулчейна Unreal Engine для Linux из раздела 2 и подготовьте базовые инструменты компиляции и отладки C++. Установите стандартные инструменты, такие как build-essential, clang, lldb и cmake, в соответствии с версией Ubuntu и окружением команды; фактическая версия компилятора определяется требованиями текущей версии Unreal Engine и тулчейном, установленным сценариями SetupToolchain.sh/Setup.sh.

Рекомендуются следующие расширения VS Code:

  • C/C++: навигация по коду, автодополнение и отладка;
  • C/C++ Extension Pack: дополнительные стандартные возможности разработки на C++;
  • CodeLLDB: отладка через LLDB на Linux;
  • Makefile Tools: просмотр и запуск целей Makefile (необязательно).

В качестве справки можно использовать официальную документацию Epic Games: Setting up VS Code for Unreal Engine.

3.2 Генерация и открытие рабочей области VS Code

После создания проекта C++ каталог проекта обычно содержит .vscode/ и <ProjectName>.code-workspace. Если их нет, выполните:

"/[UE_ROOT]/GenerateProjectFiles.sh" \
  -vscode \
  -project="/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject" \
  -game \
  -engine

В VS Code выберите File → Open Workspace from File... и откройте <ProjectName>.code-workspace. Не открывайте только один файл .cpp.

Открытие code-workspace проекта Unreal Engine в VS Code

Откройте сгенерированный .code-workspace, чтобы загрузить конфигурацию проекта C++ для Unreal Engine

4. Создание проекта C++

4.1 Запуск Unreal Engine

Выполните в терминале:

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor"

4.2 Настройки в браузере проектов

В Unreal Project Browser:

  1. Выберите Games;

  2. Выберите Blank;

  3. В Project Defaults задайте C++;

  4. В Target Platform задайте Desktop;

  5. В Quality Preset для первой проверки выберите Scalable, а на производительной рабочей станции — Maximum;

  6. Выберите Starter Content по необходимости;

  7. Укажите расположение проекта:

    /home/[USER]/Unreal/Projects
    
  8. Укажите имя проекта:

    [PROJECT_NAME]
    
  9. Нажмите Create.

Выбор Games и шаблона Blank C++ в Unreal Project Browser

Выберите шаблон Blank в категории Games и задайте тип проекта C++

Указание каталога сохранения и имени проекта C++ для Unreal Engine

Задайте расположение проекта, имя и параметры платформы, затем создайте проект C++

В имени и пути проекта используйте только:

  • латинские буквы;
  • цифры;
  • символы подчёркивания.

Не используйте иероглифы, пробелы, &, скобки и другие специальные символы.

4.3 Здесь готовая сборка и сборка из исходного кода ведут себя по-разному

Случай A: готовая сборка (Installed Build)

Обычный порядок такой:

create project → auto-compile <ProjectName>Editor → open VS Code → open the new project editor

Старое окно браузера проектов на короткое время закрывается, потому что Unreal Engine запускает процесс редактора, загружающий новый .uproject.

Случай B: сборка из исходного кода

Обычный порядок такой:

create project → generate Source/, Makefile, .vscode/ → close project browser → open VS Code

Собранный из исходного кода Unreal Engine может не собирать и не открывать новый проект автоматически, ожидая, что разработчик сначала скомпилирует его в IDE или терминале. Это не ошибка конфигурации VS Code и не означает, что создание проекта не удалось.

На этом этапе проект обычно содержит только:

.vscode/
Config/
Content/
Intermediate/
Saved/
Source/
Makefile
[PROJECT_NAME].code-workspace
[PROJECT_NAME].uproject

Ещё отсутствует:

Binaries/Linux/

Это означает, что модули проекта не скомпилированы.

5. Первая компиляция без плагина

Скомпилируйте пустой проект один раз без установленного LCC4Unreal, чтобы убедиться в работоспособности Unreal Engine, тулчейна и самого проекта.

5.1 Компиляция в VS Code (рекомендуется)

  1. Сгенерируйте и откройте <ProjectName>.code-workspace, как описано в разделе 3.2;
  2. Откройте Run and Debug на боковой панели VS Code;
  3. Выберите <ProjectName>Editor (Development) в списке конфигураций сверху;
  4. Нажмите кнопку запуска, чтобы выполнить первую компиляцию;
  5. Дождитесь окончания сборки и убедитесь, что нет ошибок компиляции C++. Длительная первая сборка — это нормально.
Компиляция конфигурации Editor Development проекта в Run and Debug VS Code

Выберите конфигурацию <ProjectName>Editor (Development) и выполните первую компиляцию C++ для проекта

После успешной сборки VS Code может запустить редактор проекта напрямую.

5.2 Необязательно: использование Makefile проекта

cd "/[UE_PROJECTS_DIR]/[PROJECT_NAME]"
make "[PROJECT_NAME]Editor"
Пример:
cd "/home/alice/Unreal/Projects/Test2"
make "Test2Editor"
Компиляция цели Editor через Makefile проекта в терминале Linux

Скомпилируйте цель <ProjectName>Editor через Makefile проекта

5.3 Открытие проекта после успешной компиляции

Графический способ: найдите <ProjectName>.uproject в файловом менеджере, щёлкните по нему правой кнопкой и выберите Open With Unreal Engine Editor. Этот способ подходит, если система уже корректно связана с нужной версией Unreal Engine.

Открытие uproject через контекстное меню в файловом менеджере Linux

Щёлкните правой кнопкой по файлу .uproject проекта и выберите открытие в Unreal Engine Editor

Способ из командной строки: укажите полные пути и к UnrealEditor, и к .uproject. Это более надёжный способ открыть проект, когда установлено несколько версий Unreal Engine:

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor" "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor" "/home/alice/Unreal/Projects/Test2/Test2.uproject"

Когда проект откроется в редакторе, закройте редактор и переходите к установке плагина.

Unreal Engine открывает указанный проект C++

Загрузите проект указанной версией Unreal Engine

Проект C++ успешно открыт в основном интерфейсе редактора Unreal Engine

Пустой проект C++ успешно компилируется и открывается в редакторе Unreal Engine

6. Установка LCC4Unreal

Версия плагина для Linux сейчас недоступна для скачивания на платформе разработчика, её нужно запросить по электронной почте. Отправьте запрос на sdk@xgrids.com по следующему шаблону:

  • Название компании:
  • Сценарий использования: для чего планируется использовать плагин
  • Версия движка: какая версия Unreal Engine нужна
  • Откуда вы о нас узнали: где вы узнали о плагине

6.1 Закройте связанные программы

Перед копированием плагина:

  1. Сохраните проект;
  2. Закройте редактор Unreal Engine;
  3. Дождитесь завершения фонового процесса UnrealEditor;
  4. VS Code может оставаться открытым, но не собирайте проект одновременно.

Проверка, работает ли ещё UnrealEditor:

pgrep -a UnrealEditor

Отсутствие вывода означает, что редактор завершил работу.

6.2 Скопируйте плагин в проект целиком

  1. Создайте каталог Plugins в корне проекта:

    mkdir -p "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/Plugins"
    
    Пример:
    mkdir -p "/home/alice/Unreal/Projects/Test2/Plugins"
    
  2. Распакуйте скачанный пакет плагина и скопируйте в проект папку LCC4Unreal полностью. Итоговый каталог должен быть таким:

    [PROJECT_ROOT]/Plugins/LCC4Unreal/
    

    Не копируйте только Binaries, Content или отдельные файлы и не создавайте дублирующий вложенный каталог вида Plugins/LCC4Unreal/LCC4Unreal/.

  3. Убедитесь, что файл описания плагина на месте. Каталог должен содержать:

    [PROJECT_ROOT]/Plugins/LCC4Unreal/LCC4Unreal.uplugin
    

    Если имя файла .uplugin в разных пакетах выпуска отличается, убедитесь, что он лежит непосредственно в Plugins/LCC4Unreal/, а не уровнем глубже.

Копирование полной папки плагина LCC4Unreal в каталог Plugins проекта

Скопируйте папку LCC4Unreal целиком в [PROJECT_ROOT]/Plugins/LCC4Unreal и проверьте файл .uplugin

6.3 Перезапустите проект

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor" "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor" "/home/alice/Unreal/Projects/Test2/Test2.uproject"

Эта команда задаёт и используемый Unreal Engine, и открываемый проект. Когда установлено несколько версий Unreal Engine, она надёжнее двойного щелчка по .uproject и не требует регистрировать одну версию как глобальную по умолчанию.

6.4 Что делать при запросе пересборки

Запрос выглядит так:

The following modules are missing or built with a different engine version.
Would you like to rebuild them now?

Он означает, что динамические библиотеки проекта отсутствуют или не соответствуют текущей версии Unreal Engine.

  • Выберите Yes/Rebuild, если полный корневой путь Unreal Engine в команде точно верный;
  • Быстрое завершение и нормальное открытие редактора говорят об инкрементальной сборке модулей проекта;
  • Если запрос появляется каждый раз, проверьте, не используется ли каждый раз другой движок, доступен ли Binaries/Linux для записи и корректно ли системное время;
  • В окружении с несколькими движками сначала откажитесь от запроса, а затем соберите проект явно командой Build.sh из раздела 13.

7. Выбор подходящего Actor для формата данных

Разные форматы данных требуют соответствующего Actor:

Формат данныхЧто искать в Unreal EngineИмя класса C++
.lcc2LCC2ActorALCC2Actor
.lccLCC ActorALCCActor
.sogSogActorASogActor
.spzSpzActorASpzActor
.plyPlyActorAPlyActor

В шагах ниже в качестве примера используются данные .lcc2 и LCC2Actor. Для других форматов берите соответствующий Actor из таблицы.

7.1 Добавьте LCC2Actor и загрузите данные

  1. Нажмите добавление LCC2Actor в панели LCC4Unreal.

    Добавление LCC2Actor в сцену через панель LCC4Unreal

    Добавьте LCC2Actor в панели LCC4Unreal, чтобы он соответствовал формату данных .lcc2

  2. Выберите LCC2Actor в World Outliner;

  3. Найдите Actions в панели Details;

  4. Нажмите Load;

  5. Выберите файл данных .lcc2.

    Выбор и загрузка данных lcc2 в панели Actions у LCC2Actor

    Загрузите файл данных .lcc2 из панели Details у LCC2Actor

  6. Дождитесь окончания загрузки данных.

    Данные lcc2 успешно загружены и отображаются в сцене Unreal Engine

    Данные .lcc2 появляются во вьюпорте Unreal Engine после завершения загрузки

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

8. Включение данных LCC, не являющихся ассетами, в упаковку

Файлы .lcc2, .lcc, .sog, .spz и .ply обычно не являются файлами .uasset для Unreal Engine. Простое размещение файлов в Content не включает их в установочный пакет.

Рекомендуемый каталог:

/[UE_PROJECTS_DIR]/[PROJECT_NAME]/Content/LCCData/

Откройте:

Edit → Project Settings → Packaging

Найдите:

Additional Non-Asset Directories To Copy

Добавьте:

LCCData

В разделе Packaging доступны две настройки каталогов данных, не являющихся ассетами:

НастройкаФорма данныхСценарий применения
Additional Non-Asset Directories To CopyКопируются в выходной пакет как обычные файлыДанные остаются видимыми и заменяемыми в выходном каталоге
Additional Non-Asset Directories To PackageУпаковываются в файл pakДанные поставляются внутри pak, а не отдельными файлами

Примечание: оба варианта поддерживают полный набор возможностей. В более ранних версиях модели PLY и данные коллизий не загружались при упаковке в файл pak через Additional Non-Asset Directories To Package; эта проблема исправлена.

Указывать нужно имя каталога верхнего уровня внутри Content (например, LCCData), а не путь к файлу. Не добавляйте префикс Content/ и не указывайте конкретные имена файлов.

Добавление LCCData в Additional Non-Asset Directories To Copy в разделе Packaging

Настройте Content/LCCData как каталог данных, не являющихся ассетами, копируемый при упаковке

Затем убедитесь, что относительный путь, загружаемый LCC Actor или LCC2Actor, соответствует упакованному каталогу.

8.1 Задайте стартовую карту

Откройте:

Edit → Project Settings → Maps & Modes

В разделе Default Maps задайте в Game Default Map нужный уровень, который содержит LCC Actor/LCC2Actor и настроенный путь к данным. После этого сохраните уровень и конфигурацию проекта, чтобы упакованное приложение не запускалось с пустой картой.

Настройка Game Default Map проекта Unreal Engine в Maps and Modes

Задайте Game Default Map, используемую при запуске упакованного приложения, в разделе Default Maps в Maps & Modes

9. Проверочный список перед упаковкой

Перед упаковкой убедитесь в каждом пункте:

  • [ ] Используется корректная версия Unreal Engine;
  • [ ] Пакет плагина LCC4Unreal соответствует версии Unreal Engine и архитектуре Linux;
  • [ ] <ProjectName>Editor Linux Development успешно компилируется;
  • [ ] Плагин включён;
  • [ ] Лицензия Pro действительна (требуется только при использовании возможностей редакции Pro, см. Редакции и лицензирование);
  • [ ] Данные LCC видны при Play в редакторе;
  • [ ] Задана Game Default Map;
  • [ ] Упаковываемые данные добавлены в Additional Non-Asset Directories To Copy;
  • [ ] На диске достаточно места;
  • [ ] Выходной каталог доступен для записи;
  • [ ] Все уровни и ассеты сохранены;
  • [ ] Сначала собран пакет Development, и только после успеха сделана попытка Shipping.

10. Упаковка для Linux через Project Launcher

10.1 Откройте Project Launcher

В редакторе Unreal Engine выберите:

Platforms → Project Launcher
Открытие Project Launcher из меню Platforms в Unreal Engine

Откройте Project Launcher из меню Platforms

Нажмите:

Add → Create Custom Profile
Создание пользовательского профиля запуска в Project Launcher

Создайте профиль упаковки для Linux через Add → Create Custom Profile

10.2 Настройте профиль

  1. В пользовательском профиле выберите Linux как целевую платформу и задайте схему упаковки контента Pak file;

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

    Выбор Linux и Pak и указание каталога архива в пользовательском профиле Project Launcher

    Задайте целевую платформу Linux, выберите Pak file, включите архивирование и укажите выходной каталог упаковки

  3. Нажмите значок запуска справа от пользовательского профиля.

Упаковка обычно включает:

Build → Cook → Stage → Package → Archive

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

BUILD SUCCESSFUL

10.3 Если постоянно отображается «Querying»

Проверьте следующее по порядку:

  1. Дождитесь окончания определения платформы и SDK в Unreal Engine;
  2. Откройте Window → Developer Tools → Output Log;
  3. Найдите Turnkey, SDK, Linux, Error;
  4. Убедитесь, что текущий хост — Linux и целевая платформа тоже Linux;
  5. Убедитесь, что зависимости и тулчейн для сборки Unreal Engine из исходного кода установлены сценарием Setup.sh;
  6. Убедитесь, что для готовой сборки был запущен SetupToolchain.sh;
  7. Закройте дублирующиеся окна Project Launcher и откройте его заново;
  8. Не собирайте тот же проект одновременно в другом терминале.

11. Упаковка из командной строки (необязательно)

Когда графическая упаковка работает стабильно, можно использовать RunUAT:

mkdir -p "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/Packaged"

"/[UE_ROOT]/Engine/Build/BatchFiles/RunUAT.sh" BuildCookRun \
  -project="/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject" \
  -noP4 \
  -targetplatform=Linux \
  -clientconfig=Development \
  -build \
  -cook \
  -stage \
  -pak \
  -archive \
  -archivedirectory="/[UE_PROJECTS_DIR]/[PROJECT_NAME]/Packaged"
Пример:
mkdir -p "/home/alice/Unreal/Projects/Test2/Packaged"

"/home/alice/Unreal/Engines/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh" BuildCookRun \
  -project="/home/alice/Unreal/Projects/Test2/Test2.uproject" \
  -noP4 \
  -targetplatform=Linux \
  -clientconfig=Development \
  -build \
  -cook \
  -stage \
  -pak \
  -archive \
  -archivedirectory="/home/alice/Unreal/Projects/Test2/Packaged"

При использовании -archive и -archivedirectory ищите итоговую запускаемую версию в указанном каталоге архива, а не предполагайте, что она лежит в Saved/StagedBuilds/Linux.

Если проект использует конкретные карты, добавьте ограничения по картам согласно настройкам проекта и параметрам команд текущей версии Unreal Engine. Начинающим лучше сначала пользоваться Project Launcher, чтобы не получить неполный пакет из-за пропущенных параметров команды.

12. Запуск результата упаковки

12.1 Запуск заархивированного результата

Если в Project Launcher было включено архивирование или для RunUAT использовались -archive -archivedirectory="...", перейдите в фактически настроенный каталог архива. Разные версии Unreal Engine могут создавать там дополнительный подкаталог Linux, поэтому сначала найдите сценарий запуска проекта, а затем запустите его:

cd "/[ARCHIVE_DIR]"
find . -maxdepth 3 -type f -name "*.sh" -print

chmod +x "./[SUBDIR]/[PROJECT_NAME].sh"
"./[SUBDIR]/[PROJECT_NAME].sh"
Пример (заархивированный результат в Packaged/Linux):
cd "/home/alice/Unreal/Projects/Test2/Packaged"
find . -maxdepth 3 -type f -name "*.sh" -print
chmod +x "./Linux/Test2.sh"
"./Linux/Test2.sh"
Просмотр и запуск заархивированного результата упаковки в файловом менеджере Linux

Перейдите в каталог архива, настроенный в Project Launcher или RunUAT, и запустите сценарий проекта

12.2 Запуск незаархивированного результата stage

Запускайте из следующего каталога только тогда, когда архивирование не выполнялось и результат stage нужно проверить напрямую:

cd "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/Saved/StagedBuilds/Linux"
chmod +x "./[PROJECT_NAME].sh"
"./[PROJECT_NAME].sh"
Пример:
cd "/home/alice/Unreal/Projects/Test2/Saved/StagedBuilds/Linux"
chmod +x "./Test2.sh"
"./Test2.sh"

Проверьте после запуска:

  • Приложение запускается;
  • Карта по умолчанию правильная;
  • Данные LCC видны;
  • После закрытия приложения не остаётся зависших процессов.
Запуск упакованного приложения Linux с загруженной сценой LCC

Запустите упакованное приложение Linux и проверьте карту по умолчанию, данные LCC и лицензированные возможности

13. Справочник команд

Значения [UE_ROOT], [UE_PROJECTS_DIR], [PROJECT_NAME] и [ARCHIVE_DIR] в командах ниже — это заполнители. Замените их на фактические полные пути и имена перед запуском.

Запуск браузера проектов:

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor"

Генерация файлов проекта для VS Code:

"/[UE_ROOT]/GenerateProjectFiles.sh" \
  -vscode \
  -project="/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject" \
  -game \
  -engine
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/GenerateProjectFiles.sh" \
  -vscode \
  -project="/home/alice/Unreal/Projects/Test2/Test2.uproject" \
  -game \
  -engine

Компиляция цели Editor проекта:

"/[UE_ROOT]/Engine/Build/BatchFiles/Linux/Build.sh" \
  "[PROJECT_NAME]Editor" Linux Development \
  -Project="/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject" \
  -WaitMutex
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh" \
  "Test2Editor" Linux Development \
  -Project="/home/alice/Unreal/Projects/Test2/Test2.uproject" \
  -WaitMutex

Открытие конкретного проекта конкретной версией Unreal Engine:

"/[UE_ROOT]/Engine/Binaries/Linux/UnrealEditor" "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/[PROJECT_NAME].uproject"
Пример:
"/home/alice/Unreal/Engines/UnrealEngine/Engine/Binaries/Linux/UnrealEditor" "/home/alice/Unreal/Projects/Test2/Test2.uproject"

Запуск заархивированного результата:

cd "/[ARCHIVE_DIR]"
find . -maxdepth 3 -type f -name "*.sh" -print
chmod +x "./[SUBDIR]/[PROJECT_NAME].sh"
"./[SUBDIR]/[PROJECT_NAME].sh"

Запуск незаархивированного результата stage:

cd "/[UE_PROJECTS_DIR]/[PROJECT_NAME]/Saved/StagedBuilds/Linux"
chmod +x "./[PROJECT_NAME].sh"
"./[PROJECT_NAME].sh"
Пример (незаархивированный результат stage):
cd "/home/alice/Unreal/Projects/Test2/Saved/StagedBuilds/Linux"
chmod +x "./Test2.sh"
"./Test2.sh"
Назад
Быстрый старт — Windows
Далее
Быстрый старт — Quest3