Как экспортировать 3d модель из blender
Перейти к содержимому

Как экспортировать 3d модель из blender

  • автор:

Импорт и экспорт файлов¶

Блендер поддерживает импорт и экспорт в другие форматы файлов (напр. OBJ, FBX, 3DS, PLY. и т. д.).

Эти форматы могут быть доступны из меню Файл ‣ Импорт и :menuselection:`Файл ‣ Экспорт .

Популярные форматы включены по умолчанию, другие форматы также поддерживаются и распространяются с Blender, они могут быть включены в пользовательских настройках помощью Дополнения.

Список этих дополнений можно найти в Каталоге дополнений Blender

Импортирование 3D-моделей

В настоящее время Defold поддерживает модели, скелеты и анимацию только в формате .dae (Collada). С помощью таких инструментов, как Maya, 3D Max, Sketchup и Blender, можно создавать и/или конвертировать 3D-модели в формат Collada. Blender — это мощная и популярная программа для 3D-моделирования, анимации и рендеринга. Она работает под Windows, macOS и Linux и доступна для свободного скачивания на сайте http://www.blender.org.

Model in Blender

Экспортирование в формат Collada

При экспорте модели в формат Collada создается файл с расширением .dae. Этот файл содержит все вершины, ребра и грани, составляющие модель, а также UV координаты (информация о том, какая часть текстуры сопоставляется с определенной частью сетки), если они определены, а также кости скелета и данные анимации.

  • Подробное описание полигональных сеток можно найти на http://en.wikipedia.org/wiki/Polygon_mesh.
  • UV-координаты и UV-мапинг описаны на http://en.wikipedia.org/wiki/UV_mapping.

Defold накладывает некоторые ограничения на экспортируемые данные анимации:

  • В настоящее время Defold поддерживает только запеченную анимацию. Это означает, что анимация должна иметь матрицы трансформации (уже вычисленные координаты) для каждой анимированной кости в каждом ключевом кадре, а не положение, вращение и масштаб как в отдельных ключах.
  • Анимация интерполируется линейно. Если требуется более сложная интерполяция кривых, анимацию необходимо предварительно запечь в программе-экспортере.
  • Формат Collada не поддерживает анимационные клипы. Чтобы использовать несколько анимаций в одной модели, необходимо экспортировать их в отдельные .dae-файлы и собрать их в единый .animationset-файл в Defold.

Требования

При экспорте модели в формат Collada необходимо убедиться, что она соответствует следующим требованиям:

  • Модель должна представлять собой единую сетку
  • Модель должна использовать лишь один материал
Объединение нескольких полигональных сеток

Для объединения нескольких сеток можно использовать Blender. Выделите все сетки и нажмите CTRL / CMD + J чтобы объединить их.

Join meshes

Удаление материалов

Для удаления лишних материалов из модели также подойдет Blender. Выберите материал для удаления и нажмите кнопку — .

Remove materials

Экспортирование текстуры

Если для модели еще не существует текстуры, ее можно сгенерировать с помощью Blender. Это следует сделать перед удалением лишних материалов с модели. Начните с выделения сетки и всех ее вершин:

Select all

Как только все вершины выделены, необходимо развернуть сетку, чтобы получить UV-макет:

Unwrap mesh

Затем можно приступать к экспорту UV-макета в изображение для использования его в качестве текстуры:

Export UV layout

Export UV layout settings

Export UV layout result

Экспортирование с помощью Blender

Экспорт модели в формат Collada выполняется с помощью пункта меню “Export”. Следует выделить модель перед выбором пункта меню File > Export > Collada. В открывшемся диалоге установите флажок “Selection Only”, чтобы экспортировать только выделенную модель.

Exporting using Blender

Импортирование в Defold

Чтобы импортировать модель, просто перетащите .dae-файл и соответствующую текстуру в панель Assets.

Imported model assets

Использование модели

После импорта модели в Defold ее можно использовать в компоненте Model.

  • English
  • 中文 (Chinese)
  • Español (Spanish)
  • Français (French)
  • Νεοελληνική γλώσσα (Greek)
  • Język polski (Polish)
  • Português (Portuguese)
  • Русский (Russian)

Did you spot an error or do you have a suggestion? Please let us know on GitHub!

Экспорт из Blender в 3D max.

Всем привет, не так давно стал пользоваться 3D max, до этого моделил в блендер, и в полне успешно. И тут я задумал экспортировать модель с текстурами из блендера 3D max. Информации мало. Но как понял необходим формат obj. В итоге экспортировал вполне успешно, но он не может найти материалы. Хотя файл mtl создается. В чем может быть причина? Как экспортировать без потери материалов?

На сайте c 10.03.2020
Сообщений: 14
Цитата JohnnyFortunite:

Всем привет, не так давно стал пользоваться 3D max, до этого моделил в блендер, и в полне успешно. И тут я задумал экспортировать модель с текстурами из блендера 3D max. Информации мало. Но как понял необходим формат obj. В итоге экспортировал вполне успешно, но он не может найти материалы. Хотя файл mtl создается. В чем может быть причина? Как экспортировать без потери материалов?

Как ты перенес модель? У меня как-то всё топорно. Единицы измерения не совпадают, из-за чего вообще всё через одно место работает. Вплоть до того, что проще заново сделать модель

Секреты экспорта из Blender в Unity

— Теория о системе координат (правосторонней и левосторонней)
— Теория правильного создания 3d моделей в blender
— Быстрый экспорт файлов из Blender в Unity3d.
— Как правильно сопоставить масштабы модели в Blender и Unity.
— Экспорт с правильной ориентацией модели
— Почему количество вершин по-разному отображается в Unity и Blender?

Видео к статье

Blender урок №1

Blender урок №2

Blender урок №3

Бонусный урок по текстурам в Unity3d

Теория о системе координат (правосторонней и левосторонней)

На самом деле это самая важная часть, я столкнулся с рядом проблем в работе физики 3d модели из-за неправильного экспорта. И так давайте сначала познакомимся с системой координат правосторонней и левосторонней.

Blender использует правостороннюю систему координат с осью Z, направленной вверх. Такую систему координат используют почти все САПР. Смотрите рисунок:

image

Unity3d как почти любой другой игровой движок использует левостороннюю систему координат. Когда Y направлен вверх, X — вбок, Z- вперед. Смотрим рисунок:

image

Теория правильного создания 3d моделей в blender

Для начала надо изучить структуру папок и файлов нашей 3д модели в Blender.
Refence — папка в которой могут хранится вспомогательные чертежи, рисунки, которые помогают построить 3д модель
Textures — папка в которой должны хранится текстуры.
Flags_snow.blend — наша 3d модель в формате blender

Теперь для правильного экспорта 3d модели, мы должны для себя уяснить, что Z+ это будет направление в игре когда объект движется вперед, (Z-) — направление когда объект движется назад. (X+-) это направления поворота вбок — но это в Unity, которая использует левостороннюю систему координат. А в правосторонней системе координат (Blender, 3ds max) Y+ это будет направление когда объект смотрит вперед и (X+-) это направления вбок. Это значит что объект должен стоять в сцене так, как на рисунке, в противном случае ждите проблем с физикой:

Все параметры вращения должны стоять на 0 для дальнейшей работы и для правильной генерации Меша (Mesh), надо Scale установить по умолчанию. Для этого мы сделаем следующие действия в Blender.

1)Выделим все объекты в сцене (клавиша A)
2)Object>Apply>Rotate & Scale.

Теперь все параметры вращения приняты и установлены на 0. А параметры масштабирования (Scale) установлены на по умолчанию (1). Смотрим рисунок:

image

Благодаря пользователю Leopotam, выяснилось что назначать текстуру, лучше в самом Unity3d, а не в Blender, в противном случае, при каждом экспорте FBX файла у вас будет создаваться папка object.fbm (пустая папка которая не на что не влияет, кроме как создает лишний объект в окне Project.

Экспорт с правильной ориентацией модели

Теперь можем делать «Правильный экспорт» из правосторонней системы координат в левостороннюю систему координат.

1)Выделим все объекты (клавиша A)
2)Жмем последовательность R>X>-90.
3)Object>Apply>Rotate.
4)Жмем последовательность R>X>90.

Обязательно делайте в данной последовательности. Далее экспортируем модель в Unity. File>Export>FBX со следующими настройками:

Быстрый экспорт файлов из Blender в Unity3d.

После экспорта модели:
1) Идем в папку с этой моделью и копируем папку Textures (папку с текстурами) и наш FBX файл.

2) Вставляем в папку Assets нашего проект. Это позволит Unity импортировать модель прямо с текстурами, которые были настроены в Blender.

Почему количество вершин по-разному отображается в Unity и Blender?

Как мы видем на рисунке количество вершин (verts) на объекте в Unity3d показывает 28.
Смотрим рисунок:

А количество вершин в Blender = 8

Связано это с тем, что в Unity3d подсчитывается количество вершин самой фигуры и количество вершин в UV развертке:

При создании швов, одна грань разделяется на 2 грани, а следуя математике 1 грань состоит из 2 вершин, следовательно из 2ух граней будет 4 вершины. Для примера воспользуемся Smart UV Project разверткой и установим максимальный Angle Limit.

Смотрим в Blender и количество вершин сократилось с 28 до 24 вершин. Если у кого есть более оптимизированный способ. Пишите в комментариях, обсудим. Некоторые скажут что что сократилось всего на 4 вершины, а представьте если таких объектов 100 или 200, или количество вершин в более детализированных объектах сократиться на 100-300. Помойму не плохой способ оптимизации.

Как правильно сопоставить масштабы модели в Blender и Unity.

Все единицы измерения, что в Blender что в Unity поумолчанию имеет единицу измерения Units. 1 Units= 1 Meter . Поэтому разработчики советуют принимать 1 юнит игрового пространства за 1 реальный метр, и лучше этого придерживаться (хотя бы чтобы с физикой меньше возиться).
И так разберемся с единицами измерения в Blender, в прицнипе в Blender их можно менять, но поумолчанию в Blender используется Units.

Смотрим на рисунок:

Видем параметр Dimension (Измерения или размер). на рисунке мы видем Dimension по X,Y,Z = 1,1,1; следовательно эта фигура куб с размерами 1х1х1 метр. Экспортируем в Unity и переходим на вкладку Inspector

смотрим на параметр Scale Factor, если у вас Unity версии меньше 5, то поумолчанию Scale Factor будет 0.01, исправим этот параметр на 1, если у вас Unity5 то Scale Factor поумолчанию будет 1.

Заключение

Вот и вся статья, как видем экспорт 3d модели из Blender в Unity, это не такуж то и сложно. Для более детального рассмотрения данного материала предлагаю посмотреть видеоуроки в начале статьи >> ссылка

Дополнение от Leopotam

Leopotam:

Ничего не было сказано, что нельзя вешать в материал текстуры (только то, что в UV-окне), иначе юнити начнет создавать папки типа object.fbm и пытаться импортировать текстуры в них независимо от того, что лежит в соседней папке Textures. Тут кроется проблема — их бесполезно удалять, при следующем переимпорте (например, при заборе репозитория в новую папку или смене целевой платформы) ассета папка появится снова. Единственное решение — правильно готовить это дело в блендере. Ну или отключать импорт материалов и настраивать префабы руками.

Да действительно в Unity 5 начали создаваться данные папки (при первичном импорте) раньше их не замечал, но они пустые и их можно удалить (они создаются только при первичном импорте) и текстуры ищет в папке Textures и применяется Шейдер в зависимости от настроек материала, если материал стандартный и то примениться Diffuse с уже настроенной текстурой, если Transperty применен в материалах, то примениться соответствующий шейдер Transperty в Unity3d и текстура тоже примениться. Сменил целевую платформу, с Web Player на Desktop — ничего не поменялось, папки не создались. Сменил на Ios — ничего не поменялось. Unity 5.0.1f1

Leopotam:

Ничего не было сказано, что если экспортируется арматура с анимациями, то нельзя использовать FBX 7.4 BINARY формат, только старый FBX 6.1 ASCII, иначе все в юнити поедет в стиле «кровькишкирас. ».

Спасибо за дополнительную информацию, с анимацией в Blender не работал и собственно в разрабатываемом проекте не требуется костная анимация, поэтому мало знал о данном материале.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *