Unity не видит blend файлы

Обновлено: 04.07.2024

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

Всякий раз, когда я импортирую свой актив в unity (будь то перетаскивание в папку assets внутри unity или экспорт его как .fbx и импорт в unity), я теряю около половины своего здания.

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

Правка: к нему также не прилагаются материалы, так что это не может быть проблемой

Правка 2: ну, по-видимому, вся моя модель не является многообразной. Время перезагрузки. Снова.

1 ответ

После установки модели в unity из Blender она говорит: Blender не смог преобразовать файл .blend в файл FBX. Вам нужно использовать Blender 2.45-2.49 или 2.58 и более поздние версии для прямого импорта Blender для работы. Обратите внимание, что у меня есть Blender 2.71.

Я импортировал свою модель блендера в Unity, в комплекте с арматурой, которая правильно анимируется. Однако теперь я хочу манипулировать преобразованиями костей в Unity (например, сделать головную кость look at игроком). Однако трансформация для головной кости (и многих других костей).

Я предполагаю, что нормальные части здания смотрят не в ту сторону. Просто пересчитайте нормали здания (внутри режима редактирования - пространство - "пересчитать нормали")

Правка: не забудьте выбрать все грани перед пересчетом нормалей

Похожие вопросы:

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

Я создал простой объект с некоторыми группами вершин и ключами формы и добавил ключевые кадры на основе ключей формы. У меня есть проблема с экспортом этой анимации в unity. Это просто показывает.

Итак, у меня есть объект (символ), импортированный в unity из blender, и я что-то обновил на нем (добавил больше анимаций), но теперь проблема в том, как обновить это в unity. Я попытался перетащить.

После установки модели в unity из Blender она говорит: Blender не смог преобразовать файл .blend в файл FBX. Вам нужно использовать Blender 2.45-2.49 или 2.58 и более поздние версии для прямого.

Я импортировал свою модель блендера в Unity, в комплекте с арматурой, которая правильно анимируется. Однако теперь я хочу манипулировать преобразованиями костей в Unity (например, сделать головную.

При экспорте сцены из Blender в Unity положение и вращение некоторых объектов становятся запутанными. Скриншоты ниже иллюстрируют эту проблему: Я использую Blender 2.79b и Unity 2018.2.0f2. Я.

Я использую Blender 2.8, и когда модель экспортируется как FBX и импортируется в unity, материалы кажутся полупрозрачными (даже материал по умолчанию blender). Когда материал выбран в unity, он.

я делаю игру на основе танка, и когда я сделал модель танка в blender и импортировал ее в unity. Когда я поместил камеру внутрь, стена была полностью прозрачной изнутри, но не снаружи. Есть ли.

Я хочу экспортировать модель дома из blender в unity, и у меня возникла проблема. Каким должен быть размер дома, то есть как соотнести размер дома в blender и размер в Unity? А что такое система.

снова. Я пытаюсь экспортировать модель из blender в unity, и все в порядке.(модель) ] Но модель в unity ломается, стены исчезают в зависимости от угла камеры.(вид из unity) ] В чем же проблема.

Андрей Васильев


Андрей Васильев

Никита, на Маке таких проблем нет, может есть какое нибудь решение и на windo?

Никита Гурьев


Никита Гурьев ответил Андрею

Андрей, не знаю, как вариант переставить блендер, а я лично экспортирую в фбх и проблем не знаю

Андрей Васильев


Андрей Васильев ответил Никите

Андрей Тухломясов


Андрей Тухломясов

Андрей Васильев


Андрей Васильев

Андрей Тухломясов


Андрей Тухломясов ответил Андрею

Андрей Васильев


Андрей Васильев

Леонид Пожидаев


Леонид Пожидаев ответил Андрею

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

Андрей Васильев


Андрей Васильев ответил Леониду

Плохая ли это практика? Есть подводные камни? Обязательно ли экспортировать через 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 проекта и он распознается со всем содержимым. Плюс отдельно материалы можно извлечь чтобы управлять ими.

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

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

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

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

image

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

image

Для начала надо изучить структуру папок и файлов нашей 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 со следующими настройками:


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


2) Вставляем в папку Assets нашего проект. Это позволит 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 поумолчанию имеет единицу измерения 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, это не такуж то и сложно. Для более детального рассмотрения данного материала предлагаю посмотреть видеоуроки в начале статьи >> ссылка

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