Быстрый переход на UNIGINE с Unreal Engine 4: первые шаги

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

Если вы планируете переходить с иностранного софта на отечественный и ищете полноценный аналог Unreal Engine 4, то одним из вариантов может стать продукция нашей компании, полностью готовая к импортозамещению. UNIGINE использует общепринятые интерфейсы и рабочие процессы, которые могут быть вам знакомы по работе с другими 3D-инструментами. По опыту наших клиентов, для перехода на UNIGINE с других платформ уходит не более 1–2 недель.

Далее в статье рассмотрим базовую информацию по переходу на UNIGINE с Unreal Engine 4.

Основные термины

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

Категория

UE4

UNIGINE

Управление проектами и SDK

Epic Games Launcher

SDK Browser

Интерфейс редактора

World Outliner

Окно World Nodes

Details Panel

Окно Parameters

Content Browser

Окно Asset Browser

Viewport

Editor Viewport

Сцена

Level

World

Компоненты геймплея

Actor, Pawn

Node

Blueprint Class

NodeReference + Component System

Меши

Static Mesh

Static Mesh, Dynamic Mesh

Skeletal Mesh

Skinned Mesh

Эффекты

Effect, Particle, Cascade

Particle System

Post Process Materials

Скриптовые материалы

Auto Exposure, Bloom, Depth of Field, Lens Flare

Camera Effects

Anti-Aliasing

Anti-Aliasing (TAA, FXAA, SRAA, Supersampling)

Color Grading, Tone Mapping

Цветокоррекция

Экстерьеры

Terrain

Landscape Terrain / Global Terrain

Foliage

Mesh Clutter

Grass

Volumetric Clouds

Volumetric Clouds

Water Meshing System

Система симуляции воды

Освещение

Lights

Источники света

Lightmass

Lightmaps

Light Propagation Volumes

GI на основе вокселей

Sphere Reflection Capture

Environment Probe

Screen Space Global Illumination

Screen-Space Ray-Traced Global Illumination

Графический интерфейс

UMG (Unreal Motion Graphics)

GUI

Материалы

Material Editor

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

Material

Базовый материал

Material Instance

Пользовательский материал

Программирование

C++

C++ / C#

Blueprint

UnigineScript

Физика

Line Trace

getIntersection

Primitive Component

Rigid Body

Collision

Shape

Physics Constraint

Joint

Анимация

Sequencer

Tracker

Управление проектами

Пользователи Unreal Engine 4 используют Epic Games Launcher — приложение, которое упрощает поиск, загрузку и управление вашими проектами и установками. Кроме того, можно управлять своими проектами напрямую через Unreal Editor: создавать новый проект и переключаться между существующими.

В UNIGINE для этих целей служит UNIGINE SDK Browser. Помимо управления проектами и установленными SDK, браузер SDK предоставляет доступ к примерам (Samples), базе знаний (Knowledge) и дополнениям (Add-Ons). В последнюю категорию входят различные 3D-модели и материалы, в том числе растительность, спецэффекты, погодные эффекты и другое.

Также заметным отличием UNIGINE является возможность создания нового (или редактирование старого) проекта с поддержкой одного из нескольких языков программирования: C++, C# и UnigineScript. Для пользователей Unreal Engine 4 рекомендуется использовать C++. Также возможно использование нескольких языков программирования в одном проекте.

Как создать новый проект на C++ в SDK Browser

  1. Нажмите Create New в разделе My Projects.

  2. Выберите тип проекта C++ (Visual Studio 2015+) в поле API + IDE.

  3. Если требуется поддержка VR-гарнитур, выберите шаблон проекта VR (поле Template). Это активирует необходимые плагины и добавит нужный контент (больше о поддержке VR-устройств здесь).

  4. Нажмите Create New Project.

  5. После завершения загрузки нажмите Open Editor, чтобы запустить UNIGINE Editor; нажмите Open Code IDE, чтобы открыть исходный код проекта через IDE по умолчанию.

Интерфейс редактора

Элементы интерфейсов Unreal Editor и UNIGINE Editor близки по функционалу: на схеме ниже они окрашены в похожие цвета. Расположение элементов UNIGINE Editor можно настраивать, перетаскивая и изменяя их размер. В UNIGINE по умолчанию используется темная тема.

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

  • World Hierarchy Window. Инструмент для работы с иерархией нод. Позволяет организовывать ноды в иерархию, а также добавлять, удалять, клонировать и переименовывать их.

  • Editor Viewport. Просмотр трехмерной сцены. Позволяет визуально перемещаться и редактировать виртуальный мир.

  • Parameters Window. Окно параметров выбранного элемента виртуального мира. Позволяет просматривать и изменять параметры нод, материалов, свойств и ассетов.

  • Asset Browser Window. Инструмент для организации контента в проекте: создания, импорта, просмотра, переименования ассетов, а также перемещения и управления их иерархией.

Просмотр сцены

Окна просмотра виртуальной сцены (вьюпорты) в Unreal Editor и UnigineEditor также очень похожи — это непосредственно само окно просмотра и панель инструментов. Можно использовать несколько вьюпортов.

Unreal Editor Viewport
Unreal Editor Viewport
UNIGINE Editor Viewport
UNIGINE Editor Viewport

По умолчанию у каждого Editor Viewport есть собственная камера, и вы можете переключаться между камерами в сцене и управлять выбранной аналогично управлению CameraActor в UE (Pilot Actor).

Интерфейс Editor Viewport

В видео есть русские субтитры

  • Camera Panel служит для переключения между камерами и настройки текущей камеры.

  • Rendering Debug Panel требуется для отображения содержимого буферов рендеринга так же, как при использовании Buffer Visualization Mode в редакторе Unreal Engine 4.

  • Navigation Panel используется для быстрой настройки и переключения между пресетами скорости камеры (клавиши 1, 2 и 3), а также для изменения положения камеры.

  • Панель Helpers обеспечивает быстрый доступ к вспомогательным визуализаторам, таким как иконки, каркасы и элементы контроля.

Навигация внутри Editor Viewport почти такая же, как и во вьюпорте Unreal Engine 4. Подробнее ознакомиться с навигацией по сцене можно, просмотрев видео ниже (либо прочитав соответствующий раздел в документации):

В видео есть русские субтитры

Режимы воспроизведения

В Unreal Editor есть режимы Play In Editor (PIE), запускающий игру в текущем окне Viewport, и Simulate In Editor (SIE) для предварительного просмотра Blueprint логики, анимации и физических симуляций.

В UNIGINE вы можете включить анимацию и симуляцию физики с помощью переключателей на верхней панели инструментов, аналогично режиму SIE в UE.

В C++ проектах доступен еще один тип вьюпорта в UNIGINE — Engine Viewport — дает предварительный просмотр сцены с возможностью управлять текущей камерой, если она установлена.


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

  • Через SDK Browser, нажав Run (или кнопку с троеточием для запуска с другими аргументами):

  • С помощью файлов запуска в папке проекта:

    • launch_debug — лаунчер отладочной версии проекта.

    • launch_release — лаунчер релизной версии проекта.

  • Запустив проект непосредственно из используемой IDE.

По умолчанию курсор мыши захватывается при щелчке во время выполнения, обеспечивая управление движением камеры, и освобождается нажатием Esc. Есть два способа настроить привязки ввода по умолчанию (состояния клавиш и поведение мыши):

  • В настройках управления.

  • Через код.

Консоль

Как в Unreal Engine 4, так и в UNIGINE есть окно консоли для стандартного ввода, вывода и регистрации ошибок. Также существует набор консольных команд, позволяющих совершать определенные операции.

Консоль доступна как в UNIGINE Editor, так и в работающем приложении. Чтобы открыть окно консоли в редакторе, перейдите в меню Windows -> Console:

Во время работы приложения встроенная консоль запускается нажатием кнопки «Тильда» (~).

В консоль можно выводить сообщения из кода.

Подготовка финального билда

Так же как и Unreal Engine 4 Editor, UNIGINE Editor позволяет выполнить подготовку финальной сборки проекта.

Проекты и файлы

Папки и файлы

Проект в UNIGINE, как и проект на Unreal Engine 4, хранится в отдельной папке, настройки проекта хранятся в файле с расширением *.project. В папке проекта есть различные подпапки с контентом и исходным кодом приложения. Также тут хранятся папки с файлами конфигурации и исполняемыми файлами. Основные папки для работы: data (контент) и source (исходный код).

Как и папка Content проекта на Unreal Engine 4, папка data хранит ресурсы вашего проекта. Для импорта ассетов достаточно поместить в нее нужные файлы — они автоматически импортируются и станут доступны в Asset Browser, также можно импортировать файлы перетаскиванием прямо в окно Asset Browser. Ассеты в UNIGINE Editor будут автоматически обновляться при внесении изменений в соответствующие файлы.

Соответствие содержимого папки data в корневой директории проекта и в Asset Browser

Папка core содержит стандартные встроенные ресурсы. Эти ассеты доступны только для чтения и доступны для каждого проекта по умолчанию.

Поддержка типов файлов

UNIGINE, как и UE, поддерживает наиболее часто используемые типы файлов и некоторые специфические:

Типы ассетов

Поддерживаемые форматы

Геометрия

.fbx, .obj, .3ds, .dae, .glb/.gltf, .stp/.step, .igs/.iges, .brep, .stl

Текстуры

.png, .jpeg, .tif, .tga, .rgba, .psd, .hdr, .dds, and more

Звук и видео

.wav, .mp3, .oga/.ogg, .ogv

Шрифты

.ttf

Перенос ассетов из Unreal Engine 4

  • Меши. Модели в формате FBX, использованные в UE, можно легко импортировать в UNIGINE, отметив необходимые параметры импорта. Важно иметь в виду, что основной единицей измерения в UNIGINE является 1 метр, а в Unreal Engine 4 используются сантиметры. Рекомендуется уменьшить масштаб геометрии в 100 раз, установив множитель геометрии Scale в значение 0,01 при импорте. Подробнее про импорт FBX-моделей читайте здесь.

  • Материалы. Подобно другим движкам, UNIGINE работает с PBR-материалами (Physically Based Materials) и поддерживает Metalness и Specular workflow. Материалы, созданные для моделей в UE, могут быть воссозданы в UNIGINE с использованием базового PBR-материала mesh_base или пользовательского материала, собранного в визуальном редакторе материалов.

  • Текстуры. Текстуры можно импортировать как прямо из FBX, так и отдельно. Но иногда может потребоваться предварительная подготовка. Например, текстура Shading для материала mesh_base должна хранить карты Metalness, Roughness, Specular и Microfiber в соответствующих каналах (RGBA). Поэтому сначала может понадобиться назначить карты в каналы в редакторе изображений, а затем импортировать ее в UNIGINE. Карты нормалей в UE и UNIGINE совместимы (DirectX-style), поэтому такие текстуры можно использовать без изменений.

  • Анимации. Если FBX содержит скелетную анимацию, ее также можно импортировать в UNIGINE. При импорте такой модели, включите опцию Import Animations (импорт анимаций) и настройте дополнительные параметры.

Подробнее про импорт разных ассетов читайте здесь.

Работа с уровнями (3D-сценами)

Концепция сцены в обоих движках одинакова. Однако Unreal Engine 4 и UNIGINE используют разные системы координат.

В Unreal Engine 4 начальный уровень проекта задается в настройках проекта (Project Settings -> Maps & Modes) для приложения и для редактора.

В UNIGINE стартовый мир для приложения можно указать несколькими способами:

  • в конфигурационном файле configs/default.boot, параметр starting_world;

  • в параметрах командной строки при запуске:

-console_command "world_load my_world"

  • при создании сборки проекта (File -> Create Build);

  • в исходном коде при помощи API класса World.

UnigineEditor также можно запустить с аргументами запуска, хотя зачастую достаточно просто включить Auto Open Last World в настройках редактора, благодаря чему редактор будет запускать последний использованный мир.

Объекты сцены

В этом разделе дается краткое описание основных объектов сцены в обоих движках, а также их основные сходства и различия.

UE4

UNIGINE

World Outliner   

Окно World Nodes

Базовый объект сцены — Actor.

Это базовый объект, который может быть помещен в мир или создан в нем.

Базовый тип, от которого наследуются все типы объектов сцены — Node.

Некоторые имеют визуальное представление: Objects, Decals и Effects. У каждого из них есть поверхности для представления своей геометрии (меши). Остальные — Light Sources, Players и др. — невидимы.

Важно. Все объекты, добавляемые в сцену, независимо от их типа, называются нодами.

Actors могут быть организованы в иерархию.

Ноды могут быть организованы в иерархию.

Actor — это контейнер для компонентов, определяющих его функциональность.

Базовая функциональность ноды определяется ее типом.

Дополнительные функции можно добавлять с помощью свойств и компонентной системы.

Положение Actor, вращение и масштаб хранятся в компоненте Scene Component. Обычно Actors имеют корневой компонент-подкласс Scene Component.

Программисты могут наследовать UActorComponent по умолчанию, чтобы создавать собственные компоненты с помощью C++ или Blueprint Script.

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

Программисты могут наследовать классы от ComponentBase, создавать собственные компоненты при помощи C++ и назначать компоненты на ноды.

Blueprint-классы

Рабочий процесс в UE основан на Blueprint-классах, представляющих собой сложносоставные акторы (или объекты другого типа) из нескольких компонентов, связанных скриптовой логикой.

В UNIGINE вы можете собрать иерархию из нод разного типа с нужными материалами и компонентами логики. Вы можете использовать ноды Dummy для группировки нескольких нод.

Чтобы создать несколько экземпляров составного объекта в вашем мире, сохраните иерархию как Node Reference, которую можно создавать, копировать и редактировать в UNIGINE Editor или во время выполнения столько раз, сколько необходимо.

Чтобы узнать больше о создании Node References и управлении ими, перейдите по ссылке ниже:

  • Создание экземпляров нод

  • Видеоруководство: создание экземпляров нод

Совместная работа над проектом

Unreal Editor предоставляет функцию Source Control из коробки. Кроме того, его рабочий процесс многопользовательского редактирования построен на модели сервер-клиент, поддерживая несколько сеансов в общей среде для совместной работы.

В UNIGINE все исходные форматы файлов по умолчанию являются текстовыми, поэтому вы можете использовать любую привычную систему контроля версий и объединять миры, ноды и другие ассеты. Файловую систему можно расширять с помощью Mount Points, которые позволяют добавлять в проект любые внешние ресурсы, находящиеся в совместном доступе. Кроме того, стандартный подход к работе над проектом заключается в разделении работы разных членов команды с помощью отдельных Node Layers. Это позволяет избежать необходимости разрешения конфликтов при слиянии изменений.

Подробнее про совместную работу над проектом читайте здесь.

Камеры

Камеры, основные средства рендеринга 3D сцены устроены немного по-разному в UE и UNIGINE.

В Unreal Engine 4 CameraComponent отвечает за захват вида и отправку его на рендеринг. Обычно вы устанавливаете актера Pawn с прикрепленным CameraComponent в качестве персонажа по умолчанию, указав его в настройках GameMode.

В UNIGINE камеры представлены в мире нодами типа Player . Для упрощения создания наиболее часто используемых камер, управляемых с помощью устройств ввода (клавиатура, мышь, джойстик), предусмотрено несколько типов Player с различным поведением:

  • Dummy — простая статическая камера, которую можно улучшить с помощью пользовательских доработок.

  • Spectator — камера свободного перемещения.

  • Persecutor — камера, которая следует за целевым объектом и может свободно вращаться вокруг него на заданном расстоянии. Это готовое решение для симуляции вида от третьего лица.

  • Actor — камера с твердым физическим телом капсульной формы, которая может взаимодействовать с окружением. Это готовое решение для симуляции вида от первого лица.

Одновременно Editor Viewport показывает вид только с одной камеры. Переключаться между камерами можно с помощью панели в углу вьюпорта:

Чтобы выбрать определенного плейера камерой по умолчанию, нужно включить опцию Main Player в его настройках. В запущенном приложении мир будет виден, только если в мире есть плейер с этим включенным флагом.

Настройки проекта

Настройка общих параметров проекта в Unreal Editor обычно выполняется через окно Project Settings. Аудио, рендеринг, физика, управление и другие настройки общие для всего проекта. Кроме того, панель World Settings содержит настройки для текущего уровня.

В UNIGINE общие настройки доступны в меню Windows -> Settings в разделе Runtime. Настройки World задаются для каждого мира отдельно.

Сохраненные конфигурации

Вы используете кнопки Export и Import в настройках проекта в Unreal Editor, чтобы сохранить значения настроек во внешний файл конфигурации (.ini) и загрузить их при необходимости.

UNIGINE позволяет сохранять пресеты настроек физики, звука и рендеринга в виде ассетов с расширениями *.physics, *.sound и *.render соответственно. Быстрое переключение между пресетами возможно в окне Settings.

По умолчанию в проекте доступны стандартные пресеты для нескольких уровней качества в папке data/template_render_settings.

В UNIGINE пресеты доступны не только в редакторе. При помощи классов Physics, Sound и Render можно переключиться между пресетами, например, для смены уровней качества визуализации в приложении.

Графика

В Unreal Engine 4 настройки качества графики в основном собраны в разделе Engine -> Rendering.

В UNIGINE настройки рендеринга мира можно найти в разделе Rendering окна Settings. Также есть возможность включать и выключать самые распространенные функции рендеринга с помощью соответствующего меню:

В UNIGINE нет платформо-зависимых настроек качества, поэтому для управления уровнями качества понадобится собственная логика. Для этой цели можно использовать пресеты рендеринга.

Отложенное и прямое затенение

По умолчанию Unreal Engine 4 использует Deferred Renderer. В некоторых случаях Forward Shading Renderer обеспечивает лучшую производительность.


UNIGINE имеет фиксированную последовательность рендеринга, представленную комбинацией отложенного рендеринга с методами прямого рендеринга:

  • Вся непрозрачная геометрия отрисовывается в отложенном проходе (Deferred).

  • Прозрачная геометрия отрисовывается во время прямого прохода (Forward).

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

Постобработка

Unreal Engine 4 использует PostProcessVolume для определения объемов, в которых параметры и эффекты постобработки локально (или глобально) переопределяются, параметры смешиваются с использованием линейной интерполяции. В UNIGINE понадобится собственная логика, если нужно плавно смешивать настройки в разных объемах.

В этом разделе перечислены все распространенные методы постобработки Unreal Engine 4, которые также могут быть реализованы в UNIGINE.

UE4

UNIGINE

Методы сглаживания:

FXAA

MSAA

TAA

Методы сглаживания:

Fast approximate anti-aliasing (FXAA)

Temporal anti-aliasing (TAA).

Subpixel Reconstruction Anti-Aliasing (SRAA).

Supersampling.   

Eye Adaptation (Auto-Exposure)

Эффекты камеры:   

Adaptive Exposure

Bloom

Tone mapping

White Balance

Lens Dirt

Lens Flares

Bloom

Filmic Tonemapper

White Balance

Dirt Mask

Lens Flare

Color Grading LUT (Lookup Texture)

Color Correction

Color Correction LUT

Depth of Field

Depth of Field

Post Process Materials

Postprocess Materials

Chromatic Aberration

Материал постобработки post_color_correction   

Film Grain

Screen Space Reflections

SSR

Screen-Space Ambient Occlusion

Screen-Space Ambient Occlusion

Screen Space Global Illumination

SSRTGI

Contact Shadows

Screen Space Shadows

Motion Blur

Motion Blur

Screen Percentage

Supersampling

* * *

На этом пока все. Напоминаем, что это — лишь первый, обобщенный выпуск из запланированных трех по миграции с Unreal Engine 4. Следующий выпуск будет более специализированным и расскажет про миграцию на UNIGINE с точки зрения 3D-художника. А в последнем разберем все важные моменты по этому вопросу для программистов.

Чтобы получить доступ к бесплатной версии UNIGINE 2 Community заполните форму на нашем сайте.

Все комплектации UNIGINE:

  • Community — базовая версия для любителей и независимых разработчиков. Достаточна для разработки видеоигр большинства популярных жанров (включая VR).

  • Engineering — расширенная, специализированная версия. Включает множество заготовок для инженерных задач.

  • Sim — максимальная версия платформы под масштабные проекты (размеров планеты и даже больше) с готовыми механизмами симуляции.

Подробнее о комплектациях и ценах

Источник: https://habr.com/ru/company/unigine/blog/667292/


Интересные статьи

Интересные статьи

В предыдущей статье мы поговорили про роль Data Engineer в Х5, какие задачи он решает и с каким технологическим стеком работает. Рассмотрели структуру собеседования, основные направления, по которым м...
Если мы хотим передать данные из Django в JavaScript, мы обычно говорим об API, сериализаторах, вызовах JSON и AJAX. Обычно дело усложняется наличием React или Angular на...
Rust становится первоклассным языком в самых разных областях. Мы в Discord успешно используем его и на серверной, и на клиентской стороне. Например, на стороне клиента в конвейере кодирования...
Little Game Engine (LGE) – это виртуальная игровая консоль выдуманной конфигурации, с выдуманным процессором и онлайн web-SDK, состоящий из компилятора С-подобного кода в ассемблер и дальнейшей п...
Давайте поговорим про проектирование переходных отверстий — для серьёзной электроники их качество очень важно. В начале статьи я осветил факторы, влияющие на целостность сигнала, а потом показал ...