Pull to refresh
0
UNIGINE
3D-движок. Игры, симуляторы, GPU бенчмарки, VR.

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

Reading time 13 min
Views 9.1K

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

Статья ранее публиковалась в нашем блоге на DTF.

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

Одна из таких платформ — платформа разработки в реальном времени Unity. Далее в статье рассмотрим базовую информацию по переходу на UNIGINE.

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

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

Категория

Unity

UNIGINE

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

Hub

SDK Browser

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

Hierarchy Panel 

Окно World Nodes

Inspector

Окно Parameters

Project Browser 

Окно Asset Browser

Scene View

Editor Viewport

Сцена

Scene

World

Типы геймплея

Component

Component System

GameObject 

Node

Prefab

NodeReference

Меши

Mesh Renderer

Static Mesh

Dynamic Mesh

Skinned Mesh Renderer 

Skinned Mesh

Blendshapes 

Morph Targets

Эффекты

Particle System

Particle System

Halo

Volumetric Objects

Lens Flares

Lens Flares

Billboard Renderer 

Billboards

Projector / Decal Projector (HDRP)

Decals

Экстерьеры

Terrain

Terrain Systems

Trees / Grass

Mesh Clutter Grass

аддон Vegetation

Wind Zones

Animation Field

Игровой интерфейс

UI (User Interface)

GUI (Graphics User Interface)

Освещение

Light Sources

Light Sources

Environment

Environment

Lightmapping

LightmappingVoxel GI

Reflection Probes 

Environment Probes

Рендеринг

Shade

Base Material

Material

User Material

Кастомные шейдеры:

HLSL

Shader Graph

HLSL

GLSL

UUSL (Unified UNIGINE Shader Language)

Визуальный редактор материалов 

Compute Shaders 

UUSL Compute Shaders

Rendering Paths

Rendering Sequence

Multi-Display Rendering 

Плагины для рендеринга на нескольких экранах (Multi-Monitor Rendering)

Плагин Syncker для многоканальной визуализации

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

C#

C++

C#

UnigineScript

Scriptable Render Pipeline URP

HDRP

Rendering Sequence (при полном доступе из API)

Scriptable Materials

Физика

Raycast

Intersections

Rigid Body

Rigid Body

Collider

Shape

Joint

Joint

Cloth

Cloth Body

Анимация

Timeline

Tracker

Навигация и нахождение пути

NavMesh

NavMeshAgent

Off-Mesh Link 

NavMesh Obstacle 

Navigation Areas

Obstacles

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

Пользователи Unity используют Unity Hub — приложение для поиска, загрузки и управления версиями движка и проектами.

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

Unity Hub и UNIGINE SDK Browser
Unity Hub и UNIGINE SDK Browser

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

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

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

  2. Выберите тип проекта C# (.NET 5) в поле API + IDE.

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

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

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

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

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

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

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

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

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

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

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

Инструменты для просмотра виртуальной сцены Unity Scene View и UNIGINE Editor Viewport очень похожи между собой — это непосредственно само окно просмотра и панель инструментов.

Unity Scene View
Unity Scene View
UNIGINE Editor Viewport
UNIGINE Editor Viewport

Вы можете использовать столько окон Editor Viewport, сколько вам необходимо.

Интерфейс Editor Viewport

Есть русские субтитры

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

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

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

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

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

Есть русские субтитры

  • Переключатель Precompile All Shaders (предварительная компиляция всех шейдеров) используется для принудительной компиляции шейдеров;

  • Переключатель Animation (анимации);

  • Переключатель Physics (физики);

  • Переключатель Audio (звука);

  • Кнопка Play для управления воспроизведением.

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

В режиме воспроизведения Game View редактора Unity рендерит финальную сцену с одной или нескольких камер.

В UNIGINE кнопка Play используется для запуска экземпляра приложения в отдельном окне. Также есть возможность переключения между режимами воспроизведения для изменения его основных параметров. Так, например, можно включить режим VR, чтобы обеспечить совместимость с одной из поддерживаемых гарнитур виртуальной реальности.

Engine Viewport в UNIGINE (аналог Game View), используемый для отладки и оценки производительности, считается избыточным для проектов, разрабатываемых на C# .NET 5. Однако, его можно использовать в других проектах.

Консоль

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

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

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

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

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

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

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

Папки и файлы

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

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

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

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

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

               

Тип ассетов

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

Геометрия

.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

Перенос ассетов из Unity

  • Меши. Ассеты в формате FBX могут быть легко импортированы из Unity в UNIGINE без искажения масштаба. Подробнее про импорт FBX-моделей читайте здесь.

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

  • Текстуры. Текстуры можно импортировать либо как часть модели, либо отдельно, а затем назначать их мешу. Но иногда может потребоваться предварительная подготовка. Например, Shading-текстура в UNIGINE хранит карты Metalness, Roughness, Specular и Microfiber в соответствующих каналах. Поэтому сначала нужно изменить Shading-текстуру с помощью GIMP или Photoshop, а затем импортировать ее в UNIGINE. А перед импортом Normal-текстуры нужно инвертировать канал G с помощью соответствующей настройки при импорте.

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

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

Работа со сценой

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

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

Как в Unity, так и в UNIGINE, сцена формируется из базовых объектов. С их кратким описанием, а также основными сходствами и различиями можно ознакомиться ниже.

Unity

UNIGINE

Окно Hierarchy   

Окно World Nodes

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

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

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

GameObjects являются контейнерами для всех остальных компонентов.

Компоненты определяют функционал GameObject.

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

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

По умолчанию каждый GameObject имеет компонент Transform.

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

GameObjects могут быть организованы в иерархию типа родитель-потомок.

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

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

Префабы (Prefabs)

Процесс создания сцены в Unity основан на префабах. Обычно вы собираете сложный объект из GameObjects с определенными компонентами и свойствами и создаете префаб из такого объекта. Затем префабы могут быть размещены в сцене посредством редактора или созданы во время выполнения приложения.

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

Подробнее про создание Node Reference и управление смотрите видео ниже (или читайте в документации):

Есть русские субтитры

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

В Unity Editor для разрешения конфликтов, возникающих при слиянии рабочих копий проекта, используется инструмент Smart Merge. Также редактор позволяет применять пользовательские инструменты для тех же целей. Для успешного объединения, сцены и другие файлы должны быть в формате YAML.

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

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

Камеры

Камеры в Unity и UNIGINE устроены немного по-разному.

В Unity компонент Camera отвечает за захват изображения и отправку его на отрисовку. Все включенные камеры, присутствующие в сцене, визуализируются в окне просмотра (Game View) и могут перекрывать друг друга. Для переключения между камерами обычно нужно отключить текущую камеру и включить другую.

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

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

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

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

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

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

Чтобы в режиме воспроизведения (когда нажата кнопка Play) определенная камера использовалась по умолчанию, нужно установить флажок Main Player в ее настройках.

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

Настройка общих параметров проекта в Unity Editor обычно выполняется через окно настроек проекта (меню: Edit -> Project Settings). Аудио, графика, физика, уровни качества и другие настройки влияют на весь проект.

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

Компиляция шейдеров

В Unity Editor асинхронная компиляция шейдеров включается и выключается в настройках редактора (меню: Edit -> Project Settings -> Editor -> Shader Compilation).

В UNIGINE аналогичная функция редактора называется Forced Shader Compilation. Она доступна как через панель инструментов, так и через раздел Editor окна Settings.

Пресеты

Вы используете пресеты в редакторе Unity, когда вам нужно повторно использовать настройки свойств, относящиеся к различным задачам, будь то настройки компонентов, настройки импорта или, в особенности, настройки проекта (Project Settings). Вы можете сохранить настройки для определенного раздела Project Settings в качестве *.preset ассета и использовать его в процессе разработки.

Пресеты в Unity доступны только в редакторе
Пресеты в Unity доступны только в редакторе

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

Сохраненные ассеты отображаются в Asset Browser. Вы можете загрузить настройки рендеринга, дважды щелкнув необходимый ассет с расширением .render.

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

Графика

В Unity Editor настройки качества графики в основном собраны в следующих разделах:

  • Раздел Graphics содержит глобальные настройки графики. Настройки уровня (Tier Settings) обеспечивают платформенно-ориентированную настройку рендеринга и компиляции шейдеров. Уровень определяется автоматически в зависимости от используемой платформы.

  • Раздел Quality обрабатывает уровни графического качества, заданные для каждой платформы.

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

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

Рассмотрим наиболее часто используемые настройки рендеринга в Unity и соответствующие им аналоги в UNIGINE:

                                               

Unity

UNIGINE

HDR Mode

Render -> Buffers -> Color 16F

Rendering Path

см. ниже

Shaders Preloading 

Render -> Streaming -> Preload at World Loading

Pixel Light Count 

Forward Per-Object Limits

Texture Quality

Render -> Textures -> Quality

Anisotropic Textures 

Render -> Textures -> Anisotropy

Anti Aliasing 

Render -> Antialiasing -> Supersampling

Soft Particles 

particles_base -> Soft Interaction

Realtime Reflection Probes 

Меню: Rendering -> Dynamic Reflections -> Enabled

Texture Streaming 

Render -> настройки Streaming

Shadows

Render -> настройки Shadows

Shadow Cascades 

устанавливается для каждого источника World Light 

VSync Count 

Runtime -> настройки Video

Способы рендеринга

В Unity существует два способа рендеринга: Deferred (отложенный) и Forward (прямой) рендеринг. Они определяют точность шейдинга, а также потребление ресурсов при рендеринге и необходимое аппаратное обеспечение. Способ рендеринга можно выбрать в окне Graphics для каждой камеры.

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

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

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

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

Эффекты постобработки

В Unity доступность эффектов постобработки определяется используемым конвейером рендеринга. В UNIGINE подобные эффекты не являются частью постобработки, а интегрированы в процесс рендеринга. Таким образом, Unity High Definition Render Pipeline (HDRP) наиболее приближен к процессу рендеринга в UNIGINE по сравнению с другими конвейерами рендеринга.

В Unity для определения объемов, в которых параметры и эффекты постобработки локально (или глобально) переопределяются, используется фреймворк Volume. В UNIGINE для плавной перехода между эффектами в различных областях необходимо написать собственную логику.

Unity

UNIGINE

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

FXAA 

TAA

SMAA

MSAA       

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

Fast approXimate Anti-Aliasing (FXAA)

Temporal Anti-Aliasing (TAA)

Subpixel Reconstruction Anti-Aliasing (SRAA) 

Supersampling

Ambient Occlusion

Screen-Space Ambient Occlusion 

Auto Exposure

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

Adaptive Exposure 

White Balance

Tone Mapping

Bloom 

Lens Dirt

White Balance

Tonemapping

Bloom

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

Tone

Lookup Texture

Color Correction 

Color Correction LUT        

Chromatic Aberration

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

post_color_correction 

Grain

Deferred Fog

Haze 

Depth of Field

Depth of Field 

Motion Blur

Motion Blur 

Screen Space Reflection

SSR (Screen Space Reflections)

Contact Shadows

Screen Space Shadows

Micro Shadows

Cavity of SSAO (Screen Space Ambient Occlusion)

* * *

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

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

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

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

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

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

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

Tags:
Hubs:
+10
Comments 30
Comments Comments 30

Articles

Information

Website
www.unigine.com
Registered
Founded
2005
Employees
51–100 employees
Location
Россия