Работать с 3D-моделями — это как пытаться натянуть джинсы после новогодних праздников: вроде делаешь всё правильно, а результат как-то не радует. Особенно если дело доходит до экспорта. Экспорт модели — это тот момент, когда ты вроде бы уже всё сделал, вложил душу, крутил материалы, ставил свет, и тут — БАЦ — модель не открывается, не отображается или превращается в нечто, похожее на муравья, попавшего в радиационную бурю. В этой статье поговорим про пять главных ошибок, из-за которых всё может пойти не так, а заодно разберёмся, как избежать этих подводных камней. Ну и немного поностальгируем о том, как все мы хотя бы раз наступали на эти грабли.

Номер один: забыли про масштаб

О, масштаб. Это та штука, о которой никто не думает, пока не увидит в Unity гигантский табурет размером с небоскрёб или, наоборот, крошечный дом, который теряется среди травинок. Одна из самых частых и, честно говоря, обидных ошибок — это неправильно выставленный масштаб модели перед экспортом. Например, вы моделите в Blender, где единицы измерения можно настроить как угодно — метр, сантиметр, чего душа пожелает. А потом экспортируете в FBX и открываете в Unreal Engine, который ожидает, что один юнит — это один сантиметр. И тут начинается пляска. Дом, который был высотой в два метра, внезапно становится 0.02 Unreal-метра. То есть где-то между тапочкой и крышкой от бутылки. Что делать, чтобы не было такого сюрприза? Перед экспортом обязательно проверьте, какие единицы измерения используются в вашей сцене, и подгоните их под нужную вам платформу. А ещё не забывайте применять масштаб (в Blender это Ctrl+A → Apply Scale). Без этого можно хоть сто раз настраивать размеры — они всё равно съедут.

Номер два: неапплайнутые трансформации

Вот тут начинается магия “я же точно поставил объект вот сюда, а теперь он улетел в космос”. Проблема в том, что когда вы двигаете, масштабируете или поворачиваете объект в сцене, вы не всегда физически меняете его форму. Вы просто навешиваете на него трансформацию. А при экспорте это может не учитываться так, как вы думаете. Итог — в новом софте объект либо не на своём месте, либо перекошен, либо вообще исчез. Особенно весело бывает с анимациями, где всё начинает дергаться, как в фильме ужасов из 90-х. Запомните как мантру: перед экспортом применяйте трансформации. Это как чистить зубы — не всегда хочется, но потом спасибо скажете. В Blender это тоже делается через Apply → Location, Rotation, Scale. В других программах — ищите аналог.

Номер три: нет нормалей или они не туда смотрят

Да-да, нормали — это такая невидимая армия стрелочек, которые указывают, в какую сторону “смотрит” поверхность. Если нормали вывернуты не туда, то у вас может быть замечательная модель, которую не видно. Потому что она как бы есть, но её как бы нет. Особенно часто это случается, если вы моделили что-то сложное, с подповерхностями, экструдированием, boolean'ами, и не проверили результат. Или использовали двойные поверхности. Или просто забыли об этом, как о дне рождения дальнего родственника. Как проверить? Во всех программах есть режим отображения нормалей. Включаете его — и смотрите, куда указывают синие стрелочки. Если внутрь объекта — переворачивайте. Если часть нормалей смотрит в одну сторону, а часть в другую — делайте Recalculate или Flip, в зависимости от ситуации. И помните: даже крутые материалы и шикарное освещение не спасут объект, у которого лицевые стороны смотрят в никуда.

Номер четыре: забытые текстуры и материалы

Вот это классика жанра. Вы загрузили модель в другой софт, а она серая. Просто уныло-серая, как день перед зарплатой. Почему? Потому что материалы или текстуры не экспортировались. Или экспортировались, но путь к ним утерян. Или программа просто не может понять, что это за файл и куда его ставить. Особенно это касается форматов вроде OBJ, которые по умолчанию могут использовать внешний файл .mtl. Потеряли этот файл — до свидания, материалы. Или, скажем, текстуры лежали на рабочем столе, а вы отправили модель коллеге. А текстуры не приложили. Угадайте, что он увидит? Правильно: серый куб с ностальгией по Photoshop. Чтобы не попадать в такие ситуации:
  • Используйте форматы, которые умеют “вшивать” текстуры внутрь, например GLB или FBX с embed-опцией.
  • Если текстуры всё-таки лежат отдельно, соберите их в одну папку рядом с моделью и проверьте пути.
  • Не называйте файлы кириллицей или с пробелами. Названия вроде “новая текстура 3 финал точно.новая.jpg” — это дорога в ад.
  • Проверьте в другом софте перед тем, как отправлять. Лучше потратить пять минут, чем потом получать гневные сообщения от заказчика.

Номер пять: лишняя геометрия и мусор в сцене

В сцене, где вы моделите, может быть всё что угодно: кубы-заглушки, вспомогательные объекты, скрытые камеры, забытые сферы, и даже тот странный тор, который вы добавили случайно в 3 часа ночи. И всё это чудесным образом может попасть в экспорт, если не отфильтровать. Результат? В сцене, куда вы импортируете, будет куча ненужного барахла. Иногда — невидимого. Иногда — на другом слое. Иногда — просто там, где не ждёшь. И вы, или ваш клиент, будете сидеть и гадать, почему модель весит 300 Мб, если это просто табуретка. Вот простой ритуал перед экспортом:
  • Удалите всё, что не должно идти в финальную сцену.
  • Проверьте, не включены ли скрытые объекты.
  • Сгруппируйте элементы, если это логично. Чтобы потом не искать, где у вас ножка, а где подушка.
  • Почистите историю модификаторов и non-destructive операций, если они не нужны.
  • Переименуйте объекты. Название “Cube.045” — не лучший вариант для команды в продакшене.
Это не только делает сцену чище, но и упрощает жизнь всем, кто будет с ней работать. В том числе вам же — спустя два месяца.

А что ещё может пойти не так

Ох, если начать вспоминать все факапы при экспорте, то можно книгу писать. Бывает, экспортируешь в FBX, а там анимация не та. Или экспортируешь в GLTF, а прозрачность работает не как надо. Или просто софт говорит: “Ошибка импорта. Причина: не скажу”. Тут помогает только опыт. И да, немного занудства. Но в хорошем смысле. Проверяйте всегда:
  • Как работает материал в другой программе.
  • Совпадает ли ориентация осей (в Blender Z — вверх, в Unity — Y).
  • Импортируется ли сцена целиком или по частям.
  • Осталась ли иерархия объектов.
Чем больше у вас привычки “перепроверить”, тем меньше потом стресса.

Напоследок — пара человеческих слов

Экспорт — это как переезд. Вы собираете вещи, пакуете, стараетесь ничего не забыть. И всё равно в новом месте выясняется, что носки остались дома. Так и с моделями: вроде всё настроил, а потом — упс. Но это нормально. Ошибки — часть процесса. Даже профи косячат. Главное — учиться на своих (и чужих) ошибках, не паниковать, и держать голову холодной. Да, экспорт — не самая гламурная часть 3D-работы, но очень важная. Она как застёжка на молнии: если она сломается, никто не увидит, какой у вас стильный пиджак. Пусть у вас всё экспортируется гладко, с первого раза, без сюрпризов. Но даже если не так — теперь вы знаете, куда копать.