Руководство по импорту FBX
FBX - это формат файла, принадлежащий Autodesk, который используется для обеспечения взаимодействия между различными приложениями для создания цифрового контента (DCC). Большинство современных приложений для 3D-моделирования поддерживают экспорт в FBX: Autodesk Maya, Autodesk 3ds Max, Blender, Modo и т.д.
Конвейер импорта FBX в UNIGINE позволяет легко передавать контент из любого приложения DCC, поддерживающего этот формат.
Преимущества использования импорта FBX по сравнению с другими методами импорта:
- Статические меши, скелетные меши, анимация и morph targets объединены в один формат файла.
- В одном файле может содержаться несколько ресурсов.
- Импорт нескольких LOD и morph targets за одну операцию импорта.
- Материалы и текстуры можно импортировать и применять к мешам.
- Также можно импортировать камеры и источники света.
Наряду с импортом данных из контейнеров FBX, UNIGINE также предоставляет возможность экспортировать данные в файлы .fbx .
Импорт ассета FBX#
При импорте ассета FBX (как и любого другого ассета ), появится окно настроек импорта:
Список доступных параметров импорта охватывает все компоненты, которые можно импортировать из сцены FBX, и включает следующее:
Параметры импорта геометрии#
Import Meshes | Импорт геометрии (мешей) из файла. |
---|---|
Use Instances | Импорт FBX с экземплярами меша. При включении импортируется один меш вместо нескольких идентичных. Если вы добавите такой FBX в сцену, все меши в Мировой иерархии будут ссылаться на один меш, хранящийся внутри импортированного контейнера FBX. |
Merge Static Meshes | Объединяет все дочерние статические меши в один (названную по имени родительского меша). Все поверхности всех поверхностей мешей будут скопированы и показаны в иерархии Surfaces. |
Merge Surfaces by Materials | Позволяет объединять поверхности с одинаковыми материалами. |
Split by Grid |
Включает разделение импортированных мешей. Слишком большие модели, имеющие размеры, превышающие 10000 единиц, могут иметь различные артефакты (дрожание и т.д.), Связанные с ошибками позиционирования. Вы можете устранить такие артефакты, разделив ваш меш на несколько отдельных. Для этого просто включите эту опцию и установите размер ячейки сетки (см. Параметр Grid Size ниже), который будет использоваться для разделения меша. Эта опция не разделяет поверхности. |
Grid Size | Размер ячейки сетки для разделения импортированных мешей в единицах. |
Repivot to Center | Помещает ось созданного меша в ее центр. Может использоваться для мешей, геометрия которых расположена слишком далеко от точки поворота, так как это может привести к различным артефактам (дрожание и т.д.), связанным с ошибками позиционирования. |
Optimize Vertex Cache | Включает оптимизацию кэша вершин. Эта опция переупорядочивает список проиндексированных треугольников для улучшения использования кэша вершин во время выполнения. Его можно отключить, чтобы ускорить процесс сохранения; однако его всегда следует включать при сохранении окончательной версии. |
Correct Triangulation |
Обеспечивает правильную триангуляцию мешей, NURBS и патчей. Отключение этой опции сокращает время импорта, но может привести к ошибкам триангуляции, приводящим к неправильной геометрии. |
Import Tangent Space |
Импортирует встроенные данные касательного пространства вместо их пересчета. Если опция отмечена, но ассет FBX не имеет касательного пространства, он будет рассчитан с ориентацией для правой системы координат. |
Import Morph Targets | Позволяет импортировать morph targets из файла. |
Combine by Postfixes | Позволяет автоматическое создание уровней детализации (LOD) . |
Уровни детализации#
Для создания нескольких вариаций одного объекта с разной степенью детализации ( LODs ) они должны быть представлены в виде отдельных поверхностей объекта. Это позволит вам уменьшить количество узлов в иерархии и упростить настройки видимости LOD.
UNIGINE обеспечивает автоматическое назначение и настройку уровней детализации на основе постфиксов имени, что позволяет создавать и экспортировать разные сетки для разных уровней детализации вашей модели в одном файле FBX. При именовании этих мешей вы должны добавить постфикс, чтобы указать уровень детализации, который представляет каждый меш. Вы также можете указать расстояние видимости и затухания для каждого уровня детализации вашей модели на этапе импорта, сэкономив время, так как вам не нужно настраивать эти параметры для поверхностей на сцене — выберите Combine by Postfixes в раскрывающемся списке Use LODs.
Вы также можете включить опцию Merge Static Meshes для большей оптимизации.
-
Выберите Combine by Postfixes в раскрывающемся списке Use LODs.
Это покажет дополнительные настройки LOD:
- Выберите количество LOD, которые хранятся в контейнере FBX.
-
Для каждого LOD определите постфикс, который будет использоваться для группировки объектов в файле FBX в соответствующий LOD.
Постфикс должен быть таким же, как тот, который используется при создании объектов в 3D-редакторе.Имена сгенерированных поверхностей будут следующими: material_name + LOD_postfix.
- Укажите минимальное расстояние видимости для каждого LOD. Максимальное расстояние видимости каждого LOD равно минимальному расстоянию видимости следующего LOD. Максимальное расстояние видимости последнего LOD равно inf.
Автоматическая генерация LOD#
Функция автоматической генерации LOD на основе библиотеки meshoptimizer поможет, если у вас есть только высокополигональная модель, сэкономив вам много времени на подготовку уровней детализации вручную.
Чтобы использовать эту функцию, выберите Auto-Generated в раскрывающемся списке Use LODs и настройте параметры, перечисленные ниже. Движок сделает все остальное, автоматически сгенерировав все LODы на основе вашей конфигурации.
Параметры карт освещения#
Параметры иерархии#
Этот вспомогательный раздел доступен в окне Parameters при выборе импортированного ассета FBX в браузере ассетов. Это позволяет вам предварительно просмотреть содержимое ассета FBX в соответствии с текущим Параметры импорта геометрии .
Nodes | Список узлов, полученных из ассета FBX. |
---|---|
Surfaces | Список поверхностей выбранного узла. |
Use Custom Settings | Включает индивидуальные параметры карт освещения для выбранной поверхности (ей). |
Параметры импорта материалов#
Import Materials | Позволяет импортировать материалы из файла. |
---|---|
Assets Mode |
Позволяет выбрать, использовать ли существующие материалы или заменить их импортированными. Доступные варианты:
|
Base Material Mode |
Позволяет выбрать базовый материал для импортируемых материалов. Доступные Варианты:
|
Workflow |
Предоставляет интерфейс для выбора режима для импортируемых физически корректных материалов (при наличии). Доступные варианты:
|
Add Asset Name as Prefix | Позволяет добавить префикс для импортируемых материалов, чтобы избежать коллизии имен. |
Add Prefix | Включение этой опции заставляет имя каждого материала иметь имя импортированного ассета FBX в качестве префикса. |
Merge Similar Materials | Позволяет объединять материалы с одинаковыми настройками, но разными именами. |
Параметры импорта анимации#
Import Animations | Позволяет импортировать анимацию из файла. |
---|---|
Import Bones Without Skin | Позволяет импортировать кости, которые не прикреплены к скелету и не влияют на skinned анимации, например, оружие, которое держит в руках персонаж. Если этот параметр отключен, такая кость не импортируется, а связанные с ней кости, если они есть, становятся сиротами. |
Create Transform Bones for Joints | Импортирует иерархию суставов (костей) для анимированных ресурсов FBX в виде списка World Transform Bones. Если эта опция отключена, импортированные анимации для мешей все равно будет работать. |
Joints Reorientation | Позволяет изменять ориентацию костей для анимации и анимированной геометрии. Если этот параметр включен, все кости будут иметь ту же прямую ось, что и геометрия. Это упрощает работу с анимацией с помощью кода для программистов, сокращая излишние манипуляции с осями: если меш имеет +Y в качестве передней оси, кости также будут иметь +Y. |
Animation FPS | Количество кадров в секунду импортированной анимации. |
Force Loop |
Принудительное сглаживание зацикленного воспроизведения анимации. |
Looped Frames | Количество кадров, используемых для сглаживания зацикленного воспроизведения анимации. Указанное количество кадров снимается с начала и с конца анимации. Если указанное значение превышает (total_number_of_frames)/2, вместо него используется последнее. |
Другие параметры импорта#
Import Textures | Позволяет импортировать текстуры из файла. |
---|---|
Import Lights | Позволяет импортировать источники света из сцены FBX. |
Import Cameras | Позволяет импортировать камеры из сцены FBX. |
Skip Empty Nodes | Позволяет пропускать пустые узлы. Сложные CAD модели могут содержать много пустых узлов, что приводит к перегрузке мировой иерархии. Вы можете включить эту опцию, чтобы упростить сгенерированную иерархию, игнорируя узлы, не содержащие никакой полезной информации. |
Front Axis | Предоставляет интерфейс для выбора оси, которая будет рассматриваться как вектор "вперед" мировой системы координат. |
Up Axis | Предоставляет интерфейс для выбора оси, которая будет рассматриваться как вектор "вверх" мировой системы координат. |
Scale |
Множитель геометрического масштаба. При добавлении в сцену в UNIGINE ваш меш может потребовать масштабирования для правильного размещения. Однако применение преобразования Scale к мешу влияет на ее физику - в этом случае меш не может правильно участвовать в коллизиях. Поэтому рекомендуется определять необходимое значение шкалы с помощью масштабный манипулятор а затем повторно импортируйте меш, используя полученное значение, которое отображается в Общие параметры . |
Конкретные параметры для различных типов данных, хранящихся в контейнере FBX, описаны ниже.
Геометрия#
Наиболее часто используемый тип данных, хранящихся в контейнере FBX, - это полигональная геометрия.
Чтобы импортировать данные трехмерной геометрии, содержащиеся в сцене FBX, вы должны включить опцию Import Meshes.
Импортированная геометрия (такая же, как и любой объект в сцене) после добавления в мир становится узел и его можно увидеть в окне World Hierarchy. Этот узел будет иметь то же имя, что и импортированный ассет FBX, и иерархия дочерних узлов, представляющая иерархию статических мешей, содержащихся в импортированной сцене. |
Вы можете объединить все дочерние объекты в один, включив опцию Merge Static Meshes. В этом случае все поверхности дочерних мешей будут скопированы в единственную родительский меш и появятся в ее иерархии Surfaces.
Вы также можете объединить поверхности с одинаковым материалом, включив опцию Merge Surfaces by Materials.
В разных приложениях 3D-моделирования можно использовать разные системы измерения. Чтобы настроить масштаб импортированной геометрии, вы можете использовать параметр Scale.
Также можно оптимизировать кеш вершин при импорте геометрии. Для этого используйте опцию Optimize Vertex Cache.
Параметр Import Tangent Space позволяет импортировать встроенные данные tangent space вместо их пересчета.
Материалы#
Контейнер FBX также может хранить материалы, назначенные поверхностям объектов в 3D-редакторе.
Чтобы импортировать материалы из контейнера FBX, вы должны включить опцию Import Materials. В этом случае поверхностям импортированной модели будут назначены соответствующие материалы.
Следующие текстуры будут импортированы и назначены (если есть):
- Diffuse (albedo) texture
- Normal map или bump map (в UNIGINE требуется преобразование в 2-х канальную карту (RG))
- Specular texture
- Light map
Следующие параметры материалов также будут импортированы (если они определены):
- Diffuse color
- Specular color и power
- Emission color
Если опция Import Materials отключена, всем поверхностям модели будет назначен материал по умолчанию mesh_base.
При импорте материалов может возникнуть ситуация, когда материал с заданным именем уже существует в проекте. Вы можете выбрать, перезаписывать ли существующие материалы (соответствующие ресурсы будут перезаписаны) или нет. Для этого используется опция Overwrite Existing Materials. Если этот флажок не установлен, будут использоваться существующие материалы.
В случае, когда исходная модель содержит множество объектов с множеством идентичных материалов, которые просто имеют разные имена (часто бывает, когда файл FBX был экспортирован из CAD система), такие материалы имеет смысл объединить в единый. Для этого вы должны включить опцию Merge Similar Materials.
UNIGINE поддерживает два режима для материалов PBR: Metalness и Specular. Используйте опцию Workflow, чтобы установить желаемый режим.
Текстуры#
При чтении данных материалов вы также можете импортировать текстуры, хранящиеся в контейнере FBX. Для этого включите опцию Import Textures.
Анимации и morph targets#
Вы можете импортировать скелетную анимацию и morph targets из файла FBX.
Чтобы импортировать анимацию из контейнера FBX:
- Включите опцию Import Animations.
- Укажите количество кадров в секунду для импортированной анимации в поле Animation FPS.
Чтобы импортировать morph targets, просто включите опцию Import Morph Targets. Morph targets будут импортированы как дочерние узлы.
Если у вас есть файл FBX, содержащий скелетную анимацию без какой-либо геометрии, вы можете импортировать его в свой проект UNIGINE через Import Bones Without Skin и использовать сгенерированные файлы .anim.
Источники света#
Вы можете импортировать источники света из сцены FBX (если есть), просто включив опцию Import Lights. Импортированные источники света будут добавлены как дочерние узлы к корневому узлу. Будет выполнено следующее преобразование:
- Направленные источники света преобразуются в источники света world.
- Точечные источники света преобразуются в источники света omni.
- Точечные светильники преобразуются в источники света projected.
Следующие параметры источников света автоматически импортируются в UNIGINE, поэтому нет необходимости настраивать их дважды:
- Цвет света
- Радиус света и затухание
- Положение и ориентация источника света
Камеры#
Камеры также можно импортировать из сцены FBX (если они существуют), просто включив опцию Import Cameras. Они конвертируются в PlayerDummy (камеры без физических свойств). В UNIGINE поддерживаются оба типа проекции:
- Ортографический (с поддержкой ближней и дальней плоскостей отсечения Z)
- Перспектива (с поддержкой FOV)
Для просмотра сцены через импортированную камеру выберите ее имя в раскрывающемся списке в верхнем левом углу окна Editor Viewport.
Добавление импортированного ассета FBX в сцену#
Чтобы добавить в сцену новый импортированный ассет FBX, как и любой другой ассет, просто перетащите его из окна Asset Browser в окно Viewport. Соответствующий узел будет создан и отображен в окне World Hierarchy. Этот узел будет иметь то же имя, что и импортированный ассет FBX, и иерархия дочерних узлов, представляющих отдельные объекты, содержащиеся в 3D-модели.
Нестандартные типы ресурсов геометрии (fbx, obj, dae и т.д.) являются контейнерами для мешей. Если дважды щелкнуть такой ассет в Asset Browser (или использовать команду Open правой кнопкой мыши), сгенерированная среда выполнения Будут отображены файлы .mesh, .anim и .node, хранящиеся в ассете контейнера: