Префаб в Unity нельзя просто «переименовать» в FBX — это файлы принципиально разного назначения: .prefab хранит структуру сцены, компоненты и ссылки на ассеты, а FBX содержит только геометрию, материалы и анимации. Поэтому прямой конвертации «в один клик» не существует, и результат зависит от того, что именно нужно получить: чистую 3D-модель для Blender или Maya, либо перенос объекта со всей иерархией.
Ниже разберём рабочие способы экспорта префаба в FBX: официальный пакет FBX Exporter от Unity, сторонние инструменты и ручной обходной путь через промежуточные форматы. Отдельно остановимся на типичных проблемах — потере материалов, смещении pivot-точек и экспорте анимаций.
Что такое префаб и почему его нельзя конвертировать напрямую
Prefab — это шаблон игрового объекта в Unity, сохранённый в текстовом YAML-формате. Внутри него нет самой 3D-геометрии: есть только ссылки на меши (Mesh), материалы, текстуры и настройки компонентов вроде Transform, MeshRenderer или Collider. Файл FBX, напротив, — самодостаточный контейнер с геометрией, скелетом и анимациями.
Из этого следует главное ограничение: при экспорте в FBX сохраняется только визуальная часть — меши, иерархия трансформов, иногда материалы и анимации. Скрипты, коллайдеры, настройки физики, аудиоисточники и прочие компоненты Unity в FBX не переносятся, потому что формат их просто не поддерживает.
Способ 1: официальный пакет FBX Exporter
Самый корректный путь — пакет FBX Exporter от Unity Technologies, распространяемый через Package Manager. Он умеет экспортировать выбранный GameObject (включая префаб, размещённый на сцене) в FBX с сохранением иерархии, мешей, blend shapes и анимационных клипов.
Порядок установки стандартный для пакетов Unity. Откройте Window → Package Manager, переключите источник на Unity Registry и найдите FBX Exporter. Если пакет не отображается в списке, в некоторых версиях редактора его нужно включить через Package Manager → Advanced → Show preview packages или добавить по имени через кнопку «+» — Add package by name с именем com.unity.formats.fbx.
После установки экспорт выполняется так:
- 📦 Перетащите префаб на сцену или выделите его в окне Hierarchy
- 🖱️ Кликните правой кнопкой по объекту и выберите
Export To FBXлибо используйте менюGameObject → Export To FBX - ⚙️ В диалоге выберите формат (бинарный или ASCII FBX), путь сохранения и опции экспорта анимации
- ✅ Проверьте результат, импортировав полученный файл обратно в проект или открыв его в 3D-редакторе
☑️ Перед экспортом префаба в FBX
Способ 2: сторонние ассеты и скрипты экспорта
Если официальный пакет недоступен для вашей версии редактора или его возможностей не хватает, существуют альтернативные решения из Asset Store и открытые скрипты. Они работают по схожему принципу: проходят по иерархии объекта, собирают данные MeshFilter и SkinnedMeshRenderer и записывают их в файл.
К популярным вариантам относятся платные экспортёры из Asset Store, а также open-source решения вроде UnityFBXExporter на GitHub. Возможности таких инструментов сильно различаются: одни экспортируют только статическую геометрию, другие поддерживают скиннинг и анимации. Перед покупкой или интеграцией проверьте в описании, поддерживается ли нужный вам тип мешей и ваша версия Unity.
Отдельный сценарий — когда префаб построен из ProBuilder-мешей или процедурной геометрии. В этом случае сначала нужно «запечь» такие объекты в обычные меши (для ProBuilder это экспорт через его собственные инструменты), и только потом гнать результат в FBX.
Способ 3: обходной путь через OBJ или исходную модель
Часто самый быстрый ответ на задачу «prefab to fbx» — вообще не трогать префаб. Если префаб собран из импортированной 3D-модели, исходный FBX или OBJ-файл уже лежит в папке Assets проекта. Найдите его через поле Mesh в компоненте MeshFilter: клик по ссылке на меш покажет исходный ассет, который можно скопировать и использовать напрямую.
Если же объект собран из нескольких мешей внутри Unity и исходника нет, можно экспортировать геометрию в OBJ (таких скриптов и утилит много, формат проще), а затем открыть OBJ в Blender и пересохранить в FBX через File → Export → FBX. Минус пути — OBJ не переносит скелет и анимации, поэтому для скиннированных персонажей метод не подходит.
Сравнение способов экспорта
Выбор метода зависит от содержимого префаба и цели экспорта. Сводная таблица поможет сориентироваться:
| Способ | Скелет и анимации | Материалы | Сложность |
|---|---|---|---|
| FBX Exporter (официальный) | Да | Частично | Низкая |
| Ассеты из Asset Store | Зависит от ассета | Зависит от ассета | Низкая |
| Open-source скрипты | Часто нет | Обычно нет | Средняя |
| OBJ → Blender → FBX | Нет | Базово | Средняя |
| Поиск исходной модели в Assets | Да (как в оригинале) | Да | Минимальная |
⚠️ Внимание: экспорт ассетов, купленных в Asset Store, для использования вне Unity может нарушать лицензионное соглашение. Перед конвертацией чужого контента в FBX проверьте условия лицензии конкретного ассета.
Типичные проблемы и их решение
Розовые или серые материалы после экспорта. FBX хранит лишь базовые параметры материала, а шейдеры Unity (особенно из URP/HDRP) в него не переносятся. Это нормальное поведение: текстуры нужно подключить заново в целевой программе. Некоторые экспортёры умеют копировать текстуры рядом с файлом — проверьте соответствующую опцию в настройках.
Смещённый pivot или неправильный масштаб. Unity и FBX используют разные соглашения о единицах измерения и осях. Если модель в Blender или Maya оказалась в сто раз больше или повёрнута, скорректируйте параметры Scale Factor при экспорте или примените трансформации (Ctrl+A → Apply All Transforms в Blender) перед финальным сохранением.
Анимации, записанные в окне Animation внутри Unity, экспортируются в FBX только если экспортёр явно поддерживает запись animation curves — далеко не все сторонние скрипты это умеют.
⚠️ Внимание: перед экспортом префаба с вложенными префабами (nested prefabs) разверните иерархию и убедитесь, что все дочерние объекты активны. Отключённые (disabled) объекты многие экспортёры пропускают.
Почему экспортированный FBX выглядит иначе, чем в Unity
Различия почти всегда связаны с рендером, а не с геометрией. Unity отрисовывает объект своими шейдерами с настройками освещения сцены, пост-эффектами и тонемаппингом. В FBX попадает только «голая» модель. Чтобы приблизить внешний вид, перенесите текстуры albedo, normal map и metallic вручную и настройте материал в целевой программе.
Проверка результата после конвертации
Не считайте задачу выполненной сразу после сохранения файла. Импортируйте полученный FBX в целевое приложение — Blender, Maya, 3ds Max или обратно в чистый проект Unity — и пройдитесь по контрольным точкам:
- 🔍 Геометрия цела, нет вывернутых нормалей и пропавших полигонов
- 📐 Масштаб и ориентация соответствуют оригиналу
- 🎨 Слоты материалов на месте, текстуры назначаются без артефактов
- 🦴 Скелет и анимации (если были) воспроизводятся корректно
Если на каком-то шаге результат отличается, возвращайтесь к настройкам экспортёра: большинство проблем решается сменой формата (бинарный/ASCII), пересчётом нормалей или ручным применением трансформаций.
FAQ: частые вопросы о конвертации prefab в FBX
Можно ли конвертировать .prefab файл в FBX без запуска Unity?
Нет. Файл .prefab — это YAML-описание со ссылками на ассеты проекта, без геометрии. Для экспорта нужен редактор Unity (или специальный скрипт внутри него), который соберёт меши из связанных ассетов и запишет их в FBX.
Почему после экспорта пропали скрипты и коллайдеры?
Формат FBX предназначен только для 3D-данных: мешей, материалов, скелетов и анимаций. Компоненты Unity — скрипты, физику, триггеры — он физически не может хранить. Их нужно настраивать заново в целевом движке или приложении.
FBX Exporter не появляется в Package Manager. Что делать?
Проверьте, что в Package Manager выбран источник Unity Registry, а не My Assets. Если пакета нет в списке, добавьте его вручную: кнопка «+» → Add package by name → введите com.unity.formats.fbx. В старых версиях редактора может потребоваться включить показ preview-пакетов в настройках проекта.
Как экспортировать префаб с анимацией персонажа?
Используйте официальный FBX Exporter: выделите корневой объект персонажа на сцене, вызовите Export To FBX и в настройках включите экспорт анимационных клипов. Убедитесь, что анимации лежат в Animation Clips, а не записаны только через скрипты — кодовые анимации в FBX не переносятся.
Можно ли экспортировать в FBX префаб из чужого ассета?
Технически — да, любым из описанных способов. Юридически — зависит от лицензии ассета: большинство лицензий Asset Store разрешают использование в составе вашей игры, но ограничивают извлечение и перераспространение исходных моделей. Сверьтесь с условиями конкретной лицензии.