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

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

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

Настали сложные времена. Многие технологические компании ушли из России и не все из них обещали вернуться. А некоторые производители программного обеспечения начали отзывать лицензии на свои продукты для россиян. Если вы планируете переходить с иностранного софта на отечественный и ищете полноценный аналог Unity или Unreal Engine, то одним из вариантов может стать продукция нашей компании, полностью готовая к импортозамещению.

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

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

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

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

Управление проектами и 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 по умолчанию используется темная тема.

Быстрый переход на UNIGINE с Unity: первые шаги
  • Toolbar. Панель инструментов, которая обеспечивает доступ к инструментам позиционирования, а также элементам управления логикой приложения, воспроизведением звука, симуляцией физики, компиляцией шейдеров и запеканием света.
  • World Hierarchy Window. Инструмент для работы с иерархией нод. Позволяет организовывать ноды в иерархию, а также добавлять, удалять, клонировать и переименовывать их.
  • Editor Viewport. Просмотр трехмерной сцены. Позволяет визуально перемещаться и редактировать виртуальный мир.
  • Parameters Window. Окно параметров выбранного элемента виртуального мира. Позволяет просматривать и изменять параметры нод, материалов, свойств и ассетов.
  • Asset Browser Window. Инструмент для организации контента в проекте: создания, импорта, просмотра, переименования ассетов, а также перемещения и управления их иерархией.

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

Инструменты для просмотра виртуальной сцены Unity Scene View и 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 с Unity: первые шаги

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

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

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

Консоль

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

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

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

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

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

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

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

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

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

Папки и файлы

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

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

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

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

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

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

Перенос ассетов из 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 используют разные системы координат.

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

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

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

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

Префабы (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:

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

Чтобы в режиме воспроизведения (когда нажата кнопка 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.

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

Пресеты

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

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

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

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

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

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

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

Графика

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* * *

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

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

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

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

Комментарий недоступен

24
Ответить

3D API импортозаместили? Или на пендосском DX/OGL/Vulkan сидим? :)

5
Ответить

Ещё бы про язык программирования написал( ͡° ͜ʖ ͡°)

20
Ответить

А как вы собираетесь замещать DX, например, если он часть Windows? А openGl Vulkan - вообще открытые

1
Ответить

дочитал до оси Z дальше не читал

9
Ответить

Это ты еще в Unreal не смотрел :)

3
Ответить

Сначала не понял, а потом как понял

Ответить