Как импортировать файлы в юнити

Обновлено: 04.07.2024

Это статья про компьютерную графику, 3D-дизайн и геймдев. Про замечательную бесплатную программу для воксельного моделирования MagicaVoxel я уже рассказывал . В этом видео я ускоренно нарисовал довольно сложное здание театра Помпея в древнем Риме, а в этой заметке перенесём это здание в Blender и Unity. Бонусом создадим в Unity игру от первого лица, в которой можно осмотреть этот античный амфитеатр. Описанные способы актуальны на версиях программ с осени 2020 (сейчас середина лета 2021).

Импорт модели из MagicaVoxel в Blender

Экспортируем модель из MagicaVoxel в формате .obj. Рядом с экспортированным файлом появится использовавшаяся палитра в формате .jpg.

В Blender создаём новый файл, удаляем из него всё не нужноеи через меню File->Import->Wavefront(.obj) выбираем экспортированный файл .obj.

Если включить Viewport Shading можно заметить что палитра цветов "подхватилась" и все цвета хорошо лежат. Но есть проблема. Дело в том что для каждой вершины кубика были созданы по три вершины (для каждой его грани). Это делает не удобным например пропорциональное редактирование в Blender или определение границ объектов в Unity. Поэтому я не рекомендую ничего (с чем планируется любое взаимодействие в Unity) грузить напрямую из Magica Voxel, минуя слияние вершин, например с помощью Blender (он тоже бесплатный, так что это не создаст проблем).

В сети можно найти кучу советов по уменьшению числа полигонов после экспорта из Magica Voxel, всяких плагинов и сторонних программ. На последних версиях Magica Voxel они уже не нужны и число треугольников потом без потери качества (например применив модификатор в Blender) не уменьшить!

Чтобы слить вершины в одну надо в Edit Mode выбрать в меню Mesh->Merge->By Distance (первая картинка галереи).

Слияние вершин в Blender после импорта из MagicaVoxel Слияние вершин в Blender после импорта из MagicaVoxel

Даже не выходя из Edit Moda можно заметить, что всё "поплыло" из-за сбившегося направления нормалей.

Импорт модели из MagicaVoxel в Unity

Из Magica Voxel можно импортировать напрямую в Unity, но повторюсь, что рекомендую объединить перед этим вершины в Blender. Экспортировать модель из Blender можно с помощью File->Export->Wavefront(.obj) и не забыть поставить галочку Selection Only (и выделить перед экспортом соответственно только саму модель).

Если будете сохранять модель даже в новую папку, то не появится палитра, так как для этого в Blendere надо до экспорта включить её в сам .blend-файл. Проще всего просто скопировать эту палитру из той папки, куда экспортировали из Magica Voxel.

Если кому-то интересно как импортировать модель, полностью созданную в Blender (с созданным в нём материалом и UV-развёрткой), то вот хороший ролик на пару минут , а я пересказывать его не буду - там и так всё понятно рассказал парень .

Для импорта в Unity надо просто перетащить экспортированные файлы в папку проекта.

Импортирование 2D-ресурсов в Unity

В этом уроке вы научитесь импортировать 2D-ассеты в Юнити, чтобы создать спрайты как из одного изображения, так и из таблицы спрайтов (атлас спрайта), содержащей несколько ассетов, которые вы настроите в редакторе спрайтов.

1. Подготовка 2D-ресурсов изображений для импортирования в Юнити

Импортирование двумерных ассетов, известных как спрайты, в Unity относительно простой и легкий процесс.

Существует несколько шагов, которые можно предпринять, чтобы сделать импортирование, поиск и использование спрайтов в Юнити намного легче. Хотя их можно сохранять где угодно в основной папке Assets, мы рекомендуем создавать в Assets папку только для спрайтов и в ней размещать подпапки, организованные по сценам, персонажам или любой другой организационной структуре, подходящей для вашего проекта.

Называйте ассеты так, чтобы их назначение было понятным. Такое название, как Title_Screen_Background упростит распознавание, чем, например, названия файлов New Image 27 или Untitled3 . Если спрайт является частью анимации, хорошей практикой будет дать каждому кадру в этой анимации такое же имя, пронумеровав каждый так, чтобы они отображались по порядку в окне Project. Например, может быть двенадцать спрайтов с именами от Player_Barbarian_Walk_North_00 до Player_Barbarian_Walk_North_11 .

В приведенном выше примере вы назвали бы изображение Player_Barbarian_Walk_North_ и использовали бы редактор спрайтов, описанный далее в этом рабочем процессе, чтобы автоматически нарезать и присвоить названия спрайтам.

Большинство инструментов анимации могут экспортировать таблицы спрайтов, а их тщательная организация и присвоение имен могут автоматизировать настройку спрайтов в Unity.

2. Импортирование одного спрайта

При импортировании одного спрайта Юнити назовет этот спрайт именем файла изображения. Например, Hamburger.jpg станет Hamburger. Создайте или откройте 2D-проект в Unity и поместите спрайт (Рисунок 1) в окно Project, или где-нибудь внутри Assets используя проводник Windows (или Finder на Mac).

Рисунок 1: Пример спрайта, увеличен для наглядности

Нажмите на только что импортированный спрайт в окне Project, чтобы открыть инспектор для настроек импорта (Рисунок 2).

Настройки импортирования спрайтов в Unity

Рисунок 2: Параметры импорта по умолчанию для спрайтов. Обязательно примените изменения, которые делаете для настроек, нажав на Apply в правом нижнем углу. Если вы забудете это сделать, то Unity предложит применить изменения.

Для большинства задач важны следующие параметры:

Pixels Per Unit: Определяет сколько Unity единиц в размере спрайта. Обычно это число будет одинаковым для всех спрайтов в проекте. В большинстве случаев вы будете выбирать это число перед созданием ассетов, так как этот параметр указывает относительный масштаб спрайтов относительно друг друга, мира, и ортогональной камеры.

Для проектов, использующих изображения с высоким разрешением или не ориентированных на конкретное разрешение, соотношение сторон, или визуальный стиль (например, консольные или компьютерные ретро игры) это число в значительной степени является произвольным.

Этот параметр полезен, если вы создаете игровой мир на основе тайлов; параметр Pixels Per Unit равный размеру одной единицы мира облегчает быстрое построение миров, удерживая клавишу Ctrl (Command на Mac), чтобы двигать их на одну единицу за раз.

Pivot: опору можно рассматривать как точку привязки спрайта. Чтобы сталактит свисал с потолка нужно установить его pivot на значение Top, а его позицию установить как у потолка. Для любого персонажа или элемента декора, который должен стоять на земле, обычно устанавливается значение Bottom. Существует 10 вариантов поворота: любое из трех горизонтальных положений (центр и края) в сочетании с любым из трех вертикальных положений или настраиваемый поворот, указанный в диапазоне 0–1 в обоих измерениях. Центр установлен по умолчанию и подходит для многих целей.

3. Импортирование и настройка нескольких спрайтов в одно изображение при помощи Sprite Editor

Импортирование нескольких спрайтов в одно изображение не очень различается от импортирования одного спрайта. Вместо базового инспектора вы будете использовать редактор спрайтов, чтобы нарезать и именовать спрайты, и расставлять их точки опоры.

Создайте или скачайте изображение с несколькими спрайтами и импортируйте его в проект (Рисунок 3).

Настройки для параметра Type следующие:

Automatic: Редактор спрайтов определяет области, которые окружены прозрачностью, и назначает их как спрайты.

Grid By Cell Size: Сетка нарезается равномерно с указанием пользователем размера каждой ячейки. Это наиболее распространенный параметр при построении проектов на основе тайлов, или проекты, в которых большая часть или вся область спрайтов на листе одинакового размера (например, значки или другие унифицированные элементы интерфейса, или строительные блоки игрового мира).

Grid By Cell Count: Сетка нарезается равномерно с указанием пользователем количества строк и столбцов спрайтов. Можно использовать этот параметр вместо Grid By Cell Size, если таблица спрайтов была сгенерирована программой, в которой вы уже определили количество строк и столбцов.

Cell Size: определяется либо Pixel Size, либо количеством Column и Row, в зависимости от того, какой неавтоматический параметр вы выбираете.

Offset: позволяет вам отметить начальный (слева сверху) угол в таблице спрайтов, и бывает полезным в ситуациях, когда спрайты разделены сеткой.

Padding: позволяет указать буфер между спрайтами, опять же, полезно для спрайтов, разделенных сеткой.

Keep Empty Rects: определяет спрайт даже если в нем нет изображения в автоматически сгенерированной области, при нарезке по размеру ячейки или количеству.

Pivot: определяет опорную точку спрайта. Например, спрайт с параметром Pivot, у которого установлено значение Center (по умолчанию), будет центрировано вокруг исходной точки, если для его позиции устанавливаются значения 0, 0, 0.

Вот все, что касается импортирования 2D-ассетов в Unity. Выбранные вами настройки будут во многом зависеть от вашего проекта, и с опытом вы найдете то, что лучше всего вам подходит.

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








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

Чтобы этого избежать, нужно перед сохранением файла в папку с проектом Unity, развернуть модель на -90 градусов по оси X:


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


Результат:


Если произвести редактирование модели в Blender, а потом ее сохранить, она обновится и заново импортируется в проект Unity. Если некоторые из материалов удалялись или редактировались, то при импортировании они не будут повторно обновлены. Может возникнуть ситуация, когда нужно будет переназначить материалы вручную:

Это можно сделать, если выделить нужный меш и назначить ему другой материал, вместо удаленного:



Это был кубик в окошке preview Unity.


как я упаковываю заказы для своего малого бизнеса ✨

Я хочу скопировать свой существующий проект Unity в новый пустой проект Unity. Похоже, что все ссылки на объекты и многие сценарии неправильно настроены / присутствуют в Иерархии в моих сценах.

Я только скопировал папку с ресурсами / package.json в новый проект Unity, потому что остальные файлы грязные и кэшировали много бесполезной информации.

Где находятся файлы с подробным описанием сцен? Я хочу скопировать это, чтобы я мог запускать свои сцены со всеми ссылками на объекты и сценариями, установленными на правильные игровые объекты.

Убираться

В общем, вам всегда понадобится Assets и ProjectSettings папка.

Все остальное вы можете удалить, и Unity воссоздаст / перекомпилирует их, когда вы снова откроете проект.

Также см. За кулисами

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

Как говорят имена

  • Assets все ваши активы, такие как сценарии, изображения, сборные конструкции и т. д., включая сцены.
  • ProjectSettings все общие настройки вашего проекта, касающиеся таких вещей, как качество, физика, струны плеера и т. д.

Для меня также некоторые из Library/*.asset файлы имеет смысл хранить .. они хранят, например, настройки сборки, целевой платформы и т. д., поэтому мне не нужно настраивать их / переключать платформу с нуля каждый раз, когда я "перезагружаюсь". Конечно, вам решать, хотите ли вы это сделать.

Вы также можете использовать любую другую систему контроля версий . или, конечно, также удалить соответствующие папки и файлы вручную, но я всегда использую GIT для моих проектов.

Также обратитесь к разделу Использование внешних систем управления версиями с Unity для получения общей информации о настройке для управления версиями вашего проекта (ов).

Поэтому, когда я хочу очистить репозиторий перед копированием, я обычно использую следующее как *.gitignore (есть и более полные версии, например, с Github).

Все, что здесь перечислено, можно практически удалить и будет повторно скомпилировано при следующем открытии проекта в Unity. (Строки, начинающиеся с ! - это исключения, которые я добавил, потому что, как я сказал, имеет смысл сохранить и их.)

Если это еще не сделано, сначала инициализируйте запущенный репозиторий.

это покажет некоторые предупреждения для каждого файла, который указан в .gitignore но вы можете игнорировать эти предупреждения. Он только говорит что-то подобное, например

Вы пытаетесь добавить игнорируемый файл в коммит, и он будет пропущен

сделать вашу первую фиксацию.

Теперь, наконец, ты можешь бежать

который удаляет все файлы, не отслеживается (поэтому убедитесь, что у вас всегда есть все файлы, хотеть держать хотя бы постановочный ( git add ) или лучше было бы совершено первым) или будет проигнорирован *.gitignore .

-f
Если для переменной конфигурации Git clean.requireForce не задано значение false, git clean откажется удалять файлы или каталоги, если не задано -f, -n или -i. Git откажется удалять каталоги с подкаталогом или файлом .git, если не указан второй -f.

-d
удалять неотслеживаемый каталоги в дополнение к неотслеживаемый файлы. Если неотслеживаемый каталог управляется другим репозиторием Git, он не удаляется по умолчанию. Дважды используйте параметр -f, если вы действительно хотите удалить такой каталог.

-Икс
Не используйте стандартные правила игнорирования, считываемые из .gitignore (для каждого каталога) и $ GIT_DIR / info / exclude, но по-прежнему используйте правила игнорирования, указанные с параметрами -e. Это позволяет удалить все неотслеживаемые файлы, включая продукты сборки. Это можно использовать (возможно, в сочетании с git reset) для создания нетронутого рабочего каталога для тестирования чистой сборки.

Миграция с помощью UnityPackage

Другой вариант перемещения сцен или частей активов между двумя разными проектами - использование пакета UnityPackage.

Из вашего текущего проекта экспортируйте UnityPackage

Выдержки из Документов:

альтернативно шагать 2 вы также можете Щелкните правой кнопкой мыши на Assets папка в Project View и найти Экспортный пакет в контекстном меню.

а затем в новом проекте Импортируйте UnityPackage

В качестве альтернативы шагу 2 а также 4 вы даже можете просто перетащить unitypackage файл в Assets папку через редактор Unity.

  • 1 В дополнение к этому исчерпывающему ответу, когда что-то отсоединяется, это признак того, что вам удалось потерять скрытые файлы .meta, и Unity присвоила всем новые свежие идентификаторы. Если вы убедитесь, что вы копируете активы, включая метафайлы, и перемещаете версию вверх (это смешанный мешок при спуске версии), все должно быть связано

Мне пришлось внести некоторые изменения, чтобы он работал на Unity 19.4:

По сути, я не игнорировал всю папку библиотеки и игнорировал только следующее:

Вот процедура, которой вы должны следовать:

  • Сделайте резервную копию вашего проекта на всякий случай.
  • Поместите прилагаемый файл .gitignore в корневой каталог вашего проекта.
  • Выполните следующие команды:

* Обратите внимание, что опция -X написана с заглавной буквы в команде git clean, это позволяет избежать удаления любой пустой и неотслеживаемой папки.

Чтобы убедиться, что все в порядке:

  • Загрузите свой проект Unity и убедитесь, что все по-прежнему работает правильно
  • Еще раз запустите git clean -Xfd, чтобы очистить файлы проекта, перестроенные Unity.

Опять же, спасибо derHugo за подробный ответ, который был использован для работы над последними выпусками Unity.

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