Ассеты для blender: Download Free 3D models, textures and other Blender assets

Ассеты следующего поколения (Next Gen)

Найти:

Перевод урока: Illarionov Antonii
Редактирование урока: Артем Слаква

Предисловие от переводчика.
Данная статья, на мой взгляд – костяк для любого человека, твёрдо решившего работать в сфере разработки игр, в роли 3D моделлера и готового изучать эту тему бесконечно (так как мастерству нет предела + эта стезя развивается всё более ударными темпами, за которой не каждый способен угнаться).

Важно: рекомендую пройти урок от начала до конца, так как вы начнёте понимать эту профессию на 95 % (созданию текстур (не текстурных карт!!!), анимация, и прочее это другая профессия в развитых компаниях).

Прикладываю архив из двух программ: CrazyBump и UVLayout. Первая – полезна для создания определенных текстурных карт, а вторая – для быстрой и удобной развёртки (получил от знакомого моделлера, работающего НЕ в блендере, так что совместимость не гарантирую, но процесс работы в ней – крайне вкусно выглядит), дерзайте. Вакцины есть.

И позвольте последнее «бла-бла-бла»: не пренебрегайте никакими ресурсами и программами, которые приведены в данном уроке, а так же – изучению английского в целом, и особенно в моделировании (сможете узнать гораздо быстрее и больше).

Приступим к уроку!

Хотите сделать свой собственный Gears Of War? Ну тогда пропустите этот урок и попробуйте спросить Google об этом, так как сегодня мы будем изучать рабочий процесс изготовления ассетов следующего поколения!

Долгое время у меня были проблемы, в попытках сделать объекты для игр, например:

  • Запекание никогда не работало согласно ожиданиям
  • Я не понимал, как мне следует настраивать нормали моих моделей
  • Как сделать правильную UV-развертку или как мне следовало моделировать мои низкополигональные (дальше – low poly-модели) и т.д., и т.д.

Когда мы привыкли работать над визуализацией вещей, искусство их обработки в реальном времени кажется совершенно новым не открытым миром, и, надеюсь, для тех, кто до сих пор продолжает выяснять, как воплотить это в жизнь, сегодня я буду пытаться открыть все тайны!

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

Надеюсь, вы найдете это полезным!

Модель, которую я буду использовать, чтобы объяснить основные понятия процесса является надгробие. Модель сделана для игры, над которой я работаю. Дальше мы будем идти от моделирования к загрузке ассета в BGE.

Так! Уберите детей от экранов и давайте начнем!

Шаг №1 – Референсы

Да! Я думаю, что это должно быть подмечено: Вы сделаете хорошую модель только в том случае, если у вас есть хорошие референсы, поэтому первое что я сделал – погрузился в поисках Google для воодушевления касательно кладбищенских фотографий.

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

Я не буду углубляться в детали этой темы, так как я действительно не могу продолжать смотреть на фотографии надгробий. Хорошо, поехали дальше.

Шаг №2 – Моделирование

Вы можете начать данный шаг различными способами. Есть люди, которые любят использовать программы, такие как Zbrush и построить всю модель с нуля внутри него. Другие предпочитают сделать базовый меш и лепить его позже, а также люди подобные мне, которые не парятся по поводу всего этого.

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

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

Руководство и советы для low poly моделирования:

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

Вопросы и ответы:

Вопрос: Почему мы в состоянии использовать треугольники на игровых моделях?
Ответ: Прежде всего, когда движок игры загружает модель, он автоматически преобразует все ваши полигоны в треугольники, поскольку это единственная геометрия, которую понимает видеокарта. Нет никакой необходимости беспокоиться об их использовании.

Вопрос: Тогда почему люди говорят мне, чтобы я не использовал их?
Ответ: Это не потому, что мы не будем использовать их когда это только возможно. Иногда имеющиеся тркугольники могут быть очень полезными, но они также могут привести к ошибкам затенения, разрушая всю вашу тяжелую работу. Также органические модели не будут хорошо деформироваться с треугольниками, поскольку они нарушают многоугольной поток топологии. Вот почему вы не можете использовать треугольники на анимированных органических вещах. Этого также лучше избегать, когда вы планируете использовать Subsurf (так как это подарит вам странную чепуху в топологии сетки).

— Во-первых: очертите ваши детали, и лишь потом побеспокойтесь о полисетке/топологии.

Что это значит?

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

Как убедиться, что у вас больше не осталось N-угольников? Легко!

  • Выберите режим выбора граней
  • Перейти к: Select — Select Faces by Sides
  • На панели инструментов (T), выберите Greater than 4

— Используйте привязку к вершинам со слиянием, чтобы оптимизировать сетку, сокращая излишние края петель.

Эти советы направлены на модели, которые не будут обрабатываться скульптингом или когда вы планируете делать ретопологию сетки.

Но, «Эй мистер Guilherme, что если я сделал свою модель неверно? Это действительно потрясающая модель и я действительно хочу скульпттить ее, но не хочу переделывать все с нуля».

Ну, давайте предположим, что вы нашли себя в ситуации выше (так же, как и я с этой моделью), то, как можно схитрить, чтобы обойти эту проблему?

В Blender есть удивительный модификатор под названием «Remesh«. С ним вы можете взять вашу грязную модель полную тругольников и странностей, и преобразовать ее в дружелюбный объект для скульптинга!

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

(В программном обеспечении, таком как: Zbrush, 3D-Coat или Blender даже топология не имеет особого значения.) В Blender у нас есть динамическая топология! С ней мы можем просто лепить то, что нашей душе угодно без опасений насчет разрешения сетки, так как сетка будет динамически адаптироваться к вашим потребностям 😉

Шаг №3 – Скульптинг

Это то место, где вещи становятся интересными. Вы берете вашу скучную модель и превращаете её в удивительного органического дьявола!

Мой выбор инструмента – Mudbox. Я всегда использовал его, так что это естественный выбор для меня, но основы везде одинаковые. В Blender есть режим Sculpt, где мы также можем сделать это очень хорошо. Инструмент – всего лишь вопрос предпочтений. Ищите то, что лучше всего подходит для вас (особенно с учетом вашего бюджета и оборудования).

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

После этого, я продолжаю работу с помощью кистей, которые кажутся уместными для нанесения повреждений.

Дальше текстуры, которые пригодятся для создания надписей. Лучший способ сделать текстуру — использовать Photoshop. Этот способ займет всего несколько минут и вы сможете вырезать действительно сложные детали на вашей модели. (Попробуйте сделать трафареты черепа, статуи, и т.д., и использовать в своей работе. Много деталей в очень короткий промежуток времени.).

Вы также можете использовать некоторые другие текстуры, такие как: кирпичи, камни, скалы и так далее, чтобы добавить текстуру вашей модели. Посмотрите, как это преображает модель:

Вы можете найти некоторые бесплатные текстуры на сайте Pixologic.

Шаг №4 – Ретопология

Сейчас у вас есть high poly-модель и было бы замечательно, если бы вы могли просто загрузить ее в игровой движок и заставить его работать на вашем любимом ноутбуке. Но, к сожалению, мир не утопия, (пока что), и для того, чтобы сохранить уровень детализации вашей модели с использованием малого количества ресурсов, вы должны будете использовать low poly-модель.

Почему ретопология?

Поскольку вы скульптурировали вашу модель, вероятно, она сильно изменилось от базовой формы и если вы попытаетесь запечь карту нормалей, у вас наступят плохие времена…

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

Это звучит ужасно, но на самом деле это так! 😀

У нас есть некоторые инструменты, которые помогут облегчить это бремя. Мы можем привязать нашу новую сетку к скульптуре, что делает жизнь намного проще. Так же у нас есть некоторые другие приемы, которые будут описаны ниже.

Decimate: алгоритм, который будет пытаться объединить окружающие вершины, не меняя общую форму.

Плюсы:

  • Быстро
  • Хорошо работает с органическими объектами (не для анимаций!!!)
  • В некоторых случаях может резко снизить количество полигонов при сохранении формы
  • Может быть очень точным в силуэте, если не используется в крайних диапазонах

Минусы:

  • Даст вам плохую топологию
  • Тонны треугольников (не хорошо для готовых моделей под анимации)
  • Ручная ретопология, как правило, даст вам лучшие результаты
  • При использовании в крайних диапазонах, может привести к артефактам в сетке
  • Сложнее правильно развернуть и текстурировать
  • Превращает вас в ленивого человечишку 😀

Есть большое количество программного обеспечения, которое может сделать это лучше, чем другие. Zbrush, Mudbox, 3D-Coat, Blender… у всех есть свои дециматоры, а это означает, что их довольно легко использовать.

Стандартная процедура:

Если меш несущественно отличается от вашей скульптуры, то вы можете просто смоделировать ваш базовый объект опираясь на high poly, чтобы сделать из него low poly-модель. Это может быть приемлемо, если вы сделали какую-то жесткую модель (например – архитектура). Вы можете просто дублировать вашу high poly модель и удалить некоторые петли, пока вы не останетесь довольны моделью, как показано ниже:

Концепции рассмотренные в шаге по моделированию также хорошо применимы и здесь.

Плагины для оптимизации рабочего процесса ретопологии:

Отличная практикой повышения вашей производительность (не только в ретопологии) является использование аддонов/скриптов. Почему вы думаете большие студии имеют большие R&D команды (команды разнопланового программирования, дизайна и разработок)? В Blender у нас есть отличный аддон RetopoFlow от CGCookie.

Всегда ищите новые способы, чтобы улучшить свой рабочий процесс. Будем надеяться, что вы даже сможете сэкономить немного больше времени, чтобы начать спать по ночам!

Советы:

  • Если вы не хотите получить ошибки при запекании, вы должны иметь богатый опыт, чтобы поставить некоторые скосы на углах, которые идут под углом 90°, так как лучи нормалей проецируются через средний угол окружающих вершин, а если у вас есть нормали которые сталкиваются перпендикулярно, то это вызовет пробелы в проекции, в результате чего мы получаем знаменитый артефакт в наших полигонах 😀
  • Иногда, добавив немного больше геометрии, можно исправить сотни ошибок в нормалях. Не бойтесь, лишние 20 полигонов вряд ли значительно вам повредят.

Шаг №5 – UV-развертка

Ура! Шаг, который все ненавидят! Unwrapping (с англ. – развертывание) означает, что вы будете брать вашу модель, и разрезать ее так, как если бы вы собрались преобразовать 3D-модель в куски бумаги для кого-то, чтобы собрать из них, бумажную модель.

Люди, как правило, не любят развертывание моделей, потому что они не уверены в том, как это делается, но однажды узнав, (вы, вероятно, продолжите ненавидеть это дело так или иначе) по крайней мере, вы будете знать, что вы делаете!

Что делает развёртку хорошей?

Существенным фактором качества UV-развёртки является правильное размещение швов и низкий уровень искажений на ней. На первый взгляд это может показаться немного слишком сложным, но на самом деле это не так!

Сейчас вы узнаете некоторые советы для достижения хорошей UV развёртки:

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

Сосредоточенность на местах, где у нас будут разные материалы, является хорошей отправной точкой!

Другое дело – угол. Если ваша сетка имеет вершину с углом около 90° и более, это также может быть хорошим местом, чтобы применить шов! Но каждый случай уникален. Если бы вы делали развёртку окна, например, вы бы не делали шов в каждом углу, так как чем меньше швов у вас есть, тем лучше это будет для вас, для дальнейшего текстурирования. Скрытие швов может быть раздражающим, но все же попробуйте найти умные места, чтобы разместить их!

В конце концов, предназначение UV развёртки – двумерное представление о вашей сетке, чтобы вы смогли текстурировать, а назначение швов – разрезать модель таким образом, чтобы избежать искажений.

С учетом сказанного, в Blender у нас есть некоторые уловки, который помогут гарантировать, что данные вещи будут соблюдены. Давайте приступим!

Stretch/Искажения:

В Blender есть крутой UV-редактор, который может отобразить нам, насколько искажена наша сетка, а так же где именно! Для активации Stretch, вам просто нужно открыть панель Properties (N) в UV-редакторе, и поставить галочку рядом.

Теперь используйте это в качестве руководства, чтобы увидеть детали, которым нужно больше любви. Как вы можете настроить развертку и исправить растяжения мы увидим в следующем пункте:

Инструмент Align/Straighten (с англ. совмещение/выпрямление):

Вместо выбора вершины и вручную масштабирования для выравнивания по оси, у нас есть инструмент внутри UV-редактора, который может сделать это полуавтоматически для нас! Просто нажмите кнопку (W) в редакторе, чтобы открыть меню Weld/Align и вы можете использовать Align auto, чтобы выровнять выбранные вершины по их осям! С функцией выравнивания можно выбрать цепочку вершин и выпрямить ее по диагонали, например!

Pin Vertices: ключевой инструмент при работе на данном этапе!

С Pin Vertices можно заморозить вершины, которые вы уже развернули, выровненные и правильно растянутые. Таким образом, вы можете продолжать развертку, а данные вершины не будут затронуты снова. Здорово же!

Просто нажмите кнопку (Р) с выбранными желаемыми вершинами, а чтобы открепить их, нажмите (Alt + P).

Хорошо, мы раскрыли тему про инструменты, теперь давайте поговорим о понятиях!

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

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

Теперь найдите способ чтобы все острова соответствовали друг другу! 😉

Это смешно, и я клянусь, что это моя любимая часть! Это просто, как головоломка.

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

1. Для начала давайте создадим финальные швы. Удалите их все с помощью Ctrl + E — Clear seam with all edges selected. Это просто, чтобы ваши швы соответствовали островам у вас в редакторе!
2. В UV-редакторе, перейдите на UVs — Seams from Islands.

3. Теперь нам нужно обострить эти швы. Перейдите в меню выделений (select на панели снизу) и с выделенным швом нажмите Select Similar (Shift + G) — seam.
4. И просто сделайте эти ребра острыми, нажав Ctrl + E — Mark Sharp.

Для того, чтобы на самом деле они стали острыми, вы должны будете использовать модификатор Edge Split. Просто выберите его, снимите галочку с Edge angle и оставьте острые края 😉

Затем все остальные ребра должны быть установлены в режим: Smooth.

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

Так что, похоже, что у вас есть модель готовая к запеканию!

Шаг 6 – Запекание

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

Это заняло у меня очень много времени, чтобы, наконец, понять как правильно запечь вещи без дорисовки карт в Photoshop и рисования «правильных» нормалей, так что давайте взглянем на то, как это может быть сделано:

Первое, что вам нужно знать – как правильно экспортировать low poly объект.

Выберите модель — Export — Obj

Сейчас здесь идет секрет: для того, чтобы иметь острые края в блендере, вам нужен модификатор Edge Split, но если вы примените его ваша – сетка будет расколота по острым краям, и это не то, что мы хотим.

Таким образом, мы можем экспортировать сетку с острыми краями, но оставить их цельными, благодаря настройкам в меню экспортера!

Так что просто экспортируйте модель с группами сглаживания и активируйте Keep Vertex Order. Не забудьте отключить края модификатора Edge Split при экспорте, в противном случае он будет отделять сетку!

Теперь у вас есть low poly модель 100% готовая к запеканию!

Следующая вещь, которую вам следует сделать, прежде чем мы начнем запекать – создание cage (с англ. – клетка) меша.

Часто задаваемые вопросы:

Вопрос: «Что это?»
Ответ: Из Blender Wiki:
«Cage – раздутая версия low poly сетки, созданной либо автоматически (путем регулировки расстояния лучей) или вручную (с указанием объекта для использования). Если вы не используете клетку, то лучи будут соответствовать сетке нормалей. Это приводит к сбоям на краях, но это предпочтительный метод при запеканию в плоскости, чтобы избежать необходимости добавления дополнительных циклов вокруг краев».

Так сказать, Cage – «расширенная» версия модели, которая будет служить в качестве руководства для лучей, которые будут служить запеканию. Используя клетку, можно исправить около 80% ваших потенциальных ошибок при правильных настройках!

Так давайте сделаем Cage!

Просто дублируйте вашу low poly модель, войдите в режим редактирования, а затем выберите все и нажмите (Alt + S). Это вызовет инструмент Shrink/Fatten. Этим вы сможете раздуть модель относительно нормалей, которое простое масштабирование не может.

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

Теперь, все что вам нужно сделать, это поместить все в печь 😀 (программу для запекания, например xNormal, на ваш выбор).

Для могильной плиты, я использовал Xnormal, так как это очень легкая и быстро работающая программа:

  • Загрузите high poly
  • Загрузите low poly
  • Добавьте Cage

Запекайте! 😀

Xnormal является свободным программным обеспечением под Windows для запекания, разработанное Santiago Orgaz.

У вас есть бесконечное количество карт для выбора, некоторые из них могут быть очень полезны для текстурирования, особенно: Ambient Occlusion (АО), Cavity и Curvature.

Окклюзия (AO) – затенение освещенности, полезно для использования в качестве базы для текстурирования, вы также можете инвертировать и/или настроить его и использовать для различных нужд.

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

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

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

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

Если вы все сделали правильно, вы должны иметь довольно аккуратный объект, практически законченный!

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

Если ошибки сохраняются, у меня есть несколько советов:

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

Чтобы решить такую проблему, вы можете разнести ваш меш. Не забудьте разнести вашу high poly модель. High poly и low poly модели должны быть в одном и том же пространстве, верно?

Разнесение объекты путем расширения их центральных точек («Alt + ,» для активации).

Tessellate/тесселяция: это то, о чем вы действительно должны заботиться, когда делаете запекание ваших окончательных текстур, так что свободно изменяйте свою запекаемую low poly сетку каждый раз, когда вы считаете, что должны так сделать, чтобы получить лучший результат в запекании. Хорошая идея – сделать простое подразделение вашей low poly, чтобы просто увеличить плотность вершин. Получится, что путь до средины из ваших нормалей будет гораздо более точным, и сможет спасти вас во многих ситуациях.

Шаг №7 – Текстурирование

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

И если вы хотите попробовать, они предлагают свои устаревшие версии бесплатно! Проверьте это!

В Blender у нас пока нету физически корректного рендеринга в реальном времени (но кажется, что будущее в этом году предвещает большие вещи по этому вопросу!). Так что я покажу здесь версию окончательной модели загруженную в Sketchfab, используя PBR техпроцесс:

Unity и Unreal Engine в последнее время стали бесплатными и у нас теперь есть более широкий спектр возможностей PBR. У вас не осталось больше оправданий, чтобы не изучать его! (конечно, если ваш рабочий ПК не так ужасен, как у меня).

Шаг №8 — Настойка в BGE

Давайте взглянем на то, как это должно выглядеть в BGE:

Я использую здесь только Diffuse (альбедо + окклюзии), Specular и Normal карты. Освещение играет большую роль на обстановке в играх и в целом. Уделяйте ему двойную порцию внимания!

Вопросы и ответы:

Вопрос: Альбедо, что это такое?
Ответ: Альбедо является базовым цветом, как диффузный.
Основное различие между ними заключается в отсутствии направленного света или АО в альбедо. Направленный свет будет выглядеть неправильно при некоторых условиях освещения и АО будет добавлен позже.

Технически и научно говоря: альбедо – цвет чего-то без влияния какого-либо света или как если объект будет рассматриваться, будь он идеальный на 100%. Вот почему, если вы посмотрите конкретно на альбедо текстуры, это, как правило, своего рода однообразие.

Теперь, просто добавьте несколько объектов, некоторые огни и магию и можете сделать свою собственную игру!


Надеюсь, что я смог прояснить некоторые сомнения насчет техпроцесса по созданию основных ассетов и, надеюсь, что помог в ваших долгих поисках идеального способа запекать карты!

Если вы хотите взглянуть на другие модели, которые я буду делать для игры и узнать немного больше об игре которую мы делаем, не забудьте подписаться на наш блог разработчиков!
http://blog. meltinglogic.com

Если вы нашли эту статью полезной, оставьте комментарий и поделитесь ею с друзьями!
Будьте здоровы!

Список полезных ресурсов (в основном бесплатные) а также программы CrazyBump и UVLayout вы можете скачать здесь.

Автор Guilherme Henrique

источник урока

Game, UVразвертка, Моделирование

Секреты экспорта из Blender в Unity / Хабр


— Теория о системе координат (правосторонней и левосторонней)

— Теория правильного создания 3d моделей в blender

— Быстрый экспорт файлов из Blender в Unity3d.

— Как правильно сопоставить масштабы модели в Blender и Unity.

— Экспорт с правильной ориентацией модели

— Почему количество вершин по-разному отображается в Unity и Blender?

Скрипты для автоматического экспорта из Blender в Unity3d (Ссылку предоставил пользователь darkfrei )

Видео к статье

Blender урок №1

Blender урок №2

Blender урок №3

Бонусный урок по текстурам в Unity3d


На самом деле это самая важная часть, я столкнулся с рядом проблем в работе физики 3d модели из-за неправильного экспорта. И так давайте сначала познакомимся с системой координат правосторонней и левосторонней.

Blender использует правостороннюю систему координат с осью Z, направленной вверх. Такую систему координат используют почти все САПР. Смотрите рисунок:

Unity3d как почти любой другой игровой движок использует левостороннюю систему координат. Когда Y направлен вверх, X — вбок, Z- вперед. Смотрим рисунок:


Для начала надо изучить структуру папок и файлов нашей 3д модели в Blender.
Refence — папка в которой могут хранится вспомогательные чертежи, рисунки, которые помогают построить 3д модель
Textures — папка в которой должны хранится текстуры.
Flags_snow.blend — наша 3d модель в формате blender

Теперь для правильного экспорта 3d модели, мы должны для себя уяснить, что Z+ это будет направление в игре когда объект движется вперед, (Z-) — направление когда объект движется назад. (X+-) это направления поворота вбок — но это в Unity, которая использует левостороннюю систему координат. А в правосторонней системе координат (Blender, 3ds max) Y+ это будет направление когда объект смотрит вперед и (X+-) это направления вбок. Это значит что объект должен стоять в сцене так, как на рисунке, в противном случае ждите проблем с физикой:

Все параметры вращения должны стоять на 0 для дальнейшей работы и для правильной генерации Меша (Mesh), надо Scale установить по умолчанию. Для этого мы сделаем следующие действия в Blender.

1)Выделим все объекты в сцене (клавиша A)

2)Object>Apply>Rotate & Scale.

Теперь все параметры вращения приняты и установлены на 0. А параметры масштабирования (Scale) установлены на по умолчанию (1). Смотрим рисунок:

Благодаря пользователю Leopotam, выяснилось что назначать текстуру, лучше в самом Unity3d, а не в Blender, в противном случае, при каждом экспорте FBX файла у вас будет создаваться папка object. fbm (пустая папка которая не на что не влияет, кроме как создает лишний объект в окне Project.


Теперь можем делать «Правильный экспорт» из правосторонней системы координат в левостороннюю систему координат.

1)Выделим все объекты (клавиша A)

2)Жмем последовательность R>X>-90.

3)Object>Apply>Rotate.

4)Жмем последовательность R>X>90.

Обязательно делайте в данной последовательности. Далее экспортируем модель в Unity. File>Export>FBX со следующими настройками:


После экспорта модели:

1) Идем в папку с этой моделью и копируем папку Textures (папку с текстурами) и наш FBX файл.

2) Вставляем в папку Assets нашего проект. Это позволит Unity импортировать модель прямо с текстурами, которые были настроены в Blender.


Как мы видем на рисунке количество вершин (verts) на объекте в Unity3d показывает 28.

Смотрим рисунок:

А количество вершин в Blender = 8

Связано это с тем, что в Unity3d подсчитывается количество вершин самой фигуры и количество вершин в UV развертке:

При создании швов, одна грань разделяется на 2 грани, а следуя математике 1 грань состоит из 2 вершин, следовательно из 2ух граней будет 4 вершины. Для примера воспользуемся Smart UV Project разверткой и установим максимальный Angle Limit.

Смотрим в Blender и количество вершин сократилось с 28 до 24 вершин. Если у кого есть более оптимизированный способ. Пишите в комментариях, обсудим. Некоторые скажут что что сократилось всего на 4 вершины, а представьте если таких объектов 100 или 200, или количество вершин в более детализированных объектах сократиться на 100-300. Помойму не плохой способ оптимизации.


Все единицы измерения, что в Blender что в Unity поумолчанию имеет единицу измерения Units. 1 Units= 1 Meter . Поэтому разработчики советуют принимать 1 юнит игрового пространства за 1 реальный метр, и лучше этого придерживаться (хотя бы чтобы с физикой меньше возиться).

И так разберемся с единицами измерения в Blender, в прицнипе в Blender их можно менять, но поумолчанию в Blender используется Units.

Смотрим на рисунок:

Видем параметр Dimension (Измерения или размер). на рисунке мы видем Dimension по X,Y,Z = 1,1,1; следовательно эта фигура куб с размерами 1х1х1 метр. Экспортируем в Unity и переходим на вкладку Inspector

смотрим на параметр Scale Factor, если у вас Unity версии меньше 5, то поумолчанию Scale Factor будет 0.01, исправим этот параметр на 1, если у вас Unity5 то Scale Factor поумолчанию будет 1.

Заключение


Вот и вся статья, как видем экспорт 3d модели из Blender в Unity, это не такуж то и сложно. Для более детального рассмотрения данного материала предлагаю посмотреть видеоуроки в начале статьи >> ссылка

Дополнение от Leopotam

Leopotam:

Ничего не было сказано, что нельзя вешать в материал текстуры (только то, что в UV-окне), иначе юнити начнет создавать папки типа object. fbm и пытаться импортировать текстуры в них независимо от того, что лежит в соседней папке Textures. Тут кроется проблема — их бесполезно удалять, при следующем переимпорте (например, при заборе репозитория в новую папку или смене целевой платформы) ассета папка появится снова. Единственное решение — правильно готовить это дело в блендере. Ну или отключать импорт материалов и настраивать префабы руками.

Ответ:

Да действительно в Unity 5 начали создаваться данные папки (при первичном импорте) раньше их не замечал, но они пустые и их можно удалить (они создаются только при первичном импорте) и текстуры ищет в папке Textures и применяется Шейдер в зависимости от настроек материала, если материал стандартный и то примениться Diffuse с уже настроенной текстурой, если Transperty применен в материалах, то примениться соответствующий шейдер Transperty в Unity3d и текстура тоже примениться. Сменил целевую платформу, с Web Player на Desktop — ничего не поменялось, папки не создались. Сменил на Ios — ничего не поменялось. Unity 5.0.1f1

Leopotam:

Ничего не было сказано, что если экспортируется арматура с анимациями, то нельзя использовать FBX 7.4 BINARY формат, только старый FBX 6.1 ASCII, иначе все в юнити поедет в стиле «кровькишкирас…».

Ответ:

Спасибо за дополнительную информацию, с анимацией в Blender не работал и собственно в разрабатываемом проекте не требуется костная анимация, поэтому мало знал о данном материале.

BlenderKit: Загрузка надстроек Blender

Получите BlenderKit и наслаждайтесь всеми надстройками

Optiloops

Обновлено до Blender 2.8

Надстройка для оптимизации количества лиц.

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

  Подробнее

Вы можете сохранять циклы по следующим свойствам:

  • УФ швы
  • петли, необходимые для формы subsurf (иногда называемые смещенными краями)

Вы можете запускать optiloops на всей сетке или на выбранной. Выделение «вырастает» из выбранных ребер, поэтому целые петли удаляются.

Можно также только выбрать ребра для удаления, а затем решить, следует ли их удалить.

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

Найдите операцию optiloops в меню очистки сетки или удаления сетки.