Yearly Archives: 2017



Unity: Импортировать модель с несколькими текстурами из приложения Blender

Если в Unity просто перекинуть файл с моделькой *.blender, то Unity Editor автоматически создаст для нее дефолтовый материал. Если для модельки используется одна текстура, то проблем нет – ее же и отобразит движок. Проблема возникает, если для модели используется больше одной текстуры. Даже в этом случае Unity создаст всего один материал, в котором будет только одна текстура. Может в следующих версиях Unity процесс импортирования переработают и все материалы и текстуры будут цепляться автоматически без специальной подготовки, но пока придется поработать “напильником”:
1. Создаем в Unity новый проект, назовем его “Cube-Multitexture”.
2. Запускаем Blender и подготавливаем сцену – удаляем оттуда все лишнее и добавляем несколько источников света, так, чтобы сцена была освещена со всех сторон (я добавил 8 точечных источников света) и сохраняем файл в папке проекта Unity.
3. В папке проекта Unity (там, где находится файл .blend), создаем папку Textures и сохраняем туда 6 текстур (эти текстуры я создал в Gimp для данного примера):

4. Возвращаемся в Blender и добавляем на сцену куб (Shift+A -> Mesh -> Cube).
5. Переключаем сцену в режим “UV Editing”
6. В правом окне (редактирования) выделяем грань куба (или несколько граней) и нажимаем клавишу U -> Unwrap
7. В левом окне (текстуры) выбираем файл текстуры и настраиваем расположение и размеры текстуры:

8. Повторяем шаги 6 и 7 для всех граней куба.
9. Сохраняем наш .blend – файл. Unity это увидит и автоматически добавит куб в проект вместе с материалами.

В редакторе Unity для модельки куба в инспекторе должен быть выбран режим импортирования материалов Material Naming: “By Base Texture Name”:

Это было руководство с сайта edy.
В случае такого способа импортирования модель получает правильное наименование материалов, но она становится развернутой на 90 градусов по оси X:

Если вместо сохранения файла .blender в папку с Unity-проектом воспользоваться экспортом в Wavefront .obj, то такой проблемы уже не будет, однако в этом случае придется поменять названия созданных материалов (или хотя бы одно):

Результат: