Как добавить модель в блендер: Импорт и экспорт файлов — Blender 3D

Разработка 3D-моделей в Blender для интеграции в Unity




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



Ключевые слова:



Blender, Unity, 3D-модели, текстурирование, карты нормалей, Collider, Rigidbody



.


Введение

Blender — бесплатное программное обеспечение для создания трехмерной компьютерной графики, включающее в себя средства моделирования, скульптинга, анимации, симуляции, рендеринга, постобработки и монтажа видео со звуком, а также создания 2D-анимаций.

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


Разработка 3


D


модели на примере гальванического элемента питания (батарейки)


D



R


20

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

Рис. 1. Батарейка 1.5v D–R20

Для создания батарейки добавим окружность диаметром 3см. В режиме редактирования проэкструдируем окружность на высоту 6см (рис. 2).

Рис. 2. Цилиндр

Также проэкструдируем вовнутрь верхнюю и нижнюю части окружности, с повторным экструдированием для создания участка изоляции батарейки. Что бы получилась граница между изолятором и контактом. При работе с верхней частью объекта необходимо также создать в центре вершину для плюсового контакта диаметром 0,7 см и высотой 0,2 см (рис. 3).

Рис. 3. Верхняя часть батарейки

Что бы сгладить острые края, можно добавить в контекстном меню объекта “Гладкое затемнение” и включить “Автосглаживание”. Но эта процедура увеличивает количество полигонов, что, в конечном счете, может негативно сказаться на обработке объекта после переноса в графический движок.

Перед наложением текстур необходимо проверять ориентацию граней, это требуется для того, чтобы лицевая часть граней не была повернута внутрь объекта. В режиме “Ориентация грани”, красным цветом обозначена оборотная сторона грани, синим соответственно лицевая. При импорте в Unity моделей, в которых оборотные стороны граней смотрят на камеру, данные стороны будут прозрачные. Чтобы этого избежать, красные грани необходимо отразить (рис. 4).

Рис. 4. Ориентация грани


Текстурирование

Перед наложением текстуры необходимо создать материал для заданного объекта. После этого в редакторе шейдеров добавляем узел “Изображение-текстура”. В нем загружаем нужную текстуру и передаем изображение текстуры в материал, соединяя линией “Цвет” и “Основной цвет” между таблицей текстуры и материала, должно получиться как на рис. 5.

Рис. 5. Редактор шейдеров

Для отображения текстуры необходимо сменить режим отображения на “Отображать в режиме предпросмотра материала”.

Для наложения текстуры перейдем в “UV Editing” и займемся расположением граней на текстуре. Выделяя грани батарейки, в окне UV-разметки, можно поэкспериментировать и выбрать наиболее подходящий тип разметки. Выделив грани объекта, их можно располагать на текстуре произвольно. Результат этой операции можно увидеть на рис. 6.

Рис. 6. Текстурирование


Создание карты нормалей

Нормаль — это перпендикуляр к поверхности. По нему движок определяет, под каким углом отражать свет. Благодаря нормали, плоская поверхность отражает свет так, словно на ней есть неровности. Подобного хватает, чтобы принять низкополигональную модель за что-то более детализированное.

Для создания нормалей в данной статье используется бесплатная программное обеспечение “NVIDIA Texture Tools Exporter Standalone”. Загрузив текстуру в программу, можно приступать к редактированию будущей карты нормалей. В разделе “Height Generation” можно изменить высоту карты. Пример создания карты нормалей приведен на рис. 7.

Рис. 7. Создания нормалей в “NVIDIA Texture Tools”

Сохранив получившуюся карту нормалей, можно импортировать ее в Blender. Процедура добавления такая же как при добавлении основной текстуры, за исключением создания материала, т. к. материал уже присутствует. Для передачи карты нормалей в материал, необходимо соединить “Цвет” из полученного изображения с “Нормаль” нашего материала (рис. 8).

Рис. 8. Добавление карты нормалей


Сетка для коллайдера

Наша модель почти готова, осталось создать сетку для добавления коллайдера в Unity (см. Создание “Mesh Collider” и “Rigidbody”). Для начала необходимо создать низкополигональную сетку поверх модели батарейки. Делается это так же, как и создание самой модели батарейки, за исключением того, что в параметрах добавления новой окружности, необходимо уменьшить количество вершин с 32 до 8 или меньше. Должна получиться простенькая “Защитная панель” поверх батарейки (рис. 9). Эта “панель” будет использоваться как коллайдер в Unity.

Рис. 9. “Защитная панель” для коллайдера


Экспорт и


импорт

Выделяем полученную модель, камеру и источник освещения выделять не нужно [1]. Выбираем формат для экспорта, в настройках экспорта ставим галочку на “Выделенные объекты” и жмем “Экспорт”. Переносим экспортированный файл в Unity и добавляем его на сцену (рис. 10).

Рис. 10. Импорт объекта в Unity

Теперь необходимо отключить отображение “защитной панели”, убрав галочку с “Mesh Render” в инспекторе объекта, т. к. данная “панель” необходима только для создания меш коллайдера, видеть нам ее не нужно. После добавления текстур в данный проект, наша батарейка их автоматически распознает. (рис. 11)

Рис. 11. Добавление текстуры

При таком добавлении редактирование материала батарейки будет недоступно, поэтому стоит создать отдельный материал, и в него загрузить текстуру с картой нормалей. При создании материала, в “Albedo” закидываем основную текстуру, а в “Normal Map” соответственно нормаль.

Теперь готовый материал можно переместить на батарейку, а точнее на “Окружность”, которая и является самой батарейкой. В данном случае модель состоит из двух объектов, сама батарейка — “Окружность”, и ее защитная панель — “Окружность.001”. Чтобы в дальнейшем при создании более сложных моделей не возникло путаницы, следует переименовывать объекты, делать это можно как при создании самой модели в блендере, так и после добавления, в самом Unity.


Создание


“Mesh Collider”


и


“Rigidbody”

Коллайдеры необходимы для того, чтобы придать объекту материю, без коллайдеров объекты в Unity “нематериальны” и проходят сквозь остальные объекты. Коллайдеры обеспечивают обнаружение столкновений с использованием различных “ограничивающих сеток” [2], одну из которых ранее мы создали в блендере. Есть 3 способа создания коллайдеров:

1) Можно использовать базовые коллайдеры такие как “Box Collider”, “Capsule Collider”, и накладывать их на объекты, но на это уйдет не мало времени если у нас сложный объект. Такой метод меньше всего влияет на производительность.

2) Использовать коллайдер по сетке заданного объекта. “Mesh Collider”. Это быстро, но такой метод не практичен, т. к. при нем очень сильно падает производительность.

3) Создать отдельную низкополигональную коллайдерную сетку при создании объекта и использовать ее как “Mesh Collider”. Такой способ меньше влияет на производительность чем 2й, и его мы используем далее.

Выбираем “Защитную панель”, т. е. “Окружность.001” и добавляем на нее Mesh Collider. Проверяем, чтобы в разделе Mesh была выбрана “Окружность.001”. Теперь добавим физику объекту, чтобы он обладал массой и на него действовало притяжение. Для этого выбираем Add Component и Rigidbody (рис. 12). Но есть проблема в таком методе. Она заключается в том, что начиная с версии Unity 5, “Mesh Collider” работает только с включенным “Is Kinematic”, т. е. с выключенной физикой, без воздействия силы притяжения [3].

Рис. 12. “Mesh Collider” и “Rigidbody”

Если отключить “Is Kinematic”, то коллайдер пропадет, и появится при включении “Convex”, но тогда его изначальный вид сильно изменится, и станет непригодным для использования, в данном случае он принял треугольный вид (рис. 13).

Рис. 13. При включении “Convex”.


Вывод

Начиная с версии Unity 5, меш коллайдеры стоит использовать только для статичных рельефных объектов. Если необходимо чтобы на объект действовала сила притяжения, то придется ограничиться стандартными “Box Collider” и “Capsule Collider”, но в таком случае создавать “Защитную панель” в блендере уже нет нужды.

Литература:

1 Гараева Э. Р. Особенности подготовки 3D-объектов, смоделированных в Blender, для импорта в Unity 3D / Э. Р. Гараева, И. И. Бикмуллина, И. А. Барков // Прикаспийский журнал: Управление и высокие технологии. — 2020. — № 4 (52). — С. 66–74.

2 Брянский И. Н. К вопросу об основных элементах Unity / И. Н. Брянский, Д. А. Брыль // Международный научно-исследовательский журнал. — 2016. — № 12–3 (54). — С. 26–28.

3 Unity User Manual // Unity Documentation: [сайт]. — URL: https://docs.unity3d.com/Manual/index.html (дата обращения 29.03.2021).

Основные термины (генерируются автоматически): NVIDIA, коллайдер, создание, батарейка, бесплатное программное обеспечение, материал, наложение текстуры, основная текстура, создание карты нормалей, создание нормалей.

Назначение материала — Blender Manual

Materials available in the currently open blend-file can be investigated by clicking
on the Materials icon in the Properties editor Header.
In this section we look at how to assign or remove a material to/from the Active Object in Blender, either by:

  • создание нового материала,
  • переиспользование существующего материала или
  • удаление материала.

Также мы дадим вам подсказки о практическом использовании материалов.

Создание нового материала

Когда создаётся новый объект, он создаётся без привязанного материала. Создать объекту материал вы можете следующим способом:

  • Выберите объект.
  • В редакторе свойств нажмите на кнопку объекта.
  • Click on the Materials button in the Properties editor header.

Появится панель настроек затенения. Она содержит следующие элементы:

Добавление нового материала

  • Context: The currently selected scene and object.
  • Object Material Slots: this panel shows the «slots»
    for the material (or materials) that this object data contains.
  • Active Material: Initially empty, asking for «New».

Для добавления нового материала нажмите на кнопку «+» в блоке активного материала. В результате этого действия произойдёт несколько вещей:

Панель материалов с новой записью

  1. В блоке активного матерала откроется новый материал.
  2. На промежуточной панели появятся дополнительные кнопки.
  3. Новый материал добавится в список доступных материалов.
  4. Новый материал добавится в список слотов материалов объекта для активного объекта (или данных объекта – смотрите далее).
  5. Новый материал появится в области предпросмотра.
  6. Появится ряд панелей, на которых вы сможете установить свойства нового материала.

Кнопки на панели нового материала

Ниже представлена подробная информация о дополнительных кнопках, появляющихся на панели материала при создании нового активного материала:

Активный материал
Список с просмотром.
Материал
Блок данных материала для выбранного слота материала.

Совет

Именование материалов

Хорошей идеей будет давать вашим материалам понятные имена, чтобы вы могли легко понимать, для чего они нужны, особенно, если они связаны с несколькими объектами. Постарайтесь давать материалу описательное, а не функциональное имя (например, «жёлтая раскраска» вместо «цвет кухонного стола»).

Узел
Использовать или нет узлы.
Данные
Определяет, будет ли материал связан с объектом или с данными объекта.
Тип материала
Это меню содержит четыре варианта, определяющих, как объект будет визуализироваться.

Переиспользование существующих материалов

Blender is built to allow you to reuse anything, including material settings,
between many objects. Instead of creating duplicate materials,
you can simply reuse an existing material.
There are several ways to do this using the Materials data-block menu:

Одиночный объект – когда выбран объект, нажмите на сферу, расположенную слева от имени материала. Появится выпадающий список со всеми материалами, доступными в текущем blend-файле. Чтобы использовать конкретный, просто нажмите на него.

Выбор существующего материала

Совет

Поиск материалов

Поле поиска под списком материалов позволит вам искать материалы по их именам в списке. Например, введя в поле «wood» («дерево»), список отфильтруется так, что будет содержать только материалы со словом «wood» в своём имени.

Multiple Objects – In the 3D View, with Ctrl-L
you can quickly link all selected objects to the material (and other aspects)
of the active object.
Very useful if you need to set a large number of objects to the same material;
just select all of them,
then the object that has the desired material, and Ctrl-L links them to that «parent».
(See Tip on Linking Data in Creating about data linking).

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

Для удаления материала выберите его и нажмите на крестик (X) на записи в списке активных материалов.

Хотя материал немедленно пропадёт, действие удаления зависит от того, используется ли этот материал где-либо ещё.

Если материал связан с объектом и существуют другие использующие его объекты, то он будет убран из этого объекта (но всё равно останется на всех остальных объектах).

Если в списке доступных материалов была нажата кнопка «Фиктивный пользователь» (F), то материал останется при сохранении файла, даже если им никто не пользуется.

Только когда у материала будет ноль «реальных» пользователей и не будет «фиктивного» пользователя, он будет окончательно удалён. Обратите внимание, что он всё ещё будет находиться в списке материалов до тех пор, пока blend-файл не будет сохранён, но пропадёт оттуда после перезагрузки файла.

Несколько материалов

Обычно различные цвета или узоры на объекте достигаются путём добавления текстур к вашим материалам. Однако, в некоторых приложениях вы можете получить несколько цветов на объекте путём назначения различных материалов на разные грани объекта.

Добавление нового материала

To apply several materials to different faces of the same object,
you use the Material Slots options in the Materials header panel.

Меню материалов в режиме редактирования

Рабочий процесс по назначению второго материала некоторым граням объекта, уже имеющим базовый материал, следующий:

  1. In Object Mode, apply the base material to the whole object
    (as shown in Assigning a material).
  2. Создайте/выделите второй материал (материал всего объекта изменится на этот материал).
  3. In the Active Material box, re-select the base material.
  4. Перейдите в режим правки и выделите грани (над списком с активным материалом появится новая группа кнопок «Назначить»/«Выделить»/«Снять выделение»).
  5. Выберите грань/грани, которым вы хотите назначить второй материал.
  6. In the Object Material Slots box, click the Plus to create a new slot, and while this is still active,
    click on the second material in the Available Materials list.
  7. Нажмите на кнопку «Назначить» и второй материал применится к выделенным граням объекта.

Также вы можете сделать этот новый материал копией существующего материала, путём добавления блока данных:

Select the object, get the material, RMB and Copy data to clipboard.
When you have renamed the material, click «Link: Data» to link to the existing material.
Proceed to assign faces as required.
NB: If you change the material on the original object, the new object color changes too.

Link & Append — Руководство по Blender

Эти функции помогают повторно использовать материалы, объекты и другие блоки данных.
загружается из другого blend-файла.
Вы можете создавать библиотеки общего содержимого и совместно использовать их в нескольких файлах ссылок.

Новые добавленные типы коллекций доступны в Add ‣ Collection Instance в 3D Viewport.

Посмотрите в Outliner с установленным режимом отображения Blender File , чтобы увидеть все ваши связанные и присоединенные блоки данных.

Ссылка

Ссылка

Редактор

Верхняя панель

Режим

Все режимы

Меню

Файл ‣ Ссылка

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

В обозревателе файлов
перейдите к blend-файлу внешнего источника и выберите блок данных, который вы хотите использовать повторно.

Когда вы связываете объект, он будет помещен в вашу сцену в позиции 3D-курсора.
Многие другие типы данных, камеры, кривые и материалы, например,
должны быть связаны с объектом, прежде чем они станут видимыми.

Опции

Относительный путь

См. Относительные пути.

Select

Делает объект активным после его загрузки.

Активная коллекция

Объект будет добавлен в активную коллекцию активного слоя просмотра.
В противном случае он будет добавлен в новую коллекцию в активном слое просмотра.

Коллекции экземпляров

Этот параметр создает связанную коллекцию как объект, добавляя ее к активной сцене.
В противном случае связанная коллекция добавляется непосредственно к активному слою просмотра.

Экземпляр данных объекта

Создание экземпляров для объектных данных, на которые не ссылаются какие-либо объекты.

Добавить

Ссылка

Редактор

Верхняя панель

Режим

Все режимы

Меню

Файл ‣ Ссылка

Append делает полную копию данных в ваш blend-файл, не сохраняя никаких ссылок на оригинал.
Вы можете внести дополнительные изменения в локальную копию данных,
но изменения во внешнем исходном файле не будут отражены в ссылочном файле.

В обозревателе файлов
перейдите к blend-файлу внешнего источника и выберите блок данных, который вы хотите использовать повторно.

Tip

Blend-файлы также могут быть связаны/добавлены путем перетаскивания blend-файлов в окно Blender.

Примечание

Добавление данных, которые вы уже связали, добавит объекты/коллекции на сцену,
но будет держать их связанными (и не редактируемыми).

Это делается для того, чтобы существующие отношения со связанными данными оставались нетронутыми.

Опции

Select

Делает объект активным после его загрузки.

Активная коллекция

Объект будет добавлен в активную коллекцию активного слоя просмотра.
В противном случае он будет добавлен в новую коллекцию в активном слое просмотра.

Коллекции экземпляров

Этот параметр создает связанную коллекцию как объект, добавляя ее к активной сцене.
В противном случае связанная коллекция добавляется непосредственно к активному слою просмотра.

Экземпляр данных объекта

Создание экземпляров для объектных данных, на которые не ссылаются какие-либо объекты.

Поддельный пользователь

Определяет добавленный блок данных как защищенный.

Локализовать все

Добавляет также все косвенно связанные данные вместо их связывания.

Перезагрузка и перемещение библиотеки

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

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

Сломанная библиотека

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

Сделать локальным

Ссылка

Редактор

Окно просмотра 3D

Режим

Объектный режим

Меню

Объект ‣ Отношения ‣ Сделать локальным…

Ссылка

Редактор

Планировщик

Меню

Контекстное меню ‣ Идентификационные данные ‣ Сделать локальным

Делает выбранные или все внешние объекты локальными по отношению к текущему blend-файлу.
Ссылки на исходный файл библиотеки будут потеряны,
но это сделает эти блоки данных полностью редактируемыми, как и те, которые были созданы непосредственно в этом blend-файле.

Опции

Операция, доступная из контекстного меню Outliner , не имеет параметров,
и влияет только на выбранный блок данных.

Операция, доступная из 3D Viewport , непосредственно влияет только на выбранные объекты,
но он также может сделать локальными зависимости объектов:

Тип

При необходимости отключает связь данных объекта и данных материала.

Выбранные объекты, + Данные объекта, + Материалы, Все (т.е. включая все сцены)

Известные ограничения

В большинстве случаев связывание данных будет работать, как и ожидалось, однако
есть некоторые угловые случаи, которые не поддерживаются.

Циклические зависимости

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

Зависимости жесткого тела объекта

При связывании объектов напрямую в blend-файл Жесткое тело настройки
не будет связан с , поскольку они связаны с миром своей сцены.
В качестве альтернативы вы можете связать всю сцену и установить ее как
Фоновый набор.

Сжатие и использование памяти

Связывание с blend-файлами с включенным сжатием может значительно увеличить использование памяти при загрузке файлов.

Чтение данных по запросу не поддерживается при сжатии
(это влияет только на время загрузки, после загрузки нет разницы в использовании памяти) .

Создание файлов GLB с помощью Blender и Substance Painter · Справочный центр Shopify

Эта страница была напечатана 16 января 2023 г. Актуальную версию можно найти на странице https://help.shopify.com/en/partners/resources/creating-media/3d-models/creating-3d-models/blender.

Начиная с версии 2.8, Blender может экспортировать файлы GLB, которые можно добавить к продукту в админке Shopify. Чтобы узнать больше, обратитесь к руководству Blender.

Для более старых версий Blender вы можете комбинировать Blender и Substance Painter для экспорта файла GLB.

Подготовьте модель к экспорту в Blender

Чтобы подготовить модель к экспорту, вам нужно убедиться, что это один меш и к нему применена одна текстура.

Шагов:
  1. Щелкните Файл > Импорт , а затем выберите правильный формат файла для вашей модели.
  2. Выберите файл модели и нажмите Import .
  3. Удерживая SHIFT , щелкните правой кнопкой мыши каждый объект в вашей сцене, а затем нажмите Ctrl + J , чтобы объединить их в один меш.
  4. Разверните модель в пространстве 0-1 UV. Убедитесь, что UV не перекрываются:
  5. В редакторе свойств щелкните значок материалов.
  6. Нажмите кнопку + , чтобы добавить новый слот материала:
  7. Щелкните Новый .

Экспорт сетки из Blender

  1. Щелкните Файл > Экспорт > FBX (. fbx) .
  2. Введите путь, куда вы хотите экспортировать файл.
  3. Убедитесь, что вы используете следующие параметры экспорта:
  4. Щелкните Экспорт FBX .

Импорт и подготовка файла FBX в Substance Painter

  1. Создайте новый проект Substance Painter, нажав File > New .
  2. В диалоговом окне Новый проект нажмите Выберите , чтобы выбрать сетку.
  3. Выберите файл FBX, экспортированный из Blender, и нажмите 9.0253 Открыть .
  4. В окне Новый проект нажмите OK .
  5. Убедитесь, что вы правильно экспортировали свою сетку, проверив наличие только одного набора текстур на панели списка наборов текстур .

    Если вы видите более одного набора текстур, см. Несколько наборов текстур .

  6. На панели настроек набора текстур нажмите кнопку + , чтобы добавить каналы:

    • Требуется: Ambient occlusion.
    • Дополнительно: эмиссионный. Добавьте этот канал, если в вашей модели есть компоненты, излучающие свет.
    • Необязательно: Непрозрачность. Добавьте этот канал, если в вашей модели есть компоненты, которые будут прозрачными.
  7. На панели настроек набора текстур нажмите Bake Mesh Maps .

  8. Нанесите текстуры на модель.

Несколько наборов текстур

При импорте файла FBX в Substance Painter вы должны увидеть только один набор текстур:

Если вы видите более одного набора текстур, это означает, что при экспорте сетки из Blender произошла одна из следующих ошибок:

  • Сетка не была объединена в единый объект.
  • Сетке назначено несколько текстур.

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

Экспорт файла glTF из Substance Painter

  1. Щелкните Файл > Экспорт текстур .
  2. В раскрывающемся меню Config выберите glTF PBR Metal Roughness .
  3. Выберите место, где вы хотите сохранить свои текстуры.
  4. Выберите размер документа, чтобы определить размер файлов текстур.

    Наконечник

    Обычно текстуры не должны быть больше 2048 x 2048 пикселей. По возможности используйте 1024 x 1024 пикселей, чтобы значительно уменьшить общий размер файла.

  5. Нажмите Экспорт .

Сжатие файлов текстур

После экспорта модели у вас должны быть следующие файлы:

  • имя_модели.bin
  • имя_модели.glb
  • имя_модели.gltf
  • modelNamebaseColor.png
  • имя моделиnormal.png
  • modelName_occlusionRoughnessMetallic.png

При использовании конфигурации glTF PBR Metal Roughness Substance Painter экспортирует файлы текстур только в формате PNG.