{"id":3874,"url":"\/distributions\/3874\/click?bit=1&hash=30fc0ef022b78dbe8dbdb621ec8c84929c74c194c9dd4dac1b63f091d1e187b6","title":"\u041a\u043e\u043b\u043b\u0430\u0431\u044b, \u0440\u0435\u044e\u0437\u044b, \u043a\u043e\u043b\u043b\u0430\u0436\u0438... \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0432\u0441\u0451 \u044d\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"bf0e0fe0-842c-5899-bb40-4efc00426ccf","isPaidAndBannersEnabled":false}
Gamedev
UNIGINE

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

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

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

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

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

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

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

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

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

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

  • 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 кнопка 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 поддерживает большинство наиболее популярных, а также ряд специфических:

Перенос ассетов из 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, сцена формируется из базовых объектов. С их кратким описанием, а также основными сходствами и различиями можно ознакомиться ниже.

Префабы (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 доступны только в редакторе

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 существует два способа рендеринга: Deferred (отложенный) и Forward (прямой) рендеринг. Они определяют точность шейдинга, а также потребление ресурсов при рендеринге и необходимое аппаратное обеспечение. Способ рендеринга можно выбрать в окне Graphics для каждой камеры.

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

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

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

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

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

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

* * *

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

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

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

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

А на кой? Без глобального рынка вкатываться в 3d проекты смысла нет

Ответить
Развернуть ветку
Boris

3D проекты могут быть разного уровня, теперь когда UE уже запретили использовать, а Unity скорее всего на очереди, остался только Godot, который даже близко по возможностям к UNIGINE не приближается.

Ответить
Развернуть ветку
Sergey Pekar

UE запретили? Можете показать новость, а то я как-то пропустил

Ответить
Развернуть ветку
Boris

Не совсем корректно выразился, вы конечно можете использовать движок сам по себе, но вы не можете выпустить сделанную на нем игру, при попытке заполнить соответствующую форму на сайте Epic с российского IP вылетает ошибка, а выпуск игры без уведомления - нарушение лицензии.

Ответить
Развернуть ветку
Ярослав Черных

Выпустить, в смысле, коммерческую?

Ответить
Развернуть ветку
Boris

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

Ответить
Развернуть ветку
Митя Кухарев

зачем заполнять форму? на сплэш скрин достаточно указать, что игра сделана с использованием Unreal Engine. в EULA есть текст, который надо указать.

Ответить
Развернуть ветку
Boris

Когда вы готовы выпустить игру вы должны заполнить соответствующую форму и отчитываться о продажах, чтобы эпики могли получить свои роялти, когда продажи превысят миллион долларов. Нет, конечно в каком нибудь NashStore наверное можно будет продавать (если у эпиков нет бэкдора, который позволит удалённо заблокировать приложение) игру на "пиратском" движке, но ни один крупный стор вроде Steam или GOG такого точно не допустит.
https://www.unrealengine.com/en-US/release

Ответить
Развернуть ветку
Митя Кухарев

Спасибо! До этого этапа я ещё не доходил :)

Ответить
Развернуть ветку
Sergey Pekar

А-а-а-а

Ответить
Развернуть ветку
Алексей Лымарев

Здравствуйте, на форуме был задан вопрос, по поводу проблемы с заполнением формы публикации, возможно там был дан ответ: https://forums.unrealengine.com/t/blocking-work-for-users-with-a-russian-ip-address/536576/5

Ответить
Развернуть ветку
Boris

Признаю свою ошибку, поторопился с выводами.

Ответить
Развернуть ветку
AntonioModer

не паникуй

Ответить
Развернуть ветку
Boris

Да я и не паникую.

Ответить
Развернуть ветку
zerohalogen

Форма о выпуске продукта и загрузка отчетов происходит не на сайте Epic Games, а на стороннем сайте Formstack, который и заблокировал к себе доступ. Это не имеет никакого отношения к Epic Games или Unreal Engine. Ты так не пугай.

Ответить
Развернуть ветку
Boris

Так он и заблокировал ровно после того, как Epic объявили о приостановке любой коммерческой деятельности в России.

Ответить
Развернуть ветку
Читать все 90 комментариев
null