Как мне импортировать модели из моего 3D редактора?
Для импорта 3D модели в Unity вы должны перетащить файл модели в окно проекта.
В инспекторе > вкладка Model Unity поддерживает импорт моделей из всех популярных 3D редакторов.
Особенности импорта из разных 3D пакетов смотрите на следующих страницах:
Текстуры
- Храните текстуры в папке под названием Textures рядом с экспортируемым мешем в вашем проекте Unity. Это позволит Unity найти текстуру и автоматически подключить её к созданному материалу. Для получения дополнительной информации, обратитесь к разделу Текстуры.
3D форматы
Импортирование мешей в Unity может быть выполнено с помощью двух основных типов файлов:
- Экспортированные 3D форматы файлов, такие как .FBX или .OBJ
- Собственные файлы 3D приложений, например такие как .Max и .Blend файлы из 3D Studio Max и Blender.
Любой из этих типов позволит вам добавлять свои меши в Unity, но есть соображения относительно того типа, который вы выберите:
Экспортированные 3D файлы
Unity может читать .FBX, .dae (Collada), .3DS, .dxf и .obj файлы, obj или Collada экспортеры могут быть найдены для многих приложений, точно также как FBX экспортеры могут быть найдены здесь
Преимущества:
- Экспортируйте только необходимые данные
- Проверяемые данные (перед импортированием в Unity, переимпортируйте в 3D пакет)
- Как правило файлы меньшего размера
- Поддерживает модульный подход — к примеру разными компонентами для интерактивности и типов коллизий
- Поддерживает другие 3D пакеты, чьи форматы не поддерживаются у нас напрямую
Недостатки:
- Может замедлять процесс прототипирования и итераций
- Легче потерять след между исходной (рабочий файл) и игровой версией данных (к примеру экспортированный FBX файл)
Собственные файлы 3D приложений
Unity также может импортировать, путём конвертации, файлы: Max, Maya, Blender, Cinema4D, Modo, Lightwave и Cheetah3D , например, .MAX, .MB, .MA и др.
Преимущества:
- Быстрый процесс итерации (для повторного импортирования в Unity сохраните исходный файл)
- Изначально просто
Недостатки:
- На машинах, задействованных в работе над Unity проектом, должны быть установлены лицензионные копии данного программного обеспечения
- Файлы, содержащие ненужные данные могут стать неоправданно большими
- Большие файлы могут замедлить процесс автосохранения
- Меньше проверяется, поэтому труднее устранить ошибки
Модели
Файлы моделей, размещенные в папке Assets внутри проекта Unity, автоматически импортируются и сохраняются как ассеты Unity.
Файл модели может содержать 3D модель персонажа, здания или части мебели. Модель импортируется в виде набора ассетов. В окне Project(проект) главный импортированный объект представляется в виде Model Prefab(префаб модели). Обычно также существует несколько Mesh объектов, на которые ссылается Model Prefab.
Файл модели может также содержать данные анимации, которые можно использовать для анимации данной модели или других моделей. Данные анимации импортируется как один или несколько Анимационных Клипов.

Настройки импорта для мешей
Import Settings для модели будут показаны в закладке Model инспектора FBX импортера, когда модель выделена. Это влияет на меш, его нормали и импортированные материалы. Настройки применяются для каждого ассета на диске, поэтому, если вам нужен ассет с другими настройками, создайте (и соответственно переименуйте) копию файла.
Хотя изначально настроек по умолчанию может быть достаточно, будет лучше, если вы изучите список настроек, перечисленных ниже. Они могут помочь определить, что вы желаете сделать с игровым объектом.
Некоторые общие корректировки, для примера, могут быть следующими:

- Scale — это фактор масштаба используемый для компенсации разницы в единицах измерения между Unity и инструментом 3d моделирования — он меняет масштаб всего файла. Обычно, можете просто установить 1. Заметьте, что физический движок Unity смасштабирован так, что 1 единица измерения эквивалентна 1 метру. Это важно, так как если вы захотите получить корректное физическое поведение, вам следует получить корректно отмасштабированную модель в оригинальном приложении для моделирования. Если же этого нельзя сделать или у вас нет контроля над модификацией меша, масштаб модели может быть откорректирован здесь.
- Generate colliders — эта опция создаст сетку коллизии чтобы позволить вашей модели сталкиваться с другими объектами.
- Material Naming and Search — эта опция поможет автоматически настроить ваши материалы и определить местоположение текстур
| Свойство: | Функция: | |
|---|---|---|
| Меши | ||
| Scale Factor | Физическая система Unity предполагает, что 1 метр в игровом мире будет равен 1 единице в импортируемом файле. Если вы предпочитаете моделировать в другом масштабе, тогда вы можете компенсировать разницу здесь. По-умолчанию, .fbx, .max, .jas и .c4d файлы имеют масштаб 0.01, .mb, .ma, .lxo, .dxf, .blend и .dae масштаб 1.0, а .3ds файлы имеют масштаб 0.1. | |
| Mesh Compression | Увеличение этого значение уменьшит размер файла для меша, но может привести к неровностям. Лучше всего поднять значение настолько высоко, насколько это возможно без появления большой разницы с несжатой версией. Это полезно для оптимизации размера игры. | |
| Read/Write Enabled | Включает возможность записи меша в процессе исполнения, так что вы можете модифицировать данные; это создает копию в памяти. Когда эта опция выключена, это экономит память, так как Unity может выгружать копию данных меша в процессе игры. Однако, если вы масштабируете или инстанциируете меши в процессе исполнения с неравномерным масштабом, может потребоваться включение “Read/Write Enabled” в их настройках импорта. Причина этого в том, что неравномерный масштаб требует чтобы данные меша сохранялись в памяти. Обычно это определяется во время сборки, но с мешами, которые масштабируются или инстанциируются в процессе исполнения, вам нужно задавать это самостоятельно. Иначе они могут не отображаться корректно в игровых сборках. | |
| Optimize Mesh | Эта опция определяет порядок, в котором будут перечислены треугольники меша. | |
| Import Blendshapes | This option allows BlendShapes to be imported with your mesh. | |
| Generate Colliders | Если активна эта опция, ваш меш будет импортирован с автоматически присоединенной сеткой столкновений. Эта опция полезна для быстрой генерации сетки столкновений для геометрии окружения, но ее нужно избегать для объектов, которые будут перемещаться. | |
| Swap UVs | Используйте эту опцию если объект с наложенными картами освещения использует неправильные UV каналы. Ваши первичные и вторичные UV каналы будут поменяны между собой. | |
| Generate Lightmap UVs | Используйте эту опцию для создания второго UV канала, который будет использоваться для карт освещения. | |
| Нормали и касательные | ||
| Normals | Определяет должны ли, и если да, то как, вычисляться нормали. Это полезно для оптимизации размеров игры. | |
| Import | Настройка по умолчанию. Импортирует нормали из файла. | |
| Calculate | Вычисляет нормали, основываясь на Smoothing angle . Если выбран именно этот метод, Smoothing Angle становится включенным. | |
| None | Дезактивирует нормали. Используйте данную опцию если меш ни использует карты нормалей, ни подвергается динамическому освещению. | |
| Tangents | Определяет должны ли, и если да, то как, вычисляться касательные и бинормали. Это полезно для оптимизации размеров игры. | |
| Import | Касательные и бинормали импортируются из файла. Эта опция доступна только для FBX, Maya и 3dsMax файлов и только когда нормали также загружены из файла. | |
| Calculate | Настройка по умолчанию. Вычисляет касательные и бинормали. Эта опция доступна только когда нормали или импортированы, или вычислены. | |
| None | Отключает касательные и бинормали. Меш не будет иметь касательных, поэтому шейдеры, работающие с картами нормалей, не будут доступны. | |
| Smoothing Angle | Данная опция устанавливает насколько острой должна быть грань, чтобы считаться жестким ребром. Это также используется чтобы разделить касательные карты нормалей. | |
| Split Tangents | Активируйте эту опцию, если карта нормалей освещения разбита швами на вашем меше. Обычно это применимо только к персонажам. | |
| Материалы | ||
| Import Materials | Отключите эту опцию, если вы не хотите чтобы генерировались материалы. Вместо этого будет использован материал Default-Diffuse. | |
| Material Naming | Определяет как именуются материалы Unity: | |
| By Base Texture Name | Имя диффузной текстуры импортированного материала, которое будет использовано для названия материала Unity. В случае, когда диффузная текстура материала не задана, Unity будет использовать имя импортированного материала. | |
| From Model’s Material | Для названия Unity материала будет использовано имя импортированного материала. | |
| Model Name + Model’s Material | Для названия Unity материала будет использовано сочетание имени файла модели и импортированного материала. | |
| Material Search | Определяет, где Unity будет пытаться найти существующие материалы, используя имя, заданное параметром Material Naming : | |
| Local | Unity будет пытаться найти существующий материал только в “локальной” папке Materials, например, поддиректория Materials, которая расположена в той же директории, что и файл модели. | |
| Recursive-Up | Unity будет пытаться найти существующие материалы во всех поддиректориях Materials во всех родительских папках вплоть до папки Assets. | |
| Everywhere | Unity будет пытаться найти существующие материалы во всех папках Unity проекта. | |
Смотрите также
- Моделирование оптимизированных персонажей
- Настройки импорта меша
- Как мне исправить вращение импортированной модели?
Как импортировать в unity модель fbx (из skp)
Есть модель арены. Изначально она была в формате skp, но я конвертировала ее в fbx. И unity на нее не ругается.
Но я ругаюсь на unity, так как когда я ее переношу на сцену, она как будто пустая. Если использовать онлайн просмотр fbx файлов — тоже ничего не показывает. При этом изначальный skp файл в sketch up открывается. Как перенести модель skp/fbx в unity? И почему fbx viewer ничего не показывает? Это проблема в fbx файле? Как тогда нормально преобразовать skp в fbx? Заранее спасибо! Настройки модели в unity:
Спасите меня, пожалуйста
Отслеживать
задан 15 ноя 2022 в 6:12
176 2 2 серебряных знака 14 14 бронзовых знаков
Попробуй другой конвертор
15 ноя 2022 в 18:30
Уже штук пять перепробовала((. Попробую еще. Спасибо за попытку помочь
15 ноя 2022 в 19:18
А можете посоветовать какой-нибудь проверенный конвертор?
15 ноя 2022 в 19:18
Вы используете скетчап, чтобы создать эту skp модель или вы её скачали? Если первое то можно экспортировать в fbx сразу из приложения, но возможно это только в про версии, или можно экспортировать в dae или какой то другой вариант и попробовать конвертировать уже его.
16 ноя 2022 в 4:42
Получилось. Большое спасибо! Очень выручил
ОСОБЕННОСТИ ПОДГОТОВКИ 3D-ОБЪЕКТОВ, СМОДЕЛИРОВАННЫХ В BLENDER, ДЛЯ ИМПОРТА В UNITY 3D Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гараева Энже Ринатовна, Бикмуллина Ильсияр Ильдаровна, Барков Игорь Александрович
При разработке игры в Unity с использованием 3D-моделей возникла необходимость создания собственных 3D-моделей , поэтому были проанализированы собственные возможности Unity на предмет создания 3D-моделей . Так как возможности Unity как среды для создания 3D-моделей ограничены, были рассмотрены сторонние программные продукты, предназначенные для моделирования 3D-объектов . В результате анализа для разработки объектов был выбран 3D-редактор Blender , в связи с чем возникла необходимость изучения особенностей импорта готовых объектов из Blender в Unity . Решение использования в Unity 3D-моделей , созданных в Blender , исходит из ограниченности возможностей Unity в сфере 3D-моделирования. Из-за чего было сформулировано руководство, в котором описано, на что необходимо обращать внимание для подготовки объектов из Blender в Unity . В данной статье приводится краткое описание профессионального инструмента для разработки 3D-моделей и игрового движка, в которое предполагается экспортирование полученных 3D-моделей , включая краткую историческую справку о них, их основные возможности, особенности, благодаря которым они выигрывают среди прочих программных продуктов, предназначенных для 3D-моделирования и создания игр, а также сведения о том, в каких областях и насколько широко данные продукты используются. Рассмотрены основные ошибки, возникающие при импорте готовых объектов, а также описаны особенности подготовки готовых моделей из Blender в Unity . Кроме того, рассмотрены причины, по которым требуется использование нескольких программных продуктов для создания полноценного продукта. Представлено описание процесса экспорта в рассматриваемом инструменте. Подробно разобран поэтапный процесс подготовки объекта к экспорту в Blender . Порядок и особенности подготовки к экспорту объектов из Blender в Unity рассмотрены на примере подготовки и экспорта смоделированной в Blender модели игрушечного медведя. Для этого был проведён детальный анализ предметной области, результаты которого представлены в данной статье в виде поэтапного описания процесса подготовки объекта к экспорту .
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гараева Энже Ринатовна, Бикмуллина Ильсияр Ильдаровна, Барков Игорь Александрович
Вопросы проектирования и создания тренажеров машин и механизмов
Автоматизация проектирования геометрической модели сети дорог с помощью ГИС-данных
Анализ технологий для отображения трехмерных объектов в Интернете
ОБЗОР ФРЕЙМВОРКОВ ПО РАБОТЕ С ФАЙЛАМИ BLENDER,СОЗДАНИЕ WEBGL ОБЪЕКТОВ
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ ДИНАМИЧЕСКИХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ СРЕДЫ РАЗРАБОТКИ КОМПЬЮТЕРНЫХ ИГР UNITY
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
FEATURES OF PREPARING 3D OBJECTS MODELED IN BLENDER FOR IMPORT INTO UNITY 3D
When developing a game in Unity using 3D models, it became necessary to create your own 3D models, so Unity ‘s own capabilities were analyzed for creating 3D models. Since Unity ‘s capabilities as a 3D modeling environment are limited, third-party software products designed to model 3D objects were considered. As a result of the analysis, the 3D blender editor was chosen for the development of objects, and therefore there was a need to study the features of importing finished objects from Blender to Unity . Unity ‘s decision to use 3D models created in Blender is based on Unity ‘s limited 3D modeling capabilities. Because of this, a guide was formulated, which describes what you need to pay attention to in order to prepare objects from Blender to Unity . This article provides a brief description of the professional tool for developing 3D models and game engine, which is supposed to export the resulting 3D models, including a brief historical background about them, their main features, features, thanks to which they win among other software products designed for 3D modeling and game creation, as well as information about what areas and how widely these products are used. The main errors that occur when importing ready-made objects are considered, as well as the features of preparing ready-made models from Blender to Unity are described. In addition, the reasons why it is necessary to use several software products to create a full-fledged product are considered. The description of the export process in the considered tool is presented. The step-by-step process of preparing an object for export to Blender is analyzed in detail. The order and features of preparation for exporting objects from Blender to Unity are considered on the example of preparation and export of a model of a toy bear modeled in Blender . For this purpose, a detailed analysis of the subject area was carried out, the results of which are presented in this article in the form of a step-by-step description of the process of preparing the object for export.
Текст научной работы на тему «ОСОБЕННОСТИ ПОДГОТОВКИ 3D-ОБЪЕКТОВ, СМОДЕЛИРОВАННЫХ В BLENDER, ДЛЯ ИМПОРТА В UNITY 3D»
DOI 10.21672/2074-1707.2020.52.4.066-074 УДК 004.94
ОСОБЕННОСТИ ПОДГОТОВКИ 3D-ОБЪЕКТОВ, СМОДЕЛИРОВАННЫХ В BLENDER, ДЛЯ ИМПОРТА В UNITY 3D
Статья поступила в редакцию 15.09.2020, в окончательном варианте — 18.09.2020.
Гараева Энже Ринатовна, Казанский национальный исследовательский технический университет им. А.Н. Туполева — КАИ, 420111, Российская Федерация, г. Казань, ул. К. Маркса, 10, магистрант, e-mail: ange0112@yandex.ru
Бикмуллина Ильсияр Ильдаровна, Казанский национальный исследовательский технический университет им. А.Н. Туполева — КАИ, 420111, Российская Федерация, г. Казань, ул. К. Маркса, 10, кандидат технических наук, доцент, ORCID: 0000-0002-0194-2687, e-mail: elsiyar-b@yandex.ru Барков Игорь Александрович, Казанский национальный исследовательский технический университет им. А.Н. Туполева — КАИ, 420111, Российская Федерация, г. Казань, ул. К. Маркса, 10, доктор технических наук, профессор
При разработке игры в Unity с использованием 3D-моделей возникла необходимость создания собственных 3Б-моделей, поэтому были проанализированы собственные возможности Unity на предмет создания 3D-модепей. Так как возможности Unity как среды для создания 3D-моделей ограничены, были рассмотрены сторонние программные продукты, предназначенные для моделирования 3D-объектов. В результате анализа для разработки объектов был выбран 3D-редактор Blender, в связи с чем возникла необходимость изучения особенностей импорта готовых объектов из Blender в Unity. Решение использования в Unity 3D-моделей, созданных в Blender, исходит из ограниченности возможностей Unity в сфере 3D-моделирования. Из-за чего было сформулировано руководство, в котором описано, на что необходимо обращать внимание для подготовки объектов из Blender в Unity. В данной статье приводится краткое описание профессионального инструмента для разработки 3D-моделей и игрового движка, в которое предполагается экспортирование полученных 3D-моделей, включая краткую историческую справку о них, их основные возможности, особенности, благодаря которым они выигрывают среди прочих программных продуктов, предназначенных для 3D-моделирования и создания игр, а также сведения о том, в каких областях и насколько широко данные продукты используются. Рассмотрены основные ошибки, возникающие при импорте готовых объектов, а также описаны особенности подготовки готовых моделей из Blender в Unity. Кроме того, рассмотрены причины, по которым требуется использование нескольких программных продуктов для создания полноценного продукта. Представлено описание процесса экспорта в рассматриваемом инструменте. Подробно разобран поэтапный процесс подготовки объекта к экспорту в Blender. Порядок и особенности подготовки к экспорту объектов из Blender в Unity рассмотрены на примере подготовки и экспорта смоделированной в Blender модели игрушечного медведя. Для этого был проведён детальный анализ предметной области, результаты которого представлены в данной статье в виде поэтапного описания процесса подготовки объекта к экспорту. Ключевые слова: 3Б-объекты, импорт, экспорт, 3D-модели, моделирование, Unity, Blender
FEATURES OF PREPARING 3D OBJECTS MODELED IN BLENDER FOR IMPORT INTO UNITY 3D
The article was received by the editorial board on 15.09.2020, in the final version — 18.10.2020.
Garayeva Enzhe R., Kazan National Research Technical University named after A.N. Tupolev -KAI, 10 K. Marx St., Kazan, 420111, Russian Federation, master’s student, e-mail: ange0112@yandex.ru
Bikmullina Ilsiyar I., Kazan National Research Technical University named after A.N. Tupolev -KAI, 10 K. Marx St., Kazan, 420111, Russian Federation,
Cand. Sci. (Engineering), Associate Professor, e-mail: elsiyar-b@yandex.ru
Barkov Igor A., Kazan National Research Technical University named after A.N. Tupolev — KAI, 10 K. Marx St., Kazan, 420111, Russian Federation, Doct. Sci. (Engineering), Professor
When developing a game in Unity using 3D models, it became necessary to create your own 3D models, so Unity’s own capabilities were analyzed for creating 3D models. Since Unity’s capabilities as a 3D modeling environment are limited, third-party software products designed to model 3D objects were considered. As a result of the analysis, the 3D blender editor was chosen for the development of objects, and therefore there was a need to study the features of importing finished objects from Blender to Unity. Unity’s decision to use 3D models created in Blender is based on Unity’s limited 3D modeling capabilities. Because of this, a guide was formulated, which describes what you need to pay attention to in order to prepare objects from Blender to Unity. This article provides a brief description of the professional tool for developing 3D models and game engine, which is supposed to export the resulting
3D models, including a brief historical background about them, their main features, features, thanks to which they win among other software products designed for 3D modeling and game creation, as well as information about what areas and how widely these products are used. The main errors that occur when importing ready-made objects are considered, as well as the features of preparing ready-made models from Blender to Unity are described. In addition, the reasons why it is necessary to use several software products to create a full-fledged product are considered. The description of the export process in the considered tool is presented. The step-by-step process of preparing an object for export to Blender is analyzed in detail. The order and features of preparation for exporting objects from Blender to Unity are considered on the example of preparation and export of a model of a toy bear modeled in Blender. For this purpose, a detailed analysis of the subject area was carried out, the results of which are presented in this article in the form of a step-by-step description of the process of preparing the object for export.
Keywords: 3D objects, import, export, 3D models, modeling, Unity, Blender
Graphical annotation (Графическая аннотация)
Введение. Сегодня уровень развития информационных технологий предоставляет широкие возможности и богатый арсенал программных продуктов, языков программирования и технологий для успешного решения задач по 3D-моделированию и созданию 3D-rnp и видео с использованием 3D-объектов. Одним из получивших широкое распространение программных продуктов, позволяющим легко моделировать и редактировать 3D-модели, предназначенные для использования в играх, видео, рекламе, является Blender [1].
Blender — программный продукт, предназначенный для создания 3D-визуализаций: от статичных объектов до редактирования видео, разработанный анимационной студией NeoGeo [2]. В 1995 году компания начала переписывание имеющихся у них 3D-инструментов, что стало началом создания Blender, последняя же выпущенная версия Blender 2.80 вышла на рынок в июле 2019 года. Одной из основных особенностей Blender является то, что он имеет открытый исходный код и хорошо подходит не только частным лицам, но и небольшим студиям, которые могут создавать 3Б-видеоролики, имея в своем арсенале один лишь Blender. Данный продукт поддерживает такие инструменты, как рендеринг, моделирование, анимацию и перенастройку созданных объектов, композинг, текстурирование и другие типы симуляций. Также Blender предоставляет пользователю случай расширять возможности созданных моделей при помощи языка Python.
Если говорить о создании игр с использованием 3D-моделей, то хочется выделить для этих целей Unity 3D. Blender имеет свой игровой движок, однако возможности, предоставляемые Unity, являются более широкими в этом плане.
Unity — мощный межплатформенный продукт для создания компьютерных игр [3]. Он поддерживает создание игр для более чем 20 операционных систем. Первый выпуск продукта состоялся в 2005 году, последняя версия датируется апрелем 2019 года. Основным достоинством продукта является наличие визуальной среды разработки, межплатформеная поддержка и модульная
система компонентов. Unity позволяет создавать отличные игры и даже имеет свой редактор 3D -объектов, однако на сегодняшний день возможности встроенного 3D-редактора достаточно ограничены [4], поэтому требуют разработки сложных 3D-объектов в сторонних программных продуктах, таких как Blender. Unity является коммерческим продуктом для бизнеса, однако предоставляет бесплатную версию продукта для обучения. Для создания 3D-mpbi в Unity необязательно хорошо знать программирование, а необходимый программный код пишется на C#, при необходимости их можно скачать с AccetStore.
С учётом вышеизложенного выбор программных продуктов Blender и Unity 3D для моделирования 3D-объектов и создания компьютерной игры представляется очевидным.
Разработка технологии создания 3D-объектов с использованием высокополигонального моделирования. Если при создании объектов с помощью примитивов или экструдированием количество полигонов мы примерно можем контролировать сразу, то, как говорилось ранее, при скульптурировании количество полигонов может быть огромным, и после окончания моделирования формы объекта необходимо их количество сокращать. Таким образом, при создании объектов с использованием высокополигональной модели должен быть продуманный технологический процесс, что позволит существенно сократить сроки разработки путем уменьшения ошибок и, соответственно, временем на их исправление. Кроме того, надо понимать, что, как правило, высокополигональное моделирование используется для создания более сложных объектов, таких как персонажи, поэтому для анимирования таких объектов требуется создание скелета, по которому можно будет управлять моделью при создании анимации.
Ниже на рисунке 1 представлена схема этапов создания 3D-объекта в редакторе.
Рисунок 1 — Схема технологического процесса создания объекта
Представленная схема применима и при создании ЗБ-объектов с использованием только низкополигональной модели при исключении или смене местами некоторых этапов. Таким образом, местами могут быть сменены даже первые 2 пункта, этому может способствовать ряд различных факторов, например:
1) создание ряда ЗБ-объектов, имеющих сходное строение тела;
2) необходимость увеличения детализации и реалистичности уже имеющихся объектов.
Описание метода подготовки импорта в игровой движок. Завершающим шагом при создании ЗБ-объекта под проект является его импорт в среду использования. Как правило, направления осей координат, масштабы и правильная ориентация объектов в пространстве различаются в ЗБ-редакторе и игровом движке. Таким образом, для корректного импорта объекта в игровой движок необходимо выполнить его подготовку к экспорту из ЗБ-редактора в самом Blender.
Описание метода настройки шейдеров. Наложение созданных текстурных карт на объект и настройка материалов осуществляется с помощью редактора шейдеров. В Blender есть возможность создания встроенных шейдеров, в Unity для этих целей можно воспользоваться встроенными в игровой движок шейдерами или создать свои с помощью редактора шейдеров Shader Forge, который является плагином Unity. Так как Unity не поддерживает созданные процедурно текстуры из Blender, то настройку шейдером будем делать в Unity, используя заранее подготовленные текстурные карты [5].
Совместимость форматов Blender и Unity. Blender предоставляет широкие возможности для моделирования, одним из преимуществ этого программного продукта является то, что в нем собраны возможности для моделирования различными методами: это и инструменты для скульптурирования, и возможности работы со сплайнами, кривыми Безье, и полигональное моделирование. Каждый из методов имеет свои преимущества и недостатки. В результате моделирования мы получаем модель, которую можем в этом же редакторе оттекстурировать, а также задать анимацию. Полученную модель можно использовать как для создания видео или статичной картинки в самом Blender, так и экспортировать модель в другие программные продукты, где использовать для конечных целей. Например, в Unity для использования модели при создании компьютерной игры.
Unity поддерживает различные форматы для импорта 3D-моделей, включая такие частные форматы программ для моделирования, как .blend (расширение Blender), .mb (расширение Maya), .c4d (расширение Cinema 4D). Кроме того, из Blender можно экспортировать не только отдельные объекты, но и целые сцены.
Если говорить о выборе формата для экспорта, то он зависит в первую очередь от личных предпочтений моделлера. Например, форматы .FBX, .dae (Collada), .3DS, .dxf и .obj являются общими экспортированными ЗБ-форматами. Преимуществами их использования является следующее:
• такие файлы имеют меньший вес относительно файлов собственного формата ЗБ-редактора;
• такие файлы позволяют использовать в Unity модели, которые были созданы в программных продуктах, собственные форматы которых не поддерживаются в Unity.
Но недостатком выбора таких форматов может являться то, что при необходимости изменения модели, необходимо возвращаться к исходному файлу в собственном формате 3D-редактора.
Если использовать в Unity модели в формате частного формата (.blend), то это определенно облегчает процесс редактирования объектов, а также снижает риск потери исходного файла объекта, так как импортированный в Unity файл можно будет выгрузить в редактор. Однако такие файлы могут иметь больший вес и содержать лишние компоненты.
Но все же при экспорте объектов важным является не расширение импортируемого файла, а предварительная подготовка созданной модели.
В руководстве Unity ЗБ есть следующие подсказки по подготовке объектов к экспорту:
для мешей необходимо почистить историю их построения, удалить неоднородные рациональные безьесплайны, неоднородные рационально сглаживаемые сетки, а также проверить, чтобы все полигоны являлись трех- или четырехугольными;
• текстуры должны загружаться либо из папки проекта Unity, либо из папки \textures проекта;
• также необходимо проверить необходимость групп сглаживании и/или сглаживаний мешей.
Кроме этого, в руководстве Unity есть предупреждение, что камеры и источники света в Unity импортируются некорректно.
Если говорить об экспорте объектов из Blender в Unity, то в первую очередь стоит сказать, что в Unity можно импортировать:
• все узлы с положением, вращением и масштабом. Центры вращения и имена тоже импортируются;
• меши с вершинами, полигонами, треугольниками, UV и нормалями; кости;
• skinned меши (меши с привязкой к костям); анимации.
Разработка технических рекомендаций подготовки объекта к импорту в игровой движок.
Blender предоставляет широкие возможности для моделирования, одним из преимуществ этого программного продукта является то, что в нем собраны возможности для моделирования различными методами: это и инструменты для скульптурирования, и возможности работы со сплайнами, кривыми Безье, и полигональное моделирование. Каждый из методов имеет свои преимущества и недостатки. В результате моделирования мы получаем модель, которую можем в этом же редакторе оттекстурировать, а также задать анимацию.
Перед экспортом объекта необходимо провести некоторые подготовительные работы:
1) проверить размеры созданного 3D-объекта. Необходимо учитывать, что в Blender единицы измерения по умолчанию одни, а в Unity — другие. Несомненно, размеры объекта можно подгонять и в игровом движке, однако стоит учитывать, что при уменьшении или увеличении размеров объекта могут вылезти недостатки, которые при изначальных размерах не были заметны;
2) проверить направления нормалей. Как правило, в Blender в процессе создания видны полигоны с неправильным направлением нормалей, однако их можно не заметить, если не просмотреть объект со всех сторон. Данную ошибку можно исправить в игровом движке, однако подобные методы будут ресурсозатратными, поэтому лучше проводить пересчет нормалей в 3D-редакторе;
3) проверить направления локальных осей 3D-редактора и игрового движка. Одной из главных проблем при импорте моделей является путаница осей, в которых экспортируется готовый объект. В Blender осью, направленной вверх, является ось z, а осью, определяющей направление «лица» модели (forward, перед), является ось -y. Это можно увидеть на рисунке 1, а в Unity вертикальной осью является ось y, а «передом» модели — ось z. Таким образом, для правильного экспорта в Unity 3D-модели в Blender модель должна смотреть лицом в направлении оси -y (минус у), а верхушкой — в направлении положительной оси z;
4) трансформации 3D-модели должны завершаться сбросом углов поворота модели на значения по умолчанию. Для выполнения сброса углов поворота и совмещения локальных осей 3D-модели (или оси сразу нескольких 3D-моделей) с глобальными осями координат необходимо выбрать 3D-модель в режиме объекта и нажать сочетание клавиш Ctrl+A, вызвав в открывшемся меню Apply. В этом меню необходимо выбрать пункт «Rotation». В меню Applay, помимо сброса поворота модели и всего остального, присутствует ещё и пункт сброса масштаба модели. Это связано с тем, что после масштабирования 3D-модели на сцене в режиме объекта значение параметров масштабирования также необходимо сбросить на значения по умолчанию, выбрав в упомянутом выше меню «Scale»;
5) проверить местоположение точки Origin. Для объектов, не имеющих скелета, скорее всего, точка Origin была пересчитана перед созданием им анимации, однако если речь о персонажах, то в их анимации точка Origin не принимала участия, а для правильной работы персонажа в игровом движке необходимо точку переместить на уровень ступней персонажа, таким образом персонажи будут ходить по плоскости, а не проваливаться под нее;
6) почистить историю, чтобы при экспорте не увеличивался размер файла ненужной информацией;
7) проверить правильность имен импортируемых объектов. Правильное наименование экспортированных объектов из 3D-редактора необходимо для ускорения процесса настройки объектов в игровом движке. Названия объектов следует писать на английском языке без дополнительных символов в начале (например, тире), так как списки объектов в игровых движках располагаются, как правило, в алфавитном порядке;
8) следует соблюдать чистоту сцены. Пустые или лишние скрытые объекты могут импортироваться в файл FBX вместе с объектом. В результате чего размер файла увеличится и возникнет неудобство в работе с ним в игровом движке;
9) следует сохранять текстурные карты в правильном формате. Предпочтительным форматом текстурных карт является PNG. Данный формат прост и удобен в редактировании, корректно сохраняет картинку и имеет альфа-канал. Формат PSD также поддерживается игровыми движками (автоматически сливает слои), удобен, когда текстура находится в процессе изготовления, но для использования в игровом движке следует заменить этот тяжелый многослойный формат, так как он сильно увеличивает размер проекта игры. Более подробно о чтении форматов текстур игровыми движками можно прочитать в документации к ним;
10) проверить созданные зацикленные анимации — первый и последний кадр должны совпадать. Малейшее отклонение по оси, направленной вверх, (как правило, оси Y) может привести к постепенному проваливанию или поднятию персонажа относительно плоскости в процессе игры;
11) проверить объекты на наличие полигонов, просматриваемых с двух сторон;
12) проверить растровую карту на соответствие текстур UV развертке в местах близкого расположения частей с разными текстурами;
13) проверить в анимации корректность перемещения полигонов.
Ошибки при экспорте. Ошибки в переопределении осей координат. Одной из главных проблем при импорте моделей является путаница осей, в которых экспортируется готовый объект.
В Blender осью, направленной вверх, является ось z, а осью, определяющей направление «лица» модели (forward, перед), является ось -у. Это можно увидеть на рисунке 2, а в Unity вертикальной осью является ось у, а «передом» модели — ось z (рис. 3).
Рисунок 2 — Направления осей в Blender
Таким образом, для правильного экспорта в Unity 3D-модели в Blender модель должна смотреть лицом в направлении оси -y (минус у), а верхушкой — в направлении положительной оси z.
Но и здесь есть свои нюансы, когда объект поворачивается в объектовом режиме, то изменяются направления его локальных осей. Поэтому подобные трансформации 3D-модели должны завершаться сбросом углов поворота модели на значения по умолчанию.
Для выполнения сброса углов поворота и совмещения локальных осей 3D-модели (или оси сразу нескольких 3D-моделей) с глобальными осями координат необходимо выбрать 3D-модель в режиме объекта и нажать сочетание клавиш Ctrl+A, вызвав в открывшемся меню Apply. В этом меню необходимо выбрать пункт «Rotation». В меню Applay, помимо сброса поворота модели и всего остального, присутствует ещё и пункт сброса масштаба модели. Это связано с тем, что после масштабирования 3D-модели на сцене в режиме объекта значение параметров масштабирования также необходимо сбросить на значения по умолчанию, выбрав в упомянутом выше меню «Scale».
Однако Blender, несмотря на подобные подготовки объекта, при экспорте может иметь проблемы с поворотом модели, то есть, даже проделав сброс углов и совмещение осей, может оказаться так, что в результате экспорта объекта в Unity модель будет смотреть лицом в сторону отрицательной оси y, а «верх» — в сторону z. Это связано с тем, что в настройках осей для экспортируемой модели в Blender по умолчанию стоит Forward: -y, Top: z, то есть оси перевернуты, и Blender предлагает в качестве «лица» модели использовать отрицательное направление оси y, а в качестве «верха» — ось z. Поэтому необходимо изменять их на систему координат Unity, выставив в настройках для осей нужные параметры, и только после этого экспортировать модель.
Рисунок 3 — Направления осей в Blender
Но и это может не помочь, поэтому следует повернуть 3D-модель следующим образом:
1 шаг. z — верх, -z — низ модели, лицо — в направлении оси -у.
2 шаг. После чего выбрать 3D-модель вида «справа»
3 шаг. Необходимо повернуть ее вокруг оси x по часовой стрелке на 90 градусов. Это выполняется нажатием на клавишу «R», затем нажимается клавиша «X» для выбора оси, затем вводится значение 90 — угол поворота, подтверждение выполняется нажатием клавиши Enter.
4 шаг. Теперь необходимо сбросить значения поворота и масштаба модели на значения по умолчанию и повернуть модель в исходное положение (на минус 90 градусов вокруг оси x), и только после этого можно смело экспортировать 3D-модель для использования в Unity3D.
Ошибки при экспорте. Ошибки, связанные с точкой Origin. Кроме осей, при экспорте объектов важным является точка Origin — в Unity она является центральной или нулевой точкой модели, относительно которой производится поворот 3D-модели. Если импортировать в Unity одну и ту же модель 2 раза, но в первый раз точку Origin оставить в середине нижней границы объекта по умолчанию, а во второй раз объект сместить относительно этой точки, тогда при вращении объекта в Unity модели будут вести себя по-разному. Первый будет вращаться на месте, а второй -вокруг невидимого объекта. На самом деле оба объекта будут вращаться вокруг точки Origin, однако для первого объекта она будет являться осью самого объекта, а для второго — точкой, вокруг которого ходит объект. Такому объекту очень сложно описать функции движения. Поэтому для устранения проблемы точку Origin необходимо будет сместить, что можно сделать, как вернув модель в Blender, так и в Unity при описании скриптов.
Кроме прямых способов редактирования точки Origin, можно создать «костыль» для таких объектов. Для этого на сцене создается пустышка, и пустышку назначают объектом-родителем такой неправильно экспортированной 3D-модели, а саму 3D-модель, соответственно, дочкой объекта-пустышки. Но такой костыль может оказаться весьма громоздким, поэтому проще всего исправлять такую ошибку на этапе моделирования и подготовки к экспорту.
Также существует ошибка, когда точка Origin находится не по нижнему краю объекта, а в середине объема фигуры, тогда после экспорта в Unity модель будет проваливаться под землю. В таких случаях также необходимо исправлять расположение точки Origin.
Особенности текстурирования. Как правило, задание материалов и текстурирование — это последний шаг при создании 3D-модели, и при экспорте/импорте 3D-модели из Blender в Unity3D хочется, чтобы материалы и карты нормалей сразу назначались для модели.
Как говорилось ранее, текстуры должны загружаться либо из папки проекта Unity, либо из папки «\textures» проекта, поэтому как бы мы ни старались, сохранить модель и текстуры единым файлом не получится. Однако это не значит, что процесс подготовки текстур слишком сложный.
Для объекта в свойствах в разделе материала необходимо добавить новый материал.
После этого необходимо создать текстуру материалу и выбрать изображение, которое следует использовать для нее. В Blender есть существенное ограничение, за один раз можно запечь только 1 тип материала: прозрачность, глянец, свечение и т.д. Поэтому если объект сложный — требует разных текстур, то необходимо будет воспользоваться дополнительным программным обеспечением с более широкими возможностями для текстурирования объекта.
После того как предыдущие действия будут выполнены, необходимо будет создать еще одну текстуру и назначить ей карту нормалей [6]. Процесс добавления карты нормалей почти ничем не отличается от добавления диффузной карты.
В результате создания карты нормалей может получиться не то, что вы хотели увидеть. Это связано с тем, что текстура будет теперь отображаться на поверхности 3D-модели как обычная диффузная карта. Для того чтобы карта нормалей отображалась как карта нормалей в Blender, необходимо обозначить назначенную 3D-модели текстуру как карту нормалей в меню текстуры во вкладках «Image Sampling» и «Mapping».
Возвращаясь к тому, что в Blender экспорт текстуры не получится сохранить вместе с 3Б-моделью, решение очень простое: 3D-модель можно экспортировать в формате FBX, а текстуры приложите к ней во время импорта 3D-модели в Unity3D.
В итоге получится, что при импорте в Unity необходимо выбрать файл FBX и две карты: карту нормалей и диффузную карту (текстуру) и перетащить их все вместе в одну из папок «Assets» в Unity3D. Если все было сделано правильно, то сразу после импорта Unity3D предложит пометить карту нормалей как карту нормалей. Данное предложение можно принять либо отказаться и настроить атрибуты для изображения в меню настройки изображения в «Inspector» либо в меню материала.
Теперь при добавлении импортированной 3D-модели на сцену модель будет добавляться вместе с материалами и текстурой, которые были созданы в Blender.
Что касается объектов, содержащих волосы или ворсинки, созданные с помощью системы частиц в Blender, такие текстуры импортировать в Unity не получится. Для создания объектов, имеющих шерсть или волосы, необходимо либо систему частиц с помощью ряда модификаторов перевести в меши, в результате чего получится «highpoly» объект, что совершенно не подходит для создания игр. Либо необходимо создание имитации волос путем наложения соответствующих текстур.
Заключение. Для работы в сфере 3D-моделирования в зависимости от целей может быть достаточно и одного программного продукта [7, 8], однако, как правило, возможностей одной программы недостаточно для реализации задуманного проекта. Unity — не только профессиональный мощный инструмент для создания игр и иных приложений с использованием 3D-моделирования, но и неплохо оснащённая платформа для создания простых 3D-объектов, недостающих для визуализации каких-либо сцен. Однако более сложные объекты удобнее всего создавать в специальном редакторе Blender, после чего полученный объект импортировать в Unity, хоть и процесс импортирования имеет свои нюансы.
В статье были рассмотрены главные ошибки, возникающие в процессе экспорта объектов и способы их устранения, что значительно облегчит результат переноса объектов из Blender в Unity, так как возможные проблемы будут устраняться на этапе подготовки объектов к экспорту.
Таким образом были сделаны следующие выводы:
• основные сложности экспорта объектов из Blender в Unity связаны с различием ориентации осей в этих программах;
• для объектов, которые в Unity будут использоваться как динамические, важно правильное определение точки Origin;
• материал и текстуры для объекта нельзя сохранить единым файлом с объектом;
• при создании объекта в Blender можно предусмотреть только единую текстуру для всего объекта;
• импорт в Unity системы частиц, созданных в Blender, невозможен напрямую;
• выбор формата для экспорта из Blender в Unity зависит от предпочтений моделлера.
1. Blender. — Режим доступа: https://www.blender.org/about/license/, свободный. — Заглавие с экрана. — Яз. англ.
2. Blender 2.80 Руководство. — Режим доступа: https://docs.blender.org, свободный. — Заглавие с экрана. -Яз. англ.
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
3. Хокинг Джозеф. Unity — в действии. Мультиплатформенная разработка на C# / Хокинг Джозеф. -Санкт-Петербург : Питер, 2016. — 336 с. — ISBN 978-1617292323.
4. Unity. ProBilder. — Режим доступа: https://unity3d.com/, свободный. — Заглавие с экрана. — Яз. англ.
5. Кенни Ламмерс. Шейдеры и эффекты в Unity. Книга рецептов / Кенни Ламмерс. — Москва : ДМК-пресс, 2016. — 274 с.
6. Запекаем карты нормалей в текстуру и ленивое текстурирование 3Б-модели через авторазвертку и запекание текстуры в Blender для игрового движка Unity3D. — Режим доступа: http://www.3dbuffer.com/articles/ zapekaem-kartyi-normaley-v-teksturu-i-lenivoe-teksturirovanie-3d-modeli-cherez-avtorazvertku-i-zapekanie-teksturyi-v-blender-dlya-igrovogo-dvizhka-unity3d/#.Xc_ByVczbIU, свободный. — Заглавие с экрана. — Яз. рус.
7. Бикмуллина И. И. Разработка методики автоматизированного синтеза информационных систем на основе семантических отношений предметной области / И. И. Бикмуллина, И. А. Барков, А. П. Кирпичников // Вестник Казанского технологического университета. — 2015. — Т. 18, № 7. — C. 236-242.
8. Шаехов И. М. Организация визуального представления данных / И. М. Шаехов, И. И. Бикмуллина, А. П. Кирпичников // Вестник Казанского технологического университета. — 2019. — Т. 22, № 6. — C. 167-169.
1. Blender. Available at: https://www.blender.org/about/license/
2. Blender 2.80Manual. Available at: https://docs.blender.org
3. Hawking Joseph. Unity — in action. Multiplatform development in C#. St. Petersburg, Piter Publ., 2016. 336 p. ISBN 978-1617292323.
4. Unity. ProBilder. Available at: https://unity3d.com/
5. Kenny Lammers. Shaders and effects in Unity. A book of recipes. Moscow, DMK-press Publ., 2016. 274 p.
6. Zapekaem karty normaley v teksturu i lenivoe teksturirovanie 3D-modeli cherez avtorazvertku i zapekanie tekstury v Blender dlya igrovogo dvizhka Unity3D [Bake normal maps into a texture and lazy texturing of the 3D model through auto-expansion and baking of the texture in Blender for the Unity3D game engine]. Available at: http://www.3dbuffer.com/articles/ zapekaem-kartyi-normaley-v-teksturu-i-lenivoe-teksturirovanie-3d-modeli-cherez-avtorazvertku-i-zapekanie-teksturyi-v-blender-dlya-igrovogo-dvizhka-unity3d/#.Xc_ByVczbIU
7. Bikmullina I. I., Barkov I. A., Kirpichnikov A. P. Razrabotka metodiki avtomatizirovannogo sinteza infor-macionnykh sistem na osnove semanticheskikh otnosheniy predmetnoy oblasti [Development of methods for automated synthesis of information systems based on semantic relations of the subject area]. Vestnik Kazanskogo Tekhnolog-icheskogo universiteta [Bulletin of the Kazan technological University], 2015, vol. 18, no. 7, pp. 236-242.
8. Shaekhov I. M., Bikmullina I. I., Kirpichnikov A. P. Organizatsiya vizualnogo predstavleniya dannykh [Organization of visual representation of data]. Vestnik Kazanskogo Tekhnologicheskogo universiteta [Bulletin of the Kazan technological University], 2019, vol. 22, no. 6, pp. 167-169.
Разработка 3D-моделей в Blender для интеграции в Unity
Столярчук, А. С. Разработка 3D-моделей в Blender для интеграции в Unity / А. С. Столярчук. — Текст : непосредственный // Молодой ученый. — 2021. — № 16 (358). — С. 87-95. — URL: https://moluch.ru/archive/358/80132/ (дата обращения: 08.01.2024).
Данная статья описывает процесс подготовки объектов в бесплатном программном обеспечении Blender с целью дальнейшей их интеграции в межплатформенную среду разработки Unity с целью дальнейшего использования в моделировании или разработки виртуальных лабораторных комплексов. Кроме объяснения особенностей процесса проектирование и переноса объектов приводится пошаговая инструкция, позволяющая избежать ошибок начинающим пользователям приведенных программных продуктов.
Ключевые слова: Blender, Unity, 3D-модели, текстурирование, карты нормалей, Collider, Rigidbody .
Введение
Blender — бесплатное программное обеспечение для создания трехмерной компьютерной графики, включающее в себя средства моделирования, скульптинга, анимации, симуляции, рендеринга, постобработки и монтажа видео со звуком, а также создания 2D-анимаций.
Unity — среда разработки компьютерных игр, обладающая наличием визуальной среды разработки, межплатформенной поддержки и модульной системы компонентов.
Разработка 3 D модели на примере гальванического элемента питания (батарейки) D – R 20
При создании модели батарейки (рис. 1), будем учитывать ее реальные размеры, это необходимо для того, чтобы она, к примеру, не была размером с дом. При разработке проектов на Unity и других графических движках, рекомендуется учитывать реальные размеры всех объектов, чтобы в последующем добавлении их в студию не было проблем с масштабами объектов.

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

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

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

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

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

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

Рис. 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.
3 Unity User Manual // Unity Documentation: [сайт]. — URL: https://docs.unity3d.com/Manual/index.html (дата обращения 29.03.2021).
Основные термины (генерируются автоматически): NVIDIA, коллайдер, создание, батарейка, бесплатное программное обеспечение, материал, наложение текстуры, основная текстура, создание карты нормалей, создание нормалей.