Как открыть юнити файл в блендер

Обновлено: 02.07.2024

Это статья про компьютерную графику, 3D-дизайн и геймдев. Про замечательную бесплатную программу для воксельного моделирования MagicaVoxel я уже рассказывал . В этом видео я ускоренно нарисовал довольно сложное здание театра Помпея в древнем Риме, а в этой заметке перенесём это здание в Blender и Unity. Бонусом создадим в Unity игру от первого лица, в которой можно осмотреть этот античный амфитеатр. Описанные способы актуальны на версиях программ с осени 2020 (сейчас середина лета 2021).

Импорт модели из MagicaVoxel в Blender

Экспортируем модель из MagicaVoxel в формате .obj. Рядом с экспортированным файлом появится использовавшаяся палитра в формате .jpg.

В Blender создаём новый файл, удаляем из него всё не нужноеи через меню File->Import->Wavefront(.obj) выбираем экспортированный файл .obj.

Если включить Viewport Shading можно заметить что палитра цветов "подхватилась" и все цвета хорошо лежат. Но есть проблема. Дело в том что для каждой вершины кубика были созданы по три вершины (для каждой его грани). Это делает не удобным например пропорциональное редактирование в Blender или определение границ объектов в Unity. Поэтому я не рекомендую ничего (с чем планируется любое взаимодействие в Unity) грузить напрямую из Magica Voxel, минуя слияние вершин, например с помощью Blender (он тоже бесплатный, так что это не создаст проблем).

В сети можно найти кучу советов по уменьшению числа полигонов после экспорта из Magica Voxel, всяких плагинов и сторонних программ. На последних версиях Magica Voxel они уже не нужны и число треугольников потом без потери качества (например применив модификатор в Blender) не уменьшить!

Чтобы слить вершины в одну надо в Edit Mode выбрать в меню Mesh->Merge->By Distance (первая картинка галереи).

Слияние вершин в Blender после импорта из MagicaVoxel Слияние вершин в Blender после импорта из MagicaVoxel

Даже не выходя из Edit Moda можно заметить, что всё "поплыло" из-за сбившегося направления нормалей.

Импорт модели из MagicaVoxel в Unity

Из Magica Voxel можно импортировать напрямую в Unity, но повторюсь, что рекомендую объединить перед этим вершины в Blender. Экспортировать модель из Blender можно с помощью File->Export->Wavefront(.obj) и не забыть поставить галочку Selection Only (и выделить перед экспортом соответственно только саму модель).

Если будете сохранять модель даже в новую папку, то не появится палитра, так как для этого в Blendere надо до экспорта включить её в сам .blend-файл. Проще всего просто скопировать эту палитру из той папки, куда экспортировали из Magica Voxel.

Если кому-то интересно как импортировать модель, полностью созданную в Blender (с созданным в нём материалом и UV-развёрткой), то вот хороший ролик на пару минут , а я пересказывать его не буду - там и так всё понятно рассказал парень .

Для импорта в Unity надо просто перетащить экспортированные файлы в папку проекта.

Blender и Maya — это ведущие пакеты для моделирования и анимации. На этой странице мы расскажем, чем они вам понравятся в сочетании с Unity на вашем пути в разработке игр.

Мощное дополнение в инструментарий разработчика игр

Мир игровой разработки устроен так, что чем больше у вас инструментов, тем больше у вас возможностей. Blender и Maya — это одни из самых мощных доступных инструментов. Они занимают ведущие позиции в графике и анимации. Эти приложения повышают гибкость игровой разработки и в конечном итоге помогают сделать игру качественнее. В этой статье мы расскажем, чем хороши Blender и Maya в составе инструментария начинающего разработчика игр в Unity.


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

Другой пакет, Autodesk Maya, хоть и не бесплатен, но стал промышленным стандартом. Практически любой блокбастер в мире игр и кино, выпущенный в этом десятилетии, содержит визуальные эффекты, анимации и трехмерные ресурсы, созданные в Maya (или в его аналоге 3ds Max).

Слыша «Blender» или «Maya», люди автоматически думают о графике или анимации. Но многие не знают, что возможности этих программ выходят далеко за пределы этих задач. Blender и Maya имеют множество других функций и преимуществ, например:

  • полный цикл разработки 3D-моделей (игровые ассеты);
  • разработка выдающихся визуальных эффектов;
  • сборка полноценных сцен и окружений;
  • рендеринг всей сцены (получение изображения из трехмерной модели);
  • поддержка дополнений, расширяющих существующие возможности.

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

Sykoo — Руководство по использованию Blender 2.8 и Unity 2019 для начинающих

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

Для импорта ресурсов из Blender в Unity выберите пункт меню Assets > Import New Asset на панели меню Unity, а затем найдите и откройте файл .blend.

Для импорта файлов Maya в Unity выберите пункт меню Assets > Import New Asset на панели меню Unity, а затем найдите и откройте файл Maya с расширением .fbx.

Сотрудничество Unity и Autodesk над форматом FBX: демонстрация обмена файлами между Maya и Unity

As a game creator, your main concern will always be having everything you need to make the game you’ve envisioned. At Unity, we believe that game creation, particularly for new developers, should always be efficient and enjoyable.

Combining these programs with Unity unleashes powerful design and development capabilities. Using Blender or Maya with Unity is hassle-free: no complicated pipelines, no special installations or conversions, and every tool you need to succeed in developing your first game. With all of this creative power at your fingertips, you’ll be on your way to making truly amazing games.

Плохая ли это практика? Есть подводные камни? Обязательно ли экспортировать через FBX?

Только осваиваю блендер. Попробовал так сделать. Изменение мэша в реальном времени, никаких проблем с экспортом ( почему-то арматура экспортируется без мэша в ней когда пытаюсь через FBX) и прочие плюсы, которые вроде как работают. Но что может пойти не так кроме лишнего хлама со сцены?

Нет разницы.
Importing a .blend is the same as importing .fbx, since Unity doesn't really import .blend, it just makes Blender open in the background and export .fbx. Using .blend means you can just save the file and it will be usable in Unity, instead of having to go through the export process manually and keeping two separate files (since you can't import .fbx into Blender).

P.S. вообще, лучше бы в /unity сразу спрашивал)

Hi guys, Is it better to import a .blend file or an .FBX file. Is the result the…

лучше бы в /unity сразу спрашивал)

думаю выгонят в вопросы сразу и заминусят. Плюс знающих blender возможно там нет.

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

fbx, collada, obj и прочие форматы экспорта имеют свои настройки и нужно понимание того, что потребуется включить/выключить при экспорте специфических вещей (вроде анимаций и т.д.) и какой формат вобще для подобного допустим. Ну и даже бросая blend-файлы, явно не в каждом тебе нужны всякие источники освещения, камеры и материалы блендера - тащить их с собой в каждом файле без нужды, вот это и есть плохая практика.
А так, что удобнее, то и используешь, благо формат Блендера давно перестал быть чем-то экзотическим, просто тот же fbx более универсален. ред.

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

А какие сложности могут быть в скачивании блендера? 200мб портативка весит

Например в том, что если загрузить блендер архивом без установки, то при импорте проекта в юнити модели blend не импортируются. И версии блендера могут отличаться, было и такое что ранние 2.8 крашились при импорте в юнити. И не удобно думать об установке блендера чтобы просто открыть проект. В целом это ок, но fbx надёжнее.

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

Да, ничего страшного, просто вес файла блендера иногда очень большой из за информации об источниках света, лишних моделей и прочего мусора и если работаешь в коллабе, то не у всех может быть установлен блендер, не все тогда смогут корректно запустить билд. Я все таки беру за правило заводить папку для мусора в отдельном месте, экспортировать все в фбх и потом уже отправлять в папки проекта юнити. А не то хлама будет. потонуть можно!

Если работаешь один то разница минимальная.
Если с командой, то у них всех должен стоять через установщик Blender - иначе юнити не распоздает формат ибо он импортируется локально.
Поэтому юзать софтовые форматы это моветон, что .blend/max/ma/mb

Расскажите, каким образом вы бленд в юнити открываете? У меня эти файлы попросту не читает. Только экспортированные в fbx

Судя по форуму юнити .blend открывается автоматически если на пк есть blender. У меня он в стиме скачан, юнька подхватывает сама. Достаточно кинуть файл в папку с Assets проекта и он распознается со всем содержимым. Плюс отдельно материалы можно извлечь чтобы управлять ими.


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

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

Введение

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

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

Разработка 3 D модели на примере гальванического элемента питания (батарейки) D – R 20

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

Батарейка 1.5v D–R20

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

Для создания батарейки добавим окружность диаметром 3см. В режиме редактирования проэкструдируем окружность на высоту 6см (рис. 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.

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

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

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

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

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

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

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

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

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

Экспорт и импорт

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

Импорт объекта в Unity

Рис. 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].

“Mesh Collider” и “Rigidbody”

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

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

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

Рис. 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.

Читайте также: