Интеграция 3D-активов в игровые движки
Художник отдаёт FBX-файл. Ты импортируешь его в Unity. Модель повёрнута на 90 градусов, масштаб в 100 раз больше нужного, нормали инвертированы на половине полигонов, а скелет содержит 8 дополнительных костей от вспомогательных объектов в сцене Maya. Знакомо? Это стандартная ситуация без чёткого пайплайна передачи ассетов.
Интеграция 3D-активов — это не просто «перетащить файл в Project Window». Это согласование систем координат, масштабов, форматов скелетов, UV-каналов, naming conventions для материалов и корректная настройка Import Settings под конкретный движок и платформу.
Проблемы пайплайна FBX → Unity/Unreal
Несовпадение систем координат. Maya и 3ds Max используют Y-up, Blender по умолчанию Z-up, Unity — Y-up, Unreal — Z-up. При экспорте FBX из Blender без правильной настройки Export Axis Convention модель в Unity будет повёрнута. Казалось бы — мелочь, но при анимированном скелете это означает, что все кости смещены, и Animation Clips не будут воспроизводиться корректно.
Лишние трансформации и Pivot-проблемы. Художник сдаёт персонажа с Pivot в ногах, пропс — с Pivot в геометрическом центре. Движок не знает, что правильно. В Unreal это критичнее — Static Mesh Pivot влияет на то, как объект будет выравниваться при размещении в уровне. Правило: Pivot-точка должна определяться заранее в техзадании на ассет.
Материалы и named slots. При импорте FBX Unity создаёт Material Slots по именам в файле. Если художник называет материалы Material.001, Material.002 (дефолтные имена Blender) — разобраться потом, что к чему, сложно. Перед экспортом все материалы должны иметь семантические имена: M_Char_Body, M_Char_Face, M_Weapon_Blade. Это соглашение закрепляем в Asset Naming Convention документе.
UV-каналы для Lightmap. Unity требует второй UV-канал для запечки освещения (Lightmap UV). Если ассет пришёл без UV2 — Unity автогенерирует его при импорте, и результат часто неоптимален: overlapping UV islands, плохое распределение пространства. Для серьёзных проектов UV2 делаем в DCC (Maya/Blender) вручную или через специализированный UV unwrap.
Настройка Import Settings под задачу
В Unity Import Settings для Mesh:
- Scale Factor — стандартно 0.01 для Maya/3ds Max (они работают в сантиметрах, Unity в метрах). Blender — 1.0 при правильном экспорте
- Read/Write Enabled — выключаем для статичных мешей, оставляем только если нужен runtime mesh modification
- Optimize Mesh — включаем для финальных ассетов (перегруппировывает треугольники для лучшего cache coherency GPU)
- Generate Colliders — только для простых convex мешей. Сложную коллизию делаем отдельным Low-poly Collider Mesh
Для скинированных персонажей: Rig → Animation Type = Humanoid (если нужен Avatar и Retargeting) или Generic (если кастомный скелет без ретаргетинга). Humanoid имеет strict требования к иерархии костей — все 15 обязательных костей должны быть маппированы.
Форматы: FBX vs glTF 2.0 vs USD
glTF 2.0 — современный открытый стандарт, нативно поддерживается в Unreal 5.1+ и Unity через пакет com.unity.formats.gltf. PBR-материалы (metallic/roughness workflow) передаются без конвертации. Существенно меньше проблем с масштабом и координатами, чем у FBX.
USD (Universal Scene Description) — актуально для Unreal Engine с USDZ, для пайплайнов с Omniverse, для AR (Apple Reality Composer). Поддерживает референсы на другие USD-файлы, что удобно для сборки сцен из модульных ассетов.
FBX — legacy стандарт, но пока самый универсальный. Проблемы известны и решаемы при правильном workflow.
Реальный кейс: архитектурная визуализация в Unreal Engine 5. Заказчик передал 40 объектов интерьера из 3ds Max (FBX), 12 из них — с инвертированными нормалями из-за negative scale при моделировании в Max. Вместо ручного исправления каждого объекта написали Python-скрипт для batch-processing через FBX SDK: автоматически выравнивает scale, флипает нормали там, где determinant матрицы трансформации отрицательный, переименовывает материальные слоты по конвенции. Обработка 40 объектов — 3 минуты вместо двух дней ручной работы.
Пайплайн интеграции ассетов
Разрабатываем Asset Delivery Guide — документ для команды художников: требования к экспорту (настройки FBX/glTF), naming convention, структура UV-каналов, максимальные polycount по категориям ассетов, требования к материальным слотам.
Настраиваем импорт через AssetPostprocessor (Unity) или Editor Utility Blueprint (Unreal) для автоматической установки Import Settings при добавлении нового ассета. Это убирает человеческий фактор — Import Settings устанавливаются одинаково для всей команды.
Валидация ассетов перед интеграцией: скрипт-чекер проверяет vertex count, количество материалов, наличие UV2, правильность pivot-точки.
| Масштаб задачи | Ориентировочные сроки |
|---|---|
| Настройка Import Settings для готового пакета ассетов | 2–5 дней |
| Разработка Asset Pipeline + документация | 1–2 недели |
| Исправление проблемных ассетов + интеграция (20–50 объектов) | 2–4 недели |
| Полный пайплайн DCC → Engine с автоматизацией | 3–6 недель |
Стоимость определяется после аудита передаваемых ассетов и движка.





