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 проектом, должны быть установлены лицензионные копии данного программного обеспечения
- Файлы, содержащие ненужные данные могут стать неоправданно большими
- Большие файлы могут замедлить процесс автосохранения
- Меньше проверяется, поэтому труднее устранить ошибки
Форматы файлов моделей
Unity поддерживает ряд стандартных и проприетарных форматов файлов моделей.
Внутри Unity использует формат файла .fbx в качестве цепочки импорта. По возможности рекомендуется использовать формат файлов .fbx, и вам не следует использовать проприетарные форматы файлов моделей в производстве.
Поддерживаемые форматы файлов моделей
Стандартные форматы файлов
Unity может читать следующие стандартные форматы 3D-файлов:
Эти форматы файлов широко поддерживаются. Они также часто меньше, чем проприетарный эквивалент, что уменьшает размер вашего проекта и ускоряет итерацию.
Вы также можете повторно импортировать экспортированные файлы .fbx или .obj в выбранное вами программное обеспечение для 3D-моделирования, чтобы убедиться, что вся информация экспортирована правильно.
Запатентованные форматы файлов
Вы не должны использовать эти форматы файлов в рабочей среде; вместо этого по возможности экспортируйте в формат .fbx. Однако иногда вам может понадобиться включить эти файлы как часть вашего проекта.
Unity может импортировать проприетарные файлы из следующих программ для 3D-моделирования, а затем преобразовывать их в файлы .fbx:
Следующие приложения не используют .fbx в качестве посредника. Unity должен преобразовать их в файлы .fbx, прежде чем импортировать их в редактор:
Для получения дополнительной информации см. документацию по настройкам импорта SketchUp и настройкам импорта SpeedTree.
Неподдерживаемые форматы файлов моделей
В Unity нет встроенной поддержки файлов Cinema4D. Чтобы использовать файлы Cinema4D в Unity, вы должны экспортировать их из проприетарного программного обеспечения в виде файлов .fbx.
Ресурсы, сохраненные в виде файлов .ma, .mb, .max, .c4d или .blend, не могут быть импортированы, если на вашем компьютере не установлено соответствующее программное обеспечение для 3D-моделирования. Это означает, что у всех, кто работает над вашим проектом Unity, должно быть установлено правильное программное обеспечение. Например, если вы используете лицензию Autodesk Maya LT для создания файла .mb и скопируйте его в свой проект, любой, кто откроет ваш проект, также должен иметь установленный Autodesk Maya LT на своем компьютере.
Как мне импортировать модели из моего 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.
Файл модели может также содержать данные анимации, которые можно использовать для анимации данной модели или других моделей. Данные анимации импортируется как один или несколько Анимационных Клипов.
![Mesh Filter вместе с Mesh Renderer позволяет появляться модели на экране.](../uploads/Main/MeshExample40.png)
Настройки импорта для мешей
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 проекте?
Привет всем!
Такой детский вопрос: в каком формате лучше держать модели в Unity — проекте? По идее от формата мало чего должно зависеть или все же что-то зависит?
Я работаю в Blender, но не встречал (или очень редко) unitupackage, которые содержат модели в формате «.blend». В основном fbx.
В каком формате все же лучше иметь модели в Unity-проекте?
#1
19:17, 5 ноя 2019
Если для себя — неважно. Если для других (на продажу) — fbx.
Почему? Потому что fbx практически все редакторы 3d поддерживают. А для открытия blend нужен именно blender.
#2
21:13, 5 ноя 2019
Fbx открывается движком из коробки. Другие форматы требуют плагины или сам софт, чтобы они вообще заимпортились в Юнити. Об этом сказано в документации. Удали блендер с компа — и ты не сможешь заимпортить .blend
#3
8:36, 9 ноя 2019
а картинки psd без фотошопа проимпортятся юнити из коробки?
и еще, искал, как проимпортить каждый видимый слой psd в отдельный спрайт — нашел несколько сторонних решений, но они все не работали (может, устарели). кто-нибудь чем-нибудь пользуется для этого?
сорри за оффтоп.
- arte_de_mort
- Постоялец
#4
14:52, 9 ноя 2019
Fbx или obj. По нашему опыту fbx лучше; на работе встречали проблемы со скейлом сцены в obj (при экспорте в obj нельзя указать scale factor). Но по большому счёту и тот, и тот можно. Unity в конечном итоге всё равно все модельки из файлов выдёргивает и пихает в собственные файлы.
Если делаешь на продажу, можно положить исходник (.blend / .ma / .max), люди не будут против, особенно если там сохранены слои или риг с анимацией или ещё что-то полезное. Но это только как бонус. Если основным файлом кладёшь .blend, то я например не смог бы открыть его, — за такое по рукам бьют 🙂
mciv
> а картинки psd без фотошопа проимпортятся юнити из коробки?
Да.
mciv
> и еще, искал, как проимпортить каждый видимый слой psd в отдельный спрайт —
> нашел несколько сторонних решений, но они все не работали (может, устарели).
> кто-нибудь чем-нибудь пользуется для этого?
Можно как все нормальные люди запустить из фотошопа export layers to files с проставленной галочкой на экспорт только видимых слоёв.
#5
21:42, 11 ноя 2019
arte_de_mort
> export layers to files
спасибо за наводку! глючит правда у меня, во все картинки какой-то один слой добавляет. может, с группами слоев плохо работает, или версия фотошопа такая попалась.
- arte_de_mort
- Постоялец
#6
23:27, 11 ноя 2019
Так он не должен с группами работать. Его задача это
> каждый видимый слой psd в отдельный спрайт