Blender не экспортирует файлы
Работаю в Blender. Сделала модель и хотела её экспортировать в формате html, чтобы потом вставить на страницу сайта. И. Тут меня постигла неожиданность в виде отсутствия форматов экспорта html и json. Может это как-то подключать надо? Потому что смотрела много видео, там это всё уже сразу есть, а у меня нету :3 Помогите кто чем может(
Html.RenderAction ошибка отсутствие значения
Доброго времени суток. Целуй день бьюсь, профи помогите кто чем может В нужной странице вызываю.
Упрощение тегов файлов формата Html
Здравствуйте помогите, пожалуйста, с этим заданием:Упрощение тегов файлов формата Html(например.
Сохранение текста в файлы формата *.html
Добрый день. Пишу программу на QML. Есть textEdit, в нем открывает *.html , изменяем текст и.
повторила всё так же как на видео, но формата html и json во вкладке экспорт так и не появились даже после перезапуска blender. У меня версия 2.80. Может какие ещё видео или нужно сделать что-то ещё дополнительно?
Добавлено через 3 минуты
Можете воспользоваться моим примером, если захотите на Three.js: Загрузка текстурированного объекта JSON-формата и текстуры в Three.js из 3D-редактора Blender
Любые вопросы задавайте. Чем смогу, тем помогу.
Я забыл про то, что мы можем даже не экспортировать из Blender модель каждый раз, когда изменяем её во время её разработки. Мы можем .blend файл сохранить прямо в рабочей директории проекта на Unity. Мы можем менять модель в Blender'е и изменения сразу будут отображаться в редакторе Unity. Это может ускорить время разработки в том случае, если нужно контролировать, как изменения разрабатываемой модели отражаются в конечной сцене проекта, в общей композиции сцены.
Моё мнение, что лучше использовать для 3D в веб: Three.js, Babylon.js или чистый WebGL, а Unity (и OpenGL) для нативный (более производительных) приложений для Desktop и Mobile.
. для Blender есть два продукта, хорошо с ним интегрированных в виде addons, это blend4web и verge3d .
. они позволяют экспортировать в html и более того создавать интерактивные web-приложения в самом Blender .
. также в версии Blender 2.8x уже по умолчанию есть экспорт в glTF, что может способствовать решению задач публикации из Blender в web .
Насколько я знаю из blend4web вышли два ключевых русских программиста и стали разрабатывать verge3d, который используется three.js и при этом verge3d является коммерческим продуктом. А ещё эти продукты характерны тем, что они очень агрессивно рекламируются и их банят многие группы FacеBook за спам. В своих рекламах они всегда выставляют свой продукт, как без альтернативный и обязательно поливают грязью Unity, хотя он намного эффективнее, так как позволяет экспортировать в натив для всех платформ (то есть в исполняемый файл: APK - для Андройд, EXE - для Windows и т.д.)
По мне, так можно поставить на Belnder аддоны Three.js или Babylon.js и посмотреть на их сайте примеры как загрузить модель. Эти библиотеки полностью бесплатны и позволяют с помощью кода написать скрипт для интерактивности с моделью (если нужна интерактивная 3D модель или анимация). Так же эти библиотеки умеют загружать из формата glTF.
Илья Сенников запись закреплена
Потому что OBJ хранит только базовую информацию о материалах: какой материал на какую часть меша назначен. В некоторых случаях — какая текстура какому материалу присвоена. Например, если бы у тебя был Diffuse BSDF с цветом или текстурой на цвет, то оно бы скорее всего перенеслось. И всё.
Глеб Хлебников ответил Илье
Илья, материалы перенести нельзя. Можно запечь материалы на текстуру и перенести текстуру. Материалы придется в движке воссоздать заного.
Материал по сути - это шейдер и набор текстур. В каждом 3д пакете этот шейдер может быть реализован по разному, поэтому и нельзя перенести все.
Но это не точно
видимо человеку нужно чтоб экспортнулось и выглядело в El3d как в Бленде, или приближенно
стало быть нужно запечь все текстуры, тени и прочий ливер и перекинуть текстуры на основной мат, потом в Элементе накинуть че получилось
охренеь с получившегося и докручивать до готовности
не самый оптимальный метод, Элемент будет дико брыкаться и лагать, если есть возможность отрендерить - лучше так и делать
6 сен. 2020 в 5:33
Traceback (most recent call last):
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\__init__.py", line 636, in execute
return export_fbx_bin.save(self, context, **keywords)
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 3198, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 3094, in save_single
fbx_objects_elements(root, scene_data)
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 2894, in fbx_objects_elements
fbx_data_mesh_elements(objects, me_obj, scene_data, done_meshes)
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 1174, in fbx_data_mesh_elements
elem_data_single_int32_array(lay_uv, b"UVIndex", (uv2idx[uv_id] for uv_id in _uvtuples_gen(t_luv, t_lvidx)))
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\fbx_utils.py", line 504, in elem_data_single_int32_array
return _elem_data_single(elem, name, value, "add_int32_array")
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\fbx_utils.py", line 451, in _elem_data_single
getattr(sub_elem, func_name)(value)
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\encode_bin.py", line 161, in add_int32_array
data = array.array(data_types.ARRAY_INT32, data)
File "C:\Program Files (x86)\Steam\steamapps\common\Blender\2.90\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 1174, in
elem_data_single_int32_array(lay_uv, b"UVIndex", (uv2idx[uv_id] for uv_id in _uvtuples_gen(t_luv, t_lvidx)))
KeyError: ((nan, nan), 105)
What it does mean?
you have a few NAN (Not a number) errors somewhere and it looks like it might be coming from your UV Map. Have you unwrapped the model, are you using UDims (UDims are not really perfected yet)? Check for Islands that may be wrapping (are they crossing the outside borders of the UV area)
If your language set is not English, that may also be the problem, not all UTF-8 characters are supported yet.
Also, check your export settings. Are you trying to export something that you don't need.
Работаю в Blender. Сделала модель и хотела её экспортировать в формате html, чтобы потом вставить на страницу сайта. И. Тут меня постигла неожиданность в виде отсутствия форматов экспорта html и json. Может это как-то подключать надо? Потому что смотрела много видео, там это всё уже сразу есть, а у меня нету :3 Помогите кто чем может(
Html.RenderAction ошибка отсутствие значения
Доброго времени суток. Целуй день бьюсь, профи помогите кто чем может В нужной странице вызываю.
Упрощение тегов файлов формата Html
Здравствуйте помогите, пожалуйста, с этим заданием:Упрощение тегов файлов формата Html(например.
Сохранение текста в файлы формата *.html
Добрый день. Пишу программу на QML. Есть textEdit, в нем открывает *.html , изменяем текст и.
повторила всё так же как на видео, но формата html и json во вкладке экспорт так и не появились даже после перезапуска blender. У меня версия 2.80. Может какие ещё видео или нужно сделать что-то ещё дополнительно?
Добавлено через 3 минуты
Можете воспользоваться моим примером, если захотите на Three.js: Загрузка текстурированного объекта JSON-формата и текстуры в Three.js из 3D-редактора Blender
Любые вопросы задавайте. Чем смогу, тем помогу.
Я забыл про то, что мы можем даже не экспортировать из Blender модель каждый раз, когда изменяем её во время её разработки. Мы можем .blend файл сохранить прямо в рабочей директории проекта на Unity. Мы можем менять модель в Blender'е и изменения сразу будут отображаться в редакторе Unity. Это может ускорить время разработки в том случае, если нужно контролировать, как изменения разрабатываемой модели отражаются в конечной сцене проекта, в общей композиции сцены.
Моё мнение, что лучше использовать для 3D в веб: Three.js, Babylon.js или чистый WebGL, а Unity (и OpenGL) для нативный (более производительных) приложений для Desktop и Mobile.
. для Blender есть два продукта, хорошо с ним интегрированных в виде addons, это blend4web и verge3d .
. они позволяют экспортировать в html и более того создавать интерактивные web-приложения в самом Blender .
. также в версии Blender 2.8x уже по умолчанию есть экспорт в glTF, что может способствовать решению задач публикации из Blender в web .
Насколько я знаю из blend4web вышли два ключевых русских программиста и стали разрабатывать verge3d, который используется three.js и при этом verge3d является коммерческим продуктом. А ещё эти продукты характерны тем, что они очень агрессивно рекламируются и их банят многие группы FacеBook за спам. В своих рекламах они всегда выставляют свой продукт, как без альтернативный и обязательно поливают грязью Unity, хотя он намного эффективнее, так как позволяет экспортировать в натив для всех платформ (то есть в исполняемый файл: APK - для Андройд, EXE - для Windows и т.д.)
По мне, так можно поставить на Belnder аддоны Three.js или Babylon.js и посмотреть на их сайте примеры как загрузить модель. Эти библиотеки полностью бесплатны и позволяют с помощью кода написать скрипт для интерактивности с моделью (если нужна интерактивная 3D модель или анимация). Так же эти библиотеки умеют загружать из формата glTF.
— Теория о системе координат (правосторонней и левосторонней)
— Теория правильного создания 3d моделей в blender
— Быстрый экспорт файлов из Blender в Unity3d.
— Как правильно сопоставить масштабы модели в Blender и Unity.
— Экспорт с правильной ориентацией модели
— Почему количество вершин по-разному отображается в Unity и Blender?
Дополнение от Leopotam
Ничего не было сказано, что нельзя вешать в материал текстуры (только то, что в UV-окне), иначе юнити начнет создавать папки типа object.fbm и пытаться импортировать текстуры в них независимо от того, что лежит в соседней папке Textures. Тут кроется проблема — их бесполезно удалять, при следующем переимпорте (например, при заборе репозитория в новую папку или смене целевой платформы) ассета папка появится снова. Единственное решение — правильно готовить это дело в блендере. Ну или отключать импорт материалов и настраивать префабы руками.
Да действительно в Unity 5 начали создаваться данные папки (при первичном импорте) раньше их не замечал, но они пустые и их можно удалить (они создаются только при первичном импорте) и текстуры ищет в папке Textures и применяется Шейдер в зависимости от настроек материала, если материал стандартный и то примениться Diffuse с уже настроенной текстурой, если Transperty применен в материалах, то примениться соответствующий шейдер Transperty в Unity3d и текстура тоже примениться. Сменил целевую платформу, с Web Player на Desktop — ничего не поменялось, папки не создались. Сменил на Ios — ничего не поменялось. Unity 5.0.1f1
Ничего не было сказано, что если экспортируется арматура с анимациями, то нельзя использовать FBX 7.4 BINARY формат, только старый FBX 6.1 ASCII, иначе все в юнити поедет в стиле «кровькишкирас. ».
Спасибо за дополнительную информацию, с анимацией в Blender не работал и собственно в разрабатываемом проекте не требуется костная анимация, поэтому мало знал о данном материале.
Видео к статье
На самом деле это самая важная часть, я столкнулся с рядом проблем в работе физики 3d модели из-за неправильного экспорта. И так давайте сначала познакомимся с системой координат правосторонней и левосторонней.
Blender использует правостороннюю систему координат с осью Z, направленной вверх. Такую систему координат используют почти все САПР. Смотрите рисунок:
Unity3d как почти любой другой игровой движок использует левостороннюю систему координат. Когда Y направлен вверх, X — вбок, Z- вперед. Смотрим рисунок:
Для начала надо изучить структуру папок и файлов нашей 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). Смотрим рисунок:
Благодаря пользователю 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, это не такуж то и сложно. Для более детального рассмотрения данного материала предлагаю посмотреть видеоуроки в начале статьи >> ссылка
Читайте также: