Prefab to FBX: способы конвертации префаба Unity в FBX

Префаб в 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

Выполнено: 0 / 5

Способ 2: сторонние ассеты и скрипты экспорта

Если официальный пакет недоступен для вашей версии редактора или его возможностей не хватает, существуют альтернативные решения из Asset Store и открытые скрипты. Они работают по схожему принципу: проходят по иерархии объекта, собирают данные MeshFilter и SkinnedMeshRenderer и записывают их в файл.

К популярным вариантам относятся платные экспортёры из Asset Store, а также open-source решения вроде UnityFBXExporter на GitHub. Возможности таких инструментов сильно различаются: одни экспортируют только статическую геометрию, другие поддерживают скиннинг и анимации. Перед покупкой или интеграцией проверьте в описании, поддерживается ли нужный вам тип мешей и ваша версия Unity.

📊 Какой способ экспорта префаба в FBX вы используете?
Официальный FBX Exporter
Платный ассет из Asset Store
Скрипт с GitHub
Экспортирую исходную модель, а не префаб

Отдельный сценарий — когда префаб построен из 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 разрешают использование в составе вашей игры, но ограничивают извлечение и перераспространение исходных моделей. Сверьтесь с условиями конкретной лицензии.