Содержание
Ассеты следующего поколения (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 в меню очистки сетки или удаления сетки.
Скачать
Подписаться на полный план
Profiler
Надстройка Profiler значительно улучшает рабочий процесс любого художника, особенно при архитектурной визуализации.
Это простое дополнение позволяет создавать профили красивой формы всего за несколько кликов, и у вас будет множество опций для настройки по вашему желанию.
Подробнее
Установив это дополнение, вы получите более 70 уникальных профилей со следующими параметрами настройки для каждого из них:
- Геймпад для выравнивания исходной точки профиля
- Размеры профиля
- Параметры смещения для кривой
- Вращение профиля
- Зеркальное отображение по X и Y
- Поменять нормали профиля
- Варианты затенения
- Разрешение кривой и профиля
Вы можете настроить эти параметры в любое время, выбрав соответствующую кривую. Если вы хотите узнать больше, посмотрите видеоурок.
Скачать
Подписаться на полный план
Паутина
Обновлено до Blender 2. 8.
Этот процедурный генератор паутины поможет вам быстро заполнить сцену красивой тонкой паутиной.
Если вы делаете какие-либо заброшенные или фантастические интерьеры, это дополнение сэкономит вам много времени и значительно улучшит качество ваших визуализаций. Заполнение сцены настроенной паутиной может занять всего несколько минут.
Подробнее
- очень прост в использовании
- создает паутину, которая подходит для ваших мешей
- теперь можно рисовать паутину, что намного быстрее — смотрите последнее видео в шапке.
- настраивает облегченную симуляцию, чтобы можно было анимировать паутину
- может также использоваться для разрыва паутины
- создает простой, но полезный материал, который легко настраивать и рендерить относительно быстро
- , если вам нужно соединить несколько мешей методом выбора граней, продублируйте их и соедините. Вы можете удалить объединенную сетку впоследствии
- , вам нужно переключиться на рендерер Cycles, внутренний рендерер Blender не поддерживается
Моделирование
Скачать
Подписаться на полный план
youtube.com/embed/1N83vZb-cG0?mute=1″ frameborder=»0″ allow=»accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>
Интерфейс вкладок
Обновлен и протестирован в Blender 2.92
Надстройка интерфейса вкладок занимает весь пользовательский интерфейс Blender и изменяет все панели, чтобы они отображались как вкладки, с фиксированным порядком.
Попробуйте несколько часов, и вы никогда не вернетесь к пользовательскому интерфейсу по умолчанию.
Подробнее
- стали намного быстрее взаимодействовать с панелями блендера
- сохранить много движений мыши
- избегать визуального поиска свойств
- используйте свою мышечную память в интерфейсе
- экономьте место для своей работы
- сэкономить время, избегая прокрутки
ХАРАКТЕРИСТИКИ
- Фиксированный порядок — никогда больше не искать свою панель
- фиксированных столбца — вкладки всегда будут одинаковыми
- закрепление панели, если нужно видеть сразу несколько панелей
- строки или сетки.
- скрыть вкладки и категории, которые вам совсем не нужны. Сохраните их в файле запуска.
- несколько вариантов компоновки
- возможность свернуть панель вкладок (опционально) и отключить надстройку для определенных областей (панель инструментов, пользовательский интерфейс, свойства)
ВОЗМОЖНЫЕ НЕДОСТАТКИ
- так как разработчики надстроек делают много нестандартных вещей с панелями, то некоторые панели надстроек могут отображаться иначе. Если вы обнаружите какие-либо ошибки, пожалуйста, дайте мне знать.
Скачать
Подписаться на полный план
Браузер активов — Руководство по Blender
В этом разделе описывается Asset Browser , который является основным интерфейсом для организации и использования активов.
Браузер активов был представлен в Blender 3.0 и будет улучшен и
расширен за несколько предстоящих выпусков.
См. также
- Библиотеки ресурсов
Для получения общей информации о системе библиотек ресурсов Blender, в том числе о том, как
создавать и редактировать активы и варианты дизайна.- Каталоги активов
Для организации активов.
- Библиотека поз
Создание поверх обозревателя активов.
Интерфейс
Браузер активов, показывающий материалы в библиотеке активов.
Основной регион
Основная область обозревателя активов действует аналогично обозревателю файлов, встроенному в Blender.
Он показывает активы, содержащиеся в выбранном каталоге.
Щелкните актив, чтобы выбрать и активировать его. Выберите поле, перетащив ЛКМ или
расширьте выбор с помощью Shift - ЛКМ , чтобы выбрать несколько активов.
У каждого актива есть контекстное меню.
Регион списка источников
Область списка источников можно использовать для навигации и использования ресурсов.
- Библиотека активов
Показывает активную библиотеку активов,
и позволяет переключаться между библиотеками активов.
Библиотека «Текущий файл» особенная,
и всегда будет показывать ассеты из текущего blend-файла,
независимо от того, является ли он частью библиотеки активов или нет.
- Копировать набор активов в библиотеку
текущий файл blend-файла считается Asset Bundle,
и еще не находится ни в одной библиотеке активов.Оператор Copy Asset Bundle упрощает копирование файла в библиотеку активов.
Каталоги комплекта активов будут объединены в библиотеку активов.- Каталог
Представление в виде дерева, показывающее каталоги активной библиотеки активов.
Выбор каталога ограничивает отображаемые активы активами только из выбранной библиотеки.Каталоги можно переименовать двойным щелчком по имени.
Каталоги также можно вкладывать в другие путем перетаскивания одного каталога в другой.
Каталоги «Все» — это встроенная библиотека активов, которая содержит все остальные библиотеки активов.
Надстройки и функции, такие как библиотека поз
здесь можно показывать пользовательские панели.
Область сведений об активе
Область сведений об активе справа показывает метаданные активного актива.
Редактировать можно только метаданные ассетов, содержащихся в текущем blend-файле .
- Имя
Имя блока данных актива. Это имя уникально для типа данных актива в пределах
тот самый blend-файл.
- Источник
Полный путь к blend-файлу, содержащему ресурс.
- Open Blend File
Эта кнопка запустит новый экземпляр Blender и откроет blend-файл, содержащий актив.
В фоновом режиме Blender будет продолжать отслеживать этот новый экземпляр Blender;
когда он будет закрыт, браузер активов будет обновлен, чтобы показать все обновленные активы.
- Описание
Необязательное поле для описания актива. Не используется самим Блендером.
- Автор
Необязательное поле для автора актива. Не используется самим Блендером.
Предварительный просмотр
Показывает изображение предварительного просмотра актива. См. Предварительный просмотр активов.
- Загрузить пользовательский предварительный просмотр
Открывает окно с файловым браузером для выбора изображения для предварительного просмотра актива.
- Создать предварительный просмотр
Создать/обновить предварительный просмотр актива.
- Предварительный просмотр
Меню дополнительных операторов предпросмотра.
- Render Active Object
Генерирует предварительный просмотр на основе активного объекта 3D Viewport.
Это полезно для групп узлов, особенно для узлов геометрии,
которые не могут автоматически генерировать свой собственный предварительный просмотр.
Теги
Панель для просмотра и редактирования тегов активов.
Они не имеют никакого значения для Blender и могут быть выбраны свободно.
При использовании поля поиска для фильтрации активов те активы, теги которых (частично) совпадают
поисковый запрос также будет показан.
Примечание
В зависимости от текущего режима объекта и выбранных типов активов может отображаться больше панелей.
Например, см. Библиотеку поз.
Использование активов
Как правило, актив можно использовать, перетащив его из браузера активов в нужное место .
Объекты и миры можно перетаскивать из Asset Browser в сцену,
Материалы можно перетаскивать на объект, который должен их использовать.
Узлы геометрии также можно перетаскивать на объекты, чтобы добавить модификатор узлов геометрии.
Использование активов позы отличается и описано в библиотеке позы.
При использовании актива может произойти несколько вещей,
в зависимости от следующей конфигурации обозревателя активов:
- Метод импорта
Определяет способ управления данными при импорте актива.
Эту опцию можно найти в центре заголовка Asset Browser.- Подписаться на предпочтения:
Используйте метод импорта, заданный в настройках.
- Ссылка:
То же, что и Файл ‣ Ссылка…
Ресурс будет связан с текущим blend-файлом и, таким образом, будет доступен только для чтения.
Последующие изменения в файле актива будут отражены во всех файлах, в которых он связан.- Добавить:
То же, что и Файл ‣ Добавить…
Все ресурсы и все их зависимости будут добавлены к текущему файлу.
Перетаскивание материала в сцену три раза приведет к созданию трех независимых копий.
Трехкратное перетаскивание объекта на сцену также приведет к созданию трех независимых копий.«Зависимости» в данном случае означает все, на что ссылается актив.
Для объекта это может быть его сетка и материалы, а также другие объекты.
используемые модификаторами, ограничениями или драйверами.Поскольку у файла теперь есть собственная копия актива, позже он изменится на
файл актива не будет отражен в файле, к которому он добавлен.- Добавление (повторное использование данных):
Специально для Asset Browser .
При первом использовании актива он будет добавлен, включая его зависимости,
так же, как описано ранее. Однако Blender будет отслеживать, где он возник,
и при следующем использовании актива максимально возможное количество данных будет использовано повторно.
Перетаскивание материала на сцену три раза загрузит его только один раз.
и просто назначьте один и тот же материал три раза.
Трехкратное перетаскивание объекта на сцену создаст три копии объекта.
но все копии будут делиться своими данными сетки, материалами и т. д.Поскольку у файла теперь есть собственная копия актива, позже он изменится на
файл актива не будет отражен в файле, к которому он добавлен.Совет
Создание экземпляров коллекций
Имитирует параметр «Коллекции экземпляров», когда добавляется из браузера файлов.
Это делается путем включения опции Instance после перетаскивания ресурсов коллекции в окно 3D-просмотра.
При включении этой опции добавляется пустой объект, использующий экземпляр коллекции.
Если эта опция отключена, то в сцену будет добавлена полная иерархия коллекций.Ресурсы коллекции из текущего файла всегда будут создаваться экземплярами.
Обратите внимание, что все стандартные операции Blender доступны после добавления актива в текущий файл.
Например, вы можете связать объект со сценой; это также свяжет его сетку и ее материалы.
Затем вы можете сделать сам объект локальным
(Объект ‣ Отношения ‣ Сделать локальным… ‣ Выбранные объекты),
сохраняя при этом сетку и материалы, связанные с файлами ресурсов. Это приведет к локальному,
и, таким образом, редактируемые, объектные и автоматически обновляйте сетку и материалы с помощью
любые изменения в библиотеке активов.
Предварительный просмотр активов
Панель предварительного просмотра в обозревателе ресурсов.
Изображения для предварительного просмотра обычно генерируются автоматически, когда вы
пометить блок данных как актив. Автоматически сгенерированный
предварительный просмотр пытается захватить объект спереди. Однако это работает, только если
геометрия выложена так, чтобы она соответствовала тому, что Blender считает
передний. То есть геометрия, которая должна быть передней, должна указывать вниз на -Y.
оси объекта. Возможно, придется применить вращение, чтобы получить ожидаемое
результат. Ресурсы коллекции используют глобальную ось -Y в качестве передней (вместо
локальный, так как у самих коллекций нет ротации).
Также можно загружать файлы изображений с диска, чтобы заменить автоматически сгенерированные превью.
Предварительный просмотр активов позы см. в разделе Управление внешним видом изображений для предварительного просмотра.
Пакеты активов
Пакеты активов — это blend-файлы, которые не ссылаются ни на какой другой файл,
и чье имя заканчивается на _bundle.blend
. Любые текстуры и прочие внешние
файлы необходимо запаковать в текущий blend-файл.
Пакеты активов можно скопировать в библиотеку активов через браузер активов:
Откройте blend-файл комплекта ресурсов.
Переключите свой браузер активов на Текущий файл (если он еще не установлен).
Нажмите Копировать пакет в библиотеку активов .
Выберите библиотеку ресурсов для копирования.
Откроется файловый браузер, в котором будут показаны файлы выбранной библиотеки активов.
Выберите желаемое расположение blend-файла и нажмите кнопку Copy to Asset Library 9.кнопка 0010.Blend-файл будет сохранен в выбранном месте, а любые каталоги
пакет ресурсов будет объединен с целевой библиотекой ресурсов.
Примечание
Обычно используются как слово «актив», так и слово «комплект».
и не обязательно с таким же значением, как описано здесь.
Не все, что представлено как «набор активов», будет иметь
доступна функция Copy to Asset Library ; для этого,
файл пакета должен соответствовать приведенному выше определению.