В этом уроке будут рассмотрены некоторые очень важные нюансы при экспорте 3D моделей формата .OBJ из Blender в 3Ds Max.
Следует отметить, что рекомендуемые параметры для экспорта в 3Ds Max, которые будут здесь представлены, также являются рекомендуемыми для экспорта в большинство других программ, работающих с 3D моделями формата .obj. Но, есть программы, у которых при импорте модели при данных параметрах, результат будет совершенно противоположным. О некоторых из них так же будет упомянуто в этой статье.
При экспорте простой модели состоящей из одного объекта при стандартных настройках, как правило, никаких проблем не возникает.
Приведем пример экспорта обычного куба. Развернем его и наложим текстуру.
Экспортируем: File – Export – Wavefront(.obj). Очень важно, чтобы название модели и текстуры, было на английском языке, иначе импорт в 3Ds Max произойдет без текстур даже при правильных настройках.
Затем открываем нашу модель в 3Ds Max через вкладку Import.
Как видим, модель сохранила свою форму. С координатами развертки и текстурой так же нет никаких проблем.
Попробуем теперь экспортировать модель сложнее, состоящую из нескольких объектов, например 3д-модель снеговика. Как и в предыдущем случае, сделаем ей развертку и наложим текстуру.
Экспортируем также при стандартных настройках Blender, а затем импортируем в 3Ds max.
Как видим, все наши объекты слились, а сама модель потеряла свою первоначальную форму. Но, если снеговика в Blender объединить в один объект, то цельным в 3Ds Max он импортируется нормально. Это бы решило проблему, но, что делать в случае, когда необходимо импортировать модель именно отдельными объектами?
Чтобы найти решение для данной задачи, рассмотрим настройки экспорта формата .OBJ 3D редактора Blender.
Выпадающие меню «Forward» (Перед) и «Up» (Верх) позволяют выбрать направление, в котором будет направлена лицевая сторона объекта.
В редакторе трёхмерной графики Blender глобальные оси координат расположены следующим образом: Z – вертикальна (высота), Х – горизонтальна (ширина), Y – горизонтальна и перпендикулярна X и Y (длина).
Это важно учитывать при экспорте, так как в некоторых 3D программах, у данных осей совсем другие направления. Например, в системе разработки 3D приложений Unity3D, оси расположены следующим образом: Y – вертикальна (высота), Х – горизонтальна (ширина), Z – горизонтальна и перпендикулярна X и Y (длина). Причем, положительные направления горизонтальных осей противоположны положительным направлениям горизонтальных осей в Blender. Следовательно, для корректного экспорта в эту программу необходимо будет менять данные настройки.
Что касается 3Ds Max, то в этой программе глобальные оси координат совпадают с аналогичными осями в Blender. Поэтому, данные значения при экспорте в выпадающих меню «Forward» – «-Z Forward» и «Up» – «Y Up» можно оставить без изменений. Если, например, значение в «Forward» с «-Z Forward» поменять на «Z Forward», то при экспорте в 3Ds Max на виде спереди («Front») модель будет обращена тыльной стороной (затылком), а если поменять значение «Up» на «-Y Up» - будет перевернута «вверх ногами».
Если активировать данную функцию, то экспортируются только выделенные объекты. Например, при выделенном носе снеговика, только он и экспортируется. Если же, данная функция отключена, то экспортируются все объекты, находящиеся в сцене, даже если они не выделены. Важно отметить, что так же экспортируются и все скрытие объекты, и все объекты, находящиеся в других слоях.
Казалось бы, причем тут анимация? Ведь формат .obj – это формат файлов описания геометрии и не поддерживает анимацию 3D объектов. Да, действительно, в данном случае об экспорте самой анимации речь и не идет.
Данная функция предназначена на тот случай, когда, у объекта имеется анимация, например в пять кадров. Тогда, активировав данную функцию, Blender произведет экспорт в формат .obj не одной 3D модели, а пяти с сохранением геометрии в каждом кадре. То есть в папке, в которую был произведён экспорт, появятся пять файлов формата .obj, с моделями соответствующими каждому кадру анимации.
Если модель строилась при помощи модификаторов, но они не были применены, то, активировав данную функцию, Blender автоматически их применит при экспорте.
Допустим, что у модели есть голые ребра, которые созданы не намеренно, а их местоположение неизвестно. Тогда при импорте 3Ds Max выдаст ошибку «error in file: meshName = shapeName» и модель не откроется.
В подобных случаях отключение функции «Include Edges» (Включить ребра) будет крайне полезно. Blender экспортирует модель без подобных ребер, а 3Ds Max откроет модель без проблем.
Данная функция относится к группам сглаживания. При её активации все острые ребра будут записаны в различные группы сглаживания.
Как пишут сами разработчики, эта функция аналогична предыдущей функции, но сглаживание происходит при помощи битовых флагов. В результате чего получается не более 32-х различных групп сглаживания, что вполне достаточно.
Данная функция записывает направление нормалей 3D объектов. Нормаль представляет собой вектор, который перпендикулярен поверхности полигона. Если он направлен наружу, то, соответственно, и полигон будет виден снаружи. У некоторых моделей присутствуют нормали, направленные как внутрь модели, так и наружу. При помощи данной функции и записывается информация об этих направлениях.
Если 3D модели в Blender сделана развертка, и необходимо экспортировать модель вместе с ней, то данная функция должны быть активирована.
Данная функция позволяет экспортировать 3D модель вместе с данными о применённых к ней материалах и текстурах. После экспорта вместе с файлом модели с расширением .obj, так же появится файл с расширением .mtl.
Здесь важно напомнить, чтобы модель импортировалась в 3Ds Max вместе с текстурами, необходимо при экспорте модели и текстурам давать имена на английском языке.
Функция «Triangulate Faces» преобразует все грани модели в треугольные. Некоторые 3D программы поддерживают формат .obj только с гранями такого типа, в таких случаях данная функция будет весьма полезна. Но, обычно, со временем эти программы совершенствуются и начинают поддерживать формат .obj не только с треугольными гранями, либо при импорте автоматически преобразует в треугольники, как, например, Unity 3D. Что касается 3Ds Max, то он поддерживает формат .obj как с треугольными гранями, так и многоугольными, поэтому экспорт в эту программу с активированной функцией «Triangulate Faces» используют в исключительных случаях.
NURBS (Non-Uniform Rational B-Spline) – это неоднородные рациональные B-сплайны. Их главная особенность в том, что они имеют гладкую форму. В Blender сплайны данного вида добавляются в сцену через меню «Add»: «Shift+A» – «Curve».
Полигруппы – это группы полигонов, имеющие цвет, характерный только для этой группы. Часто используются в программе скульптинга ZBrush для удобства моделирования.
Если данная функция при экспорте была активирована, то при импорте в 3Ds Max все объекты соединятся в один, что и было показано в самом начале статьи. Эта проблема исправляется при помощи включения следующей за ней функции «Objects as OBJ Groups».
Экспортировав модель, состоящую из нескольких объектов, с активированной функцией «Objects as OBJ Groups», 3Ds Max импортирует их отдельно друг от друга, как и нужно. То есть, с сохранением правильной формы модели.
В начале статьи упоминалось, что есть некоторые 3D программы, в которых импорт моделей формата .obj с заданными выше параметрами происходит совершенно противоположно, чем в 3Ds Max. В данном случае, в качестве примера можно привести программу трехмерного моделирования и рендеринга Luxology MODO. После экспорта с активированной функцией «Objects as OBJ Objects» 3D модель импортируется отдельными объектами, а с активированной функцией «Objects as OBJ Groups», напротив, единым объектом (при стандартных настройках импорта в Luxology MODO).
Допустим, что к единому объекту применено несколько материалов, тогда, активировав данную функцию, при экспорте единый объект будет автоматически разделен на несколько по группам материалов.
Данным способом можно решить проблему импорта снеговика в 3Ds Max. Модель прекрасно импортируется со всеми объектами отдельно, даже если у них будет один материал.
У каждой вершины 3D объекта есть свои координаты и порядковый номер. Данная функция предназначена для сохранения нумерации вершин с соответствующими координатами. В противном случае, при импорте может произойти нарушение нумерации, и модель потеряет первоначальную форму.
При помощи значения «Scale» можно задать масштаб экспортируемой детали. Перед этим важно обратить внимание на единицы измерения, которые заданы в экспортируемой и импортируемой программах. Желательно, чтобы они совпадали.
По умолчанию стоит режим «Auto» (Авто). После экспорта 3D модели в данном режиме, если текстура не будет лежать в одной папке с файлом .obj, то при импорте 3Ds Max попросит указать к ней путь. Поэтому, если необходимо экспортировать модель с текстурами в отдельную папку, то нужно выставить режим «Copy» (Копия). Тогда все текстуры будут скопированы при экспорте автоматически вместе с файлами .obj и .mtl.
Таким образом, при экспорте модели из Blender в 3Ds Max в формате .obj, рекомендуется установить следующие параметры:
Если приходится часто экспортировать 3D модели формата .obj из Blender в 3Ds Max или какую-нибудь другую программу, то чтобы постоянно не устанавливать вышеприведенные параметры их удобно сохранить во вкладке «Operator Presets». Для этого достаточно установить их один раз, затем нажать на знак «+» напротив этой вкладки («Operator Presets»), дать название, например «3Ds Max» и сохранить, нажав кнопу «Ok».
Теперь при экспорте в 3Ds Max, достаточно выбрать уже сохраненные параметры, нажав на вкладку «Operator Presets».
В заключение следует сказать, что 3D программы регулярно обновляются, порой сами разработчики допускают ошибки, что может отразиться на качестве экспортируемой модели даже при логически правильных параметрах. Поэтому, иногда бывает полезным поэкспериментировать с настройками, как экспорта, так и импорта.
Напоминаем всем пользователям Blender, что на сайте есть другие уроки по этой замечательной программе, например: точное построение 3d модели по заданным параметрам в Blender.
В следующем уроке вы узнаете, как моделировать объект покебол в Blender (подробная статья, рассчитанная на новичков).
Перепечатка и использования данного материала без прямой обратной ссылки категорически запрещена!