Как импортировать из 3ds max в unity

Обновлено: 07.07.2024

If you make your 3D objects in 3dsMax, you can save your .max files directly into your Project or export them into Unity using the Autodesk .FBX or other generic formats. Unity imports meshes from 3ds Max. Saving a Max file or exporting a generic 3D file type each has advantages and disadvantages see class-Mesh

  1. Все узлы с положением, вращением и масштабом. Центры вращения и имена тоже импортируются.
  2. Меши с вершинными цветами, нормалями и одной или двумя UV развёртками (см. ниже).
  3. Материалы с diffuse цветом и текстурой, множественные материалы для одного меша.
  4. Анимации.
  5. Анимации, основанные на костях (Bone-based, см. ниже).

Чтобы вручную экспортировать FBX из 3DS Max

  1. Скачайте последнюю версию fbx экспортера с веб-страницы Autodesk и установите его.
  2. Экспортируйте вашу сцену или выбранные объекты (File->Export или File->Export Selected) в формат .fbx. Можно использовать настройки экспорта по-умолчанию.
  3. Копируйте экспортированный fbx файл в папку вашего Unity проекта.
  4. После того, как вы переключитесь обратно в Unity, .fbx файл импортируется автоматически.
  5. Перетащите файл из окна Project в окно Scene.

Опции экспортера

Используя настройки FBX экспортера по-умолчанию (которые позволяют экспортировать всё, что есть), вы можете выбрать:

Embed textures - хранит карты изображений в файле, полезно для портативности, но не хорошо для размера файла


Настройки FBX экспортера по-умолчанию (для fbx плагина версии 2013.3)

Экспортирование Bone-based анимаций

Существует процедура, которой вы должны следовать, если желаете экспортировать bone-based анимации:

  1. Настройте структуру костей как вам угодно.
  2. Создайте нужные вам анимации используя FK и/или IK.
  3. Выделите все кости и/или IK солверы.
  4. Перейдите в Motion->Trajectories and pressи нажмите Collapse. Unity создаёт фильтр ключевых кадров, так что их количество при экспорте не важно.
  5. “Export” или “Export selected” в качестве нового FBX формата.
  6. Перетащите FBX файл в Assets, как обычно.
  7. В Unity вы должны переназначить текстуру в материале корневой кости.

При экспортировании костной иерархии с мешем и анимациями из 3d Max в Unity, иерархия GameObject’ов генерируется в соответствии с иерархией, которую вы видите в “Schematic view” в 3ds Max. Одно отличие в том, что Unity поместит GameObject в качестве нового корня, содержащего анимации, и разместит информацию о меше и материале в корневой кости.

If you prefer to have animation and mesh information in the same Unity GameObject, go to the Hierarchy view in 3ds Max, and parent the mesh node to a bone in the bone hierarchy.

Экспортирование morph targets (blend shapes) из Max

  1. Убедитесь, что у вас применён Morpher Modifier к экспортируемому мешу с подходящими morph targets, настроенными в Channel List
  2. Анимируйте ключевые кадры на экспортируемом меше / модификторе, только если вам требуется анимация
  3. Отметьте Animation > Deformations, Skins если требуется и затем Morphs в диалоге экспорта FBX

Экспортирование двух наборов UV для лайтмаппинга

Функционал 3ds Max’а Render To Texture и автоматической развёртки может использоваться для создания карт освещения. Заметьте, что в Unity есть встроенный механизм создания карт освещения, но вы можете пожелать использовать 3dsmax, если он больше подходит в вашем рабочем процессе. Обычно для главной текстуры и / или карт нормалей используется один набор UV, а для текстуры карты освещения - другой набор UV. Чтобы правильно перенести оба набора UV, материал в 3ds Max должен быть Standard и как Diffuse (для главной текстуры), так и Self-Illumination (для карты освещения) слоты карты должны быть настроены:

Material setup for Lightmapping in 3ds Max, using self-illumination map

Material setup for Lightmapping in 3ds Max, using self-illumination map

Учтите: если объект использует тип материала Shell, тогда текущий Autodesk FBX экспортер не сможет корректно экспортировать UV.

В качестве альтернативы, вы можете использовать Multi/Sub Object тип материала и настроить два sub-material’а, используя основную текстуру и карту освещения в их diffuse map слотах, как показано ниже. Однако, если полигоны в вашей модели используют другие sub-material ID, это приведёт к импорту множества материалов, что не оптимально для производительности.

Alternate Material setup for Lightmapping in 3ds Max, using multi/sub object material

Alternate Material setup for Lightmapping in 3ds Max, using multi/sub object material

Решение проблем

Если у вас возникли какие-либо проблемы с импортом моделей: убедитесь, что у вас установлена последняя версия FBX плагина с веб-страницы Autodesk или откатитесь к FBX 2012.

DanceM

А в Unity все правильно настроили для проигрывания анимации, контроллер создали, диапазон кадров указали?

horosami

дада, все это сделала, но даже если просто нажать на анимацию, которая экспортировалась с персонажем и нажать плей, то ничего не играет.

еще читала что fbx не поддерживает и надо сохранять в формате dae.

и может быть проблема с анимацией пользовательской, если в юнити, когда делаю rig не все кости привязались?

DanceM

FBX поддерживает анимацию.

Если у вас в графическом редакторе, откуда экспорт делаете, все нормально и кости привязаны, то так будет и в FBX.

Если можете, поделитесь моделью, посмотрю у себя, все ли с ней в порядке.

Если все сделали, все будет работать. Так что давайте искать, что пропустили.

1 Нажать "плей" где? В редакторе юнити?

2 В Animation Controller добавили анимацию из FBX, чтобы запускалась на старте автоматически? Сам контроллер привязали к модели в сцене?

3 В параметрах FBX указали верный диапазон? Сколько кадров установили?

horosami

59edf43aa788e406597047.jpg

у меня mesh-объект
добавила скелет base human
привязала кости
сделала скининг
добавила анимацию свою и стандартную хотьбу
экспортировала в юнити и "запекла" кости
и если в юнити просто посмотреть анимацию хотьбы, когда нажимаю на плей, то ничего не происходит) нет анимации будто

если тут не играет, то тем более что при добавлении анимации в аниматоре и указав диапазон тоже ничего происходить не будет)

DanceM

horosami, А какой диапазон кадров указан в 3dsmax? Где по времени расположена анимация? И как этот диапазон в Юнити выглядит?
Все выглядит корректно, должна проигрываться. Чем скининг делали?

horosami

Dance Macabre, ну диапазон я то выберу, просто нажать на edit надо и назначить начальный и конечный кадр того участка, который мне нужен.
тут проблема в том что до того, как я помещаю эту анимацию в аниматор, то у меня она вообще не проигрывается. ну там нажимаю на свою модель fbx, разворачивается куча всего и после аватара есть take001, это моя анимация ходьбы например. нажимаю в инспекторе на плей и он просто стоит все это время) я не понимаю что я не так делаю.

В данный момент я занимаюсь разработкой своей первой игры на Unity3d. Идея готова, заготовка готова. Но вот нормальных 3D-моделей в игре еще нет. А без красивой графики, детализированных моделей и прочих эффектов, 3D-игра деградирует в пародию на игры с приставок Nintendo и Dendy из 90-х. Оказалось, что в добавлении моделей в игру есть свои хитрости, которые стоит знать до начала экспорта.

Система координат. Ось Y направлена вверх.

Тогда как в классической 3D-математике вверх направлена ось Z:

Система координат. Ось Z направлена вверх.

Т.е. когда Unity пытается отобразить модель, он ожидает, что верхняя её часть находится там, куда направлена ось Y. И не важно, что у вас там, на самом деле, корма танка. После такого экспорта модель приходится поворачивать, выравнивать в самом движке, а это не очень удобно и утомительно. Чтобы этого избежать, есть два способа.

Первый, наивный: смоделировать, руководствуясь системой координат, принятой в Unity. Примерно вот так:

Танк Пантера 3Ds Max

Модель в этом случае экспортируется "прямо". Нужно только не забыть указать при экспорте, что именно ось Y смотрит вверх (для 3Ds Max в секции Axis Conversion поле Up Axis нужно установить в Y-up):

Экспорт из 3Ds Max ось Y направлена вверх

Танк 3Ds Max. Ось Z вверх

Экспорт из 3Ds Max ось Z направлена вверх

В этом случае модель тоже появится в движке повернутой в “правильном” направлении, но это еще не гарантирует, что Unity будет правильно определять, где находится передняя часть модели.

О том, как быть уверенным, что при команде rigidbody.AddForce(this.transform.forward, 10*Time.deltaTime, ForceMode.Impulse) модель начнет двигаться вперед, а не будет уподобляться крабу, я расскажу в следующем посте.

Полезная статья? Их будет больше, если вы поддержите меня!

Слава Водопьянов

Михаил Архангелов

Слава, сохраняешь в *.FBX и кидаешь в проект или в *.3DS или в *.OBJ
можно в проект сразу кинуть и *.max, юнити в этом случае обращается к fbx плагину и конвертирует на лету.
Материалы в любом случае придется настраивать вручную.

Олег Горбатенко

Если кинуть в одну папку модель в fbx с текстурами тогда автоматом создаеться папка с материалами и накладываються текстуры.Правда у меня бывает на некоторые детали иногда тестуры все же не накладываеться.Ну все равно лучше так чем вручную все создавать.Особенно если на модели мильенпитсот деталей.

DELETED

Олег Горбатенко

Андрей Олейник

Михаил Архангелов

Андрей Олейник

Михаил Архангелов

Андрей Олейник

Михаил, нет , я ее не могу скинуть , вот тут есть такое ,что когда раньше в 2012 делал ,все хорошо ложится, а в 2013 нет , я пытался 2012 установить , но там ошибку дает

Андрей Олейник

Михаил, у меня остались модели с 2012 версии , я их через 2013 в фбикс кинул и все хорошо,значит проблема в самой моделе (при 2013) ?

Михаил Архангелов

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

Михаил Архангелов

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

Андрей Олейник

Михаил Архангелов

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

Андрей Олейник

Михаил, у я когда кидаю в юнити фбикс с текстурами то создается папка (материал) но там название у этих материалов непонятное ( символами , такие , как например открыть exe в блокноте )

Михаил Архангелов

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

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