Как сделать uv развертку в blender
Перейти к содержимому

Как сделать uv развертку в blender

  • автор:

Blender как uv распределить быстро, разных сеток ?

У меня есть модель персонажа (она состоит из 10 разных сеток).
Если я объеденю сетки в одну, то uv разных сеток наложаться друг на друга.
Сейчас я выбераю руками каждую сетку и для каждой скалирую UV(делаю мелкой).
И раставляю в стороны, что бы не перекрывались UV друг-другом.

А можно ли сразу выбрать все сетки и сделать автоматом расположение UV , но чтобы сама UV развертка не испортилась, а только склировать чтобы мельче стали ?

А то 10 или 15 сеток руками перебирать и скалировать UV , то еще удовольствие и трата времени.

#1
16:57, 10 июля 2023

ChatGpt:
В Blender для размещения и развертывания UV-развертки существует инструмент под названием «Pack Islands». Этот инструмент автоматически располагает различные куски UV-развертки на текстурной плоскости таким образом, чтобы они не перекрывались и занимали минимальное пространство.

Чтобы воспользоваться инструментом «Pack Islands» в Blender, выполните следующие шаги:

— Выделите все необходимые куски UV-развертки на вашем объекте, нажав клавишу A, чтобы выделить всё или выбрав куски с помощью мыши с зажатой клавишей Shift.
— Перейдите в режим редактирования UV-развертки, выбрав вкладку «UV Editing» (или нажав клавишу F3 и введя «UV Editing»).
— В меню выберите «UV» -> «Pack Islands» или используйте горячую клавишу U, а затем выберите «Pack Islands».
— Blender автоматически разместит выбранные куски UV-развертки на текстурной плоскости таким образом, чтобы они не перекрывались и занимали наименьшее возможное пространство.
Обратите внимание, что «Pack Islands» не изменяет сами куски UV-развертки, а только их размещение на текстурной плоскости. Если вам нужно изменить форму или размер отдельных кусков UV-развертки, вы можете вручную перемещать и изменять их в режиме редактирования UV-развертки.

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

#2
(Правка: 17:08) 17:06, 10 июля 2023

«UV» -> «Pack Islands»

Да делает то что я хочу(скалирует делая меньше и раставляя по углам).
Но еще и вращает UV.
Пока сгодится.

#3
17:08, 10 июля 2023

ronniko
> Но еще и вращает UV.

ChatGpt:
В инструменте «Pack Islands» в Blender есть параметры, которые позволяют вам контролировать способ размещения кусков UV-развертки. Один из таких параметров — «Rotate». Если этот параметр отключен, то куски развертки не будут вращаться при их автоматическом размещении.

Вот как вы можете избежать вращения кусков развертки при использовании инструмента «Pack Islands» в Blender:

Выделите все нужные куски развертки на объекте в режиме редактирования UV-развертки.
В меню выберите «UV» -> «Pack Islands» или используйте горячую клавишу U, а затем выберите «Pack Islands».
Перед тем, как подтвердить действие инструмента, посмотрите на панель параметров, которая появится в левом нижнем углу окна Blender.
В этой панели найдите параметр «Rotate» и убедитесь, что он выключен (отмечен флажком).
Если параметр «Rotate» включен, кликните на него, чтобы отключить его.
Теперь при использовании инструмента «Pack Islands» Blender будет размещать куски развертки без их вращения.

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

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

Правильная UV развертка, ошибки и пути их решения.

Приветствуем, на связи команда MFG! В этой статье расскажем о правильной UV развёртке для тех, кто совсем недавно начал знакомиться с 3D моделированием. Неважно, будете ли Вы создавать модели для игр или исключительно для рендеров — без UV развёртки Вы банально не сможете её затекстурировать. В самом начале у новичков могут быть десятки вопросов. Как сделать развёртку правильно? Какие ошибки могут возникнуть и как их не допускать? На все эти и другие вопросы мы постараемся ответить по ходу этой статьи. Давайте сперва попробуем разобраться, что представляет собой развёртка в самом общем виде. Самым простым и понятным объяснением будет следующее изображение:
Развертка — это перенос поверхности объёмного объекта на плоскость (в виде текстуры). Далее в статье мы будем рассматривать процесс развёртки с использованием конкретного софта, а именно Blender. Выберем стандартный куб, выделим его, перейдём во вкладку UV Editing. Теперь перейдём в режим редактирования этого куба и слева мы увидим его развёртку. Она в точности напоминает первое изображение.
Разумеется, куб — это самый примитивный объект, на котором мы просто пытаемся показать общие принципы развертки. Развёртка некоторых элементов внутри модели может быть куда сложнее, а запакованная модель из десятков мешей может и вовсе выглядеть устрашающее, если не знать, что это такое. Вот Вам, к примеру развёртка Сюзанны:
3D модели состоят из вертексов, эджей и полигонов. UV развёртка также содержит все эти элементы, но только на плоскости. К сожалению, нельзя просто взять плоское и натянуть на объемное. Попробуйте обернуть бумагой что-то круглое — бумага просто-напросто помнётся при обёртке. Чтобы этого избежать, модель должна быть нарезана на части по швам. Для нанесения швов в любом 3D пакете, включая Blender есть специальный функционал. Рассмотрим конкретный приме. Добавим в сцену куб и в режиме редактирования изменим его и придайте ему форму доски.
Теперь выделим всё клавишей A, после нажмем правую кнопку мыши и выберем пункт Mark Seam (пометить швом).
Вы заметите, как все эджи теперь подсвечиваются красным цветом.
Теперь нажмем клавишу U и выберем первый пункт (либо же можно дважды нажать U).
И теперь Вы увидите, что каждый фейс стал отдельной частью на развёртке.
Каждая отдельная взятая часть называется островами или шеллами. Теперь добавим нашему объекту материал и перейдём во вкладку Shading, кликнем сверху «New». Появится обычная структура нодов материала. Теперь найдем в интернете текстуру дерева, разрешение при этом не имеет значения, главное чтобы соотношения сторон были одинаковыми. Теперь добавим эту текстуру, нажмём Shift+A, нажмём «Search» и впишем «Image», выберем ноду «Image Texture». В самой ноде нажмём на символ папки и выберите только что скаченную текстуру. Не забудьте в конце подключить выход ноды из Color в Base Color. Результат должен получится примерно такой.
Теперь вернемся во вкладку с развёрткой, переключим клавишей Z вид вьюпорта с Solid на Material Preview и попробуем взаимодействовать с каждым отдельным шеллом. Кнопки здесь всё те же, G – для перемещения, R — для поворота, S — для масштабирования Вы увидите как меняется текстура на самом объекте. Все действия, что мы сейчас проделали были очень важны для общего понимания того, как именно работает развертка. Развёртку условно можно поделить на два типа — тайловая и уникальная. И тут различия именно в маппинге — способе расположения шеллов на развёртке. Первый тип применяется чаще всего для крупных объектов, чаще для зданий. А вот для оружия, техники и прочих пропсов применяется уникальный маппинг. Но что это значит? Разберём этот вопрос подробнее. Обратите внимание, что пространство для развёртки заключено в рамках квадрата, но на самом деле оно им не ограниченно, эти квадраты повторяются по обеим координатам бесконечно. Можете убедится сами, попробовав переместить любой шелл за пределы этого квадрата. Уникальная развёртка подразумевает, что все шеллы заключены в рамках одного такого квадрата. И ни в коем случае нельзя допускать того, чтобы шеллы пересекались, поскольку это приведёт к проблемам при запекании и текстурировании. При тайловом маппинге, наоборот, можно и выходить за рамки, и накладывать одни шеллы на другие, так как используются готовые текстуры, которые просто накладываются поверх модели, прямо как в том примере, что мы разобрали в самом начале. Теперь ответим на следующий вопрос: Какой параметр отвечает за качество (чёткость) текстуры? Очевидный ответ будет — разрешение, но не всё так просто. За чёткость текстуры отвечает параметр, который называется текселем. Понятие тексель, означает количество пикселей текстуры на единицу пространства. Давайте вернёмся к нашей «доске» и немного поменяем ноды.
В ноде Checker Texture можете увеличить значение Scale, если Вы вдруг не видите узор в виде шахматной доски на объекте. Теперь попробуйте уменьшить любой из шеллов на развёртке и посмотреть к чему это приведёт.
В зависимости от того, какое разрешение текстуры Вы будете использовать для вашей модели, будет разный тексель. В качестве примера взгляните на изображение ниже. Визуально одинаковый объект с чекером разного разрешения будет давать разный результат.
Значение текселя можно рассчитать с помощью аддонов Texel Density Checker и TexTools. Мы бы порекомендовали использовать TexTools, поскольку кроме определения размера текселя, в нём есть дополнительный функционал по работе с развёрткой. Теперь разберём поэтапно процесс создания развёртки для игровых моделей. В качестве примера будем использовать вот такой грузовичок примитивной формы, исключительно для примера.
Здесь видно, что каждый отдельный элемент окрашен в разные цвета. Каждый цвет — это будущий текстурный сэт. Текстурными сэтами принято называть набор PBR текстур. Именно те текстуры, которые используются в игровых моделях, а именно Base Color, Roughness, Metallic, Normal Map и т.д. Делается это для того, чтобы достичь примерно одного значения текселя на всю модель. Иначе может получиться так, что даже в одну единственную текстуру 8К всё не уместиться. Начнём с красной кабины, по своей сути это почти куб. Но если применить на этот меш Auto Shooth, то Вы заметите, что все эджи кроме одного остались острыми. Это первое правило UV развёртки — швы наносятся на Хард Эджи. Заходим в режим редактирования, помечаем все такие эджи как Hard Edge. Это может потребоваться в последующем, если Вы вдруг захотите объединить несколько мешей в один, но у них в настройках Auto Smooth будет стоять разное значение угла. Сделать это довольно просто. В верхнем меню выбираем Select и далее Select Sharp Edges. Далее выбираем в нижнем углу значение угла, которое соответствует углу сглаживания Auto Smooth.
Далее жмём правую кнопку и сначала выбираем Mark Sharp, чтобы пометить эджи как острые, а потом Mark Seam, чтобы отметить швы. После этих манипуляций дважды жмём U и получаем развёртку.
В угловом меню можем настроить параметр Margin — отступ отдельных шеллов друг от друга, который обязательно должен быть. Во всех современных 3D движках есть технология называемая MIP mapping. Чем дальше будет находиться модель от взгляда игрока, тем меньшее разрешение текстуры будет применяться. Это происходит автоматически. И если в развёртке модели будут отсутствовать отступы, это приведёт к нежелательным визуальным артефактам. Теперь перейдём к колёсам.
Хоть их и шесть, как на изображении выше, но нам совершенно не обязательно разворачивать их все. Это приведёт к тому, что придётся увеличивать разрешение текстуры, чтобы получить требуемый тексель. Именно поэтому мы также применили модификатор Mirror на каждое отдельное колесо. В итоге после развёртки, запекания и текстурирования получим текстуру для колеса, которую можно будет применить для каждого из них. Возьмём передние колёса, отключим видимость модификатора и перейдём в режим редактирования.
Колесо имеет форму цилиндра. Отметив на развёртке все хард эджи и развернув этот элемент мы получим следующую картину:
Стенки цилиндров ВСЕГДА разрезаются. Нам нужно добавить дополнительный шов. В данном случае это колесо, которое может крутиться, но я всё равно добавил его внизу. Обычно такие швы стараются прятать, нанося их в тех частях модели, которая больше всего будет скрыта от взгляда наблюдателя.
Помимо внешней стенки, есть ещё одно место, в которое стоит добавить шов. Это внутренняя сторона ближе к центру. На изображении ниже, Вы можете увидеть, куда мы нанесли его.
Теперь можно повторно нажать U, результат будет совершенно иной.
Вы можете заметить, что осталось ещё одно кольцо. В случае с боковой частью колеса это может быть оправдано, поскольку можно будет проще нанести особую текстуру. Но исключительно в обучающих целях давайте добавим ещё один шов и попробуем развернуть.
Иии. ничего не изменилось, почему? Это связанно с особенностями алгоритмов. Тут на помощь придёт аддон TexTools, он сильно облегчает работу с развёрткой. После его установки в окне развёртки в N-панели будет вкладка аддона со всеми опциями. Разверните вкладку UV Layout и найдите кнопку Rectify. Теперь выделите клавишей L нужный остров и нажмите на эту кнопку. Кольцо превратилось в полоску.
Упакуем развёртку, то есть доверимся алгоритмам, которые расположат наши шеллы в пределах одного квадрата максимально компактным образом. Выделяем всё, что есть на развёртке. Далее в верхнем меню в пункте UV ищем «Pack Island». В меню, которое всплывёт нас интересуют только два пункта. Первый это Rotation Method, там нужно выставить Cardinal, это будет вращать шеллы только с шагом в 90 градусов. Второй — Margin, это индивидуальные отступы каждого шелла.
В результате получаем следующий результат.
Тут опять всего один меш и очень примитивная форма. Да и мы пользовались встроенным упаковщиком. Его алгоритмы хоть и подтянули в версии 3.6, но для создания развёртки для игровых моделей нет такой важной функции, как выставление отступа в пикселях. Поэтому
чуть позже рассмотрим альтернативный способ запаковки с помощью ещё одного аддона. Вернёмся к понятию текселя. Тексель — это величина, обозначающая плотность пикселей текстуры на единицу пространства. Как мы можем измерить его? В аддоне TexTools есть функционал, позволяющий определить это значение. Убедимся, что к мешу применён Scale. Без этого, значения будут некорректными. Во вкладке UV Layout в самом низу есть блок, отвечающий за функции определения текселя. Необходимо выбрать разрешения предполагаемой текстуры.
К примеру это будет 1024. И после нажимаем клавишу Pick, чтобы узнать значение. Сверху в этом блоке появится цифра. В нашем случае это 422. Но что она нам даёт? В чём измеряется тексель? Как определить, какой тексель нам нужен? В этом аддоне значения показываются в количестве пикселей на метр(px/m), иногда ещё они могут указываться в пиксель на сантиметр(px/cm) и в таком случае значение было бы равно 4.22. Здесь не важно, в каких именно единицах Вы будете измерять тексель, ведь знания базовой математики легко позволят Вам перевести метры в сантиметры и наоборот. Но давайте вернёмся к вопросу о том, какой тексель нужно подбирать? Главным фактором будет то, на каком именно расстоянии наблюдатель будет видеть модель.
На изображении выше Вы можете увидеть распределение качества текстур в зависимости от удалённости взгляда игрока. Все значения указаны в px/cm. Удалённые объекты имеют средний тексель ~1.26, те, что поближе уже ~2.56, и самые близкие ~5,12. Это усреднённые цифры, и к примеру в шутерах от первого лица величина текселя оружия в руках главного героя может быть 10,24 px/cm и выше. Вообще эта величина является частью технического задания при создании моделей, но логика определения всегда примерно одна. Обычно, в рамках одной модели стараются придерживаться одного значения текселя. Но так бывает не всегда. Взять тот же самый легковой автомобиль, его днище игрок практический не видит, значит размер текстуры, а следственно и тексель можно уменьшить. Делается это
прежде всего для оптимизации. На оружии от первого лица принцип очень схож, в зависимости от стороны и удалённости от условного края экрана тексель может быть разным. Вернёмся к нашему грузовику. Займёмся его рамной частью.
Во вьюпорте, в режиме Solid включим рандомное присваивание цвета каждому мешу. На этом примере разберём ещё один способ экономии свободного места на пространстве UV развёртки. Условные бензобаки и часть рамы, которые на изображении можно определить по бежевому и голубоватому цвету имеют модификатор Mirror, скрыв видимость которого мы уменьшим количество мешей для развёртки. А вот центральные «балки» очень похожи друг на друга. И здесь есть одна важная хитрость. Они созданы путём дублирования не через Shift+D, а Alt+D. И таким образом получается, что они все зависимы от самого первого объекта. То есть создав развёртку для одного меша она будет применена для всех остальных. Отчасти это можно назвать оверлапами (Overlaps). Если мы после всех манипуляций сделаем каждый экземпляр уникальным, то есть уберём эту самую зависимость и вернёмся к развёртке, то мы увидим, что на развёртке все острова как бы лежат друг на друге. Как Вы понимаете это сильно экономит нам свободное пространство. Если не углубляться сильно в детали, чем меньше свободного пространства на UV развёртке тем лучше. Это позволит получать более высокое значение текселя, а такжеиметь меньшее количество текстурных сетов. Все эти действия проделываются ради оптимизации размера текстур моделей. Хотя с каждым годом производительность компьютерного железа возрастает, но его возможности не безграничны. Вернёмся к развертке. Примерно вот так будет выглядеть все меши, относящиеся к текстурному сету рамы, после отключения всех модификаторов и скрытия сдублированных элементов.
Далее представлены изображения, показывающие развёртку каждого отдельного элемента.

Теперь это всё нужно упаковать. Выделим все меши, перейдём в режим редактирования.
И что мы здесь видим? Вновь недопустимые пересечения. Но это лишь одна из проблем, которую мы можем решить упаковкой. Перед этим добавим чекер-текстуру в систему нод.
Невооружённым глазом видно, что размер чекера разный. Нам хотелось бы, что он стал одинаковым. Для этого в режиме редактирования выделяем все меши, выделяем всё что есть на развёртке и в верхнем меню в пункте UV ищем «Average Island Scale»
Как следует из всплывающей подсказки, это усреднит размер каждого острова относительно друг друга. После этих манипуляций развёртка будет выглядеть примерно так.
И казалось бы, теперь мы готовы к упаковке. Н о нет. Основная, вытянутая часть рамы слишком длинная, это приведёт к не самому оптимальному заполнению свободного пространства. Как мы можем решить эту проблему? Нанести шов в самое незаметное место этого меша. Самым логичным будет добавить Loop Cut на геометрии через Ctrl+R и нанести на него шов. Да, это нарушит главное правило того, что швы должны наносится на острые углы, ведь тут совсем плоская часть. Но это тоже метод оптимизации. Да, это приведёт к тому, что текстура может лечь не самым лучшим образом, но этот шов будет находиться в том месте, в котором наблюдатель практически не будет его видеть напрямую. И после повторной развёртки и переопределения размера получаем уже куда более приятную картину.
Вот теперь то можно и упаковывать. Давайте рассмотрим альтернативный, более правильный способ упаковки. Нам понадобится аддон UV Packer. Его установка чуть сложнее, чем обычно, но не должна вызвать серьёзных трудностей. На сайте аддона есть простая и понятная инструкция. Давайте быстро разберём, какие именно инструменты имеются в N-панели этого аддона.
Красным отмечен первый важный блок. Сперва идут два чекбокса. Первый чекбокс включен по-умолчанию. В данном случае все объекты будут упаковаться в рамках одной карты. Если же выключен, то каждый объект будет упакован отдельно. Но нам как раз таки нужен первый вариант. Второй чекбокс не активирован. Из его названия можно понять, что при его активации будут упаковываться только выделенные шеллы, нам это так же не нужно. Далее мы видим кнопки, в которых можем выбрать предполагаемое будущее разрешение и ниже padding, это же отступ шеллов друг от друга. Укажем разрешение 1024 и отступ 8. В зелёном блоке идёт тип упаковки, на выбор есть два: «Эффективный» и «Высокое качество». По личным наблюдениям разницы почти нет. Два следующих чекбокса отвечают за изменение масштаба шеллов и вращение. Изменять масштаб на не нужно, а вот вращать как раз таки нужно. Ниже укажем величину вращения 90 градусов. Если Вы играли в тетрис, то понимаете, что прямоугольные блоки идеально комбинируются только под углом 90, если угол будет другой, то это приведёт к массе проблем, как увеличению свободного пространства, так и к некоторым искажениям. Но всё это по большей части относиться к твердотельным. Ниже есть пункт, который касается количеста занимаемых тайлов, но это более продвинутая техника, которая касается темы UDIM, её мы не будем касаться в этой статье. Когда все пункты настроены и время нажать кнопку Pack.
После этого видим в начале красного блока информацию по занятому пространству и затраченному времени на упаковку. И если второе значение нас не сильно интересует, то вот занятое свободное пространство важный параметр. При развёртке нужно стараться достигать максимально возможного значения занятого пространства. В нашем случае вышло ~58%. Идеально, когда это значение равно 70% или выше. Но всегда нужно искать баланс между количеством швов на развёртке и плотностью упаковки. В нашей модели остался ещё кузов, но его уже не будем разворачивать. Все ключевые и основные моменты мы уже тут разобрали. Далее давайте разберём с какими ошибками и особенностями Вы можете столкнуться в работе с развёрткой.

Ошибки которые могут возникнуть при развертке

1. Растяжки. Чтобы их увидеть, нужно воспользоваться опцией «Display Stretch». На скриншоте Вы видите где именно находится эта опция в Blender.
Теперь визуально цветами мы можем увидеть растяжки. На примере всё залито синим цветом. И чем больше будут растяжки, тем ближе к красному цвету они будут становится. Можете вручную подвигать любую точку чтобы увидеть изменения цвета. Если на объекте будет чекер, на нём это также будет отражаться — он будет сильно искажён.
Красный цвет, это максимальный предел искажения, который редко встречается на практике. Недопустимыми значениями чаще всего являются зелёный и жёлтый цвет. Голубой цвет вполне допустим. Небольшие искажения могут быть компенсированы алгоритмами наложения текстуры. А вот при тайловом текстурировании мельчайшее растяжение будет бросаться в глаза. 2. Пересечение шеллов. Это вполне понятная и очевидная проблема, которую легко исправить грамотной упаковкой. Для уникального маппинга это недопустимо. В статье мы уже упоминали, что между островами всегда должно быть расстояние. Это нужно для технологии Mip Mapping. Повторимся, эта технология понижает разрешение текстур в зависимости от взгляда наблюдателя. И если отступа не будет, или он будет недостаточным, это приведёт к визуальным артефактам. Вот вам небольшая шпаргалка, показывающая необходимое значение отступа в зависимости от разрешения текстуры. 3. Развёртка цилиндра и кольца. Стенки цилиндров всегда разрезаются минимум с одним швом, как впрочем и кольца. Это поможет сократить свободное занимаемое пространство и избавить от возможных искажений текстуры. Вот как пример. 4 одинаковых фигуры, сделанные из цилиндра. Если кольца не развернуть, то получаем 66% занятого пространства.
А вот при развернутых в полоску кольцах получаем значение порядка 77%
Если каждый остров крупнее, то и тексель больше. А как следствие этого и качество получаемой текстуры. 4. Харды и софты. Если после каких-либо манипуляций хард эдж станет софтом, то это может повлечь за собой целый ворох проблем, от банально некорректного шейдинга, до того, что запекаемая текстура будет совершенно некорректной. Минимальный угол, который можно считать хардом это 60 градусов. Но всегда есть исключения. Главное помните — если есть хард эдж, то на нём обязательно должен присутствовать шов. Остальные швы наносятся по ситуации в каждом конкретном случае. В этой статье мы постарались максимально разобрать все основные моменты относящие к основам развёртки. Показали всё на примерах и обозначили ключевые термины, без которых невозможно стать профессионалом в сфере 3D. После того, когда приходит понимание того, как именно создаётся развёртка это станет очень простой рутиной. Но без этой рутины нельзя создать полноценную модель. А если Вы хотите узнать больше и планируете развиваться в сфере создания игровых 3D Hard Surface моделей, то не забудьте посетить наш официальный сайт и группу Вконтакте. С Вами была команда MFG, до связи!

780 0 850 12

>>> Да и мы пользовались встроенным упаковщиком. Его алгоритмы хоть и подтянули в версии 3.6, но для создания развёртки для игровых моделей нет такой важной функции, как выставление отступа в пикселях.

Похоже что Margin Method Fraction может паковать с отступами в пикселях.
Для этого в поле Margin надо ввести: «кол-во пикселей» разделить на «размер текстуры».
Например, если нужен отступ в 4 пикселя для текстуры 1024, то в поле Margin надо ввести 4/1024, это будет 0.003906.
Тогда от края он делает отступ 4 пикселя, а между островами 8 пикселей.

(UV) Развёртка стилизованного персонажа

Это 4 статья из цикла про создание стилизованных персонажей. Вот ссылки на все пять, выбирай ту, которая тебе нужна:

  1. ААА-пайплайн создания стилизованных 3D-персонажей.
  2. Как выглядит скульпт в ZBrush от первого лица. Полезные кисти и инструменты.
  3. Чек-лист по ретопологии в Maya. Особенности ретопа стилизованного персонажа.
  4. Как легко сделать UV-развертку 3D-модели. Чек-лист по развертке в Maya.
  5. Запечка стилизованного персонажа по ААА-пайплайну. Как запечь low poly модель.

Что такое развертка и зачем она нужна?

3D-модель сделана из объемных форм. На любой объект в редакторе можно положить материал, выбрать его цвет и настроить блик. Но положить текстуры на 3D-объекты нельзя, пока ты не сделаешь развёртку. Программа просто не знает как накладывать плоскую текстуру на геометрию.

Отсюда возникает отдельный этап пайплайна — UV-развертка. Развертка переносит объемные формы на плоскость для того, чтобы на них можно было положить текстуры.

Важно: развертку всегда создают из лоуполи модели, которую мы сделали на прошлом этапе — ретопологии.

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

Готовая развертка стилизованного персонажа.

Инструменты для работы

Удобнее всего делать развертку в Maya , но принцип работы универсален для всех аналогичных программ. Везде есть автомапинг, разрезы и чекер. Если хочешь максимально быстро разобраться в интерфейсе Maya и сделать свою первую 3D-модель, присмотрись к нашему бесплатному курсу Intro 3D.

Сегодня, для работы в Maya нам понадобитсявкладка UV Editor и UV Toolkit .

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

UV Editor и UV Toolkit в Maya

Авторазвертка нужна, чтобы наши полигоны появились на рабочем поле. Проще всего это сделать при помощи автоматической развертки с опцией Camera-Based .

Camera-Based развертка
Получаем такой результат:

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

Вот как можно создать разрезы:
Выделяем Edge, открываем UV Toolkit -> Cut and Sew -> Нажимаем Cut

Кнопка Cut

Существует 3 основных правила, в каких местах нужно делать разрезы (швы). Давай подробно разберем каждое из них:

1. Швы в незаметных местах

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

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

Прячем швы на UV

Есть проблема: форма рога основана на цилиндре. Так или иначе нам нужно добавить хотя бы один разрез, чтобы разложить его на плоскость. Этот разрез мы делаем снизу, потому что игрок чаще всего будет видеть персонажа или спереди, или сзади.

В этом месте разрез на роге почти не видно:

2. Швы в местах, где есть Hard Edge

Тут все просто: везде, где есть хард — добавляй шов. Так у тебя будет меньше проблем при запечке.

Добавляем швы на Hard Edge

3. Швы на стыке двух разных материалов

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

Разделяем разные материалы швом

Раскладываем модель на плоскость

Авторазвертку мы сделали, швы тоже. Пришло время разложить нашу модель на плоскость. Для этого используем функцию Unfold . Она разделит модель на несколько отдельных UV шеллов в местах, где есть швы.

Функция Unfold
Теперь полученные UV шеллы поставим на расстоянии друг от друга:

Чекер — это текстура с шахмотной доской, которая помогает проверить развертку на ошибки. Если все хорошо, то квадраты чекера будут ровного размера. А если квадраты вытянуты или изогнуты — при текстурировании то же самое произойдет с текстурой. Она начнет некрасиво тянуться. Отсюда и появился термин «потяги».

Давай добавим чекер, и посмотрим есть ли потяги. Потом будем исправлять.

Your browser does not support the video tag.

У нас появилась новая проблема — квадраты чекера разного размера. Это значит, что разрешение текстур на финальной модели тоже будет меняться. Там где квадраты маленькие — будет высокое качество текстур, а где большие — низкое.

Сделать квадраты чекера одного размера можно двумя способами:

1. Автоматический способ

Maya сама может выровнять размер квадратов. Для этого нажимаем клавишу Shift и жмём на кнопку Layout . Всплывает окно с настройками — выбираем Preserve 3D Ratios и нажимаем Apply .

Квадраты одного размера

2. Альтернативный способ

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

Для этого:
1. Выбираем элемент с нужным размером квадратов чекера, нажимаем UV Toolkit → Tools → Texel Density → Get .
2. Выбираем все остальные элементы модели, нажимаем кнопку Set .

Your browser does not support the video tag.
Теперь квадраты одного размера, но в некоторых местах они искажены, значит на развертке есть потяги.

Пример потягов на UV

Слегка поворачиваем UV шеллы, чтобы выровнять чекер:

Your browser does not support the video tag.

Добавляем дополнительные швы и нажимаем Unfold . Одного прохода недостаточно, поэтому мы добавили разрезы в трех разных местах шлема:

Your browser does not support the video tag.
Первый шов
Your browser does not support the video tag.
Второй шов
Your browser does not support the video tag.
Третий шов

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

Оптимизируем UV шеллы

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

1. Мапим длинные шеллы в прямую линию

Как ты помнишь, на рогах есть тряпка. Она примерно прямоугольной формы, но программа автоматически развернула ее вот так:

Если на ткани будут складки или фактура — текстура исказится и криво ляжет на модель. Чтобы избежать этого, попробуй мапить подобные шеллы в прямоугольники.

Для этого выбираем крайний вертекс в UV редакторе, зажимаем клавишу B, выбираем соседние элементы и опускаем вниз:

Your browser does not support the video tag.

Теперь нужно выпрямить эти шеллы. Выбираем их и включаем функцию UV Toolkit → Unfold → Straighten UVs:

Your browser does not support the video tag.

В этом примере мы выделили не весь шел, а его часть, потому что функция Straighten UVs не любит треугольники — они сильно искажаются. Треугольники так мапить нельзя, поэтому мы выпрямляем этот шел по частям, не трогая треугольник.

Your browser does not support the video tag.
Проверяем этот кусок на потяги, видим, что квадраты чекера стали неровными:

Чтобы это исправить, немного смещаем эджи на UV:
Your browser does not support the video tag.

По такому принципу мы будем мапить все аналогичные элементы модели.

2. Шеллы не должны пересекаться

Если шеллы пересекаются — появятся артефакты на текстурах. Следи, чтобы такого не происходило:

3. Шеллы должны быть на расстоянии друг от друга

Нельзя мапить объекты на UV вплотную друг к другу. Они должны быть на небольшом расстоянии друг от друга — это называется паддингом.

Your browser does not support the video tag.

4. Кладём шеллы в первый квадрат UV

Есть 2 вида мапинга: тайловый и уникальный. Тайловый мапинг используют в основном для зданий и предметов окружения, а уникальный — для стилизованных персонажей.

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

Как это сделать?
Выбираем все шеллы и нажимаем UV Toolkit → Arrange and Layout → Layout .

Your browser does not support the video tag.

Как видишь, программа положила все шеллы внутрь первого квадрата, но теперь в нем слишком много пустого пространства. Чем больше места занимают шеллы, тем выше будет разрешение текстур у финальной модели.

Есть еще одна автоматическая функция, которая исправляет грехи предыдущей. Находится она в Layout UVs Options .

Настройки функции
Но и эта функция не даёт идеального результата, плюс довольно долго грузится:

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

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

Развертка других элементов стилизованного персонажа

1. Все ремешки и тряпки мапим в прямую линию.

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

3. Повторяющиеся элементы делаем оверлапами. Поскольку эти элементы идентичны, мы мапим их вместе и тем самым экономим место на UV.

Если хочешь подробно узнать про оверлапы, смотри это видео:

4. Делаем финальную проверку развертки. Включаем функцию UV Distortion , тогда развертка синим цветом покажет самые сжатые полигоны, а красным — растянутые: Если модельгорит как светофор — нужно переделывать.

5. Проверяем, что все швы спрятаны.

Другие полезные функции

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

Если ты сделал лишний разрез, можешь обратно сшить выбранные шеллы — выбери их и нажми Sew .

Your browser does not support the video tag.

Эта функция автоматически оптимизирует выбранные точки на UV.

Your browser does not support the video tag.

Позволяет отразить UV шелл.

Your browser does not support the video tag.

Отлично, теперь ты знаешь все основные функции и сможешь самостоятельно сделать развертку стилизованного персонажа! Чтобы ничего не забылось, лови чек-лист по развертке:

Чек-лист по развертке

  1. Включаем Camera-Based авторазвётрку
  2. Делаем разрезы на UV
  3. Добавляем чекер, выравниваем
  4. Убираем потяги
  5. Оптимизируем шеллы
  6. Раскладываем все шеллы внутрь первого квадрата

Если тебе понравилось делать развертку шлема с нами и теперь ты хочешь освоить весь пайплайн, присмотрись к курсу STYL. Там ты изучишь все этапы пайплайна от скульптинга до анимации и научишься моделить стилизованных персонажей, как это делают в больших игровых студиях. Преподаватели — лидеры индустрии, которые работали с Blizzard, Sony, ID Software. По итогу в твоем портфолио будет полноценный «живой» персонаж, который дышит, двигается и вселяет трепет во врагов. Полученных знаний хватит, чтобы устроиться в игровую студию или работать на фрилансе.

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

  1. ААА-пайплайн создания стилизованных 3D-персонажей.
  2. Как выглядит скульпт в ZBrush от первого лица. Полезные кисти и инструменты.
  3. Чек-лист по ретопологии в Maya. Особенности ретопа стилизованного персонажа.
  4. Как легко сделать UV-развертку 3D-модели. Чек-лист по развертке в Maya.
  5. Запечка стилизованного персонажа по ААА-пайплайну. Как запечь low poly модель.

Понравилась статья?

ХОЧЕШЬ ПОЛУЧАТЬ ЛУЧШИЕ СТАТЬИ
ОТ XYZ РАЗ В НЕДЕЛЮ?
Подпишись на рассылку XYZ
Нажимая на кнопку, вы соглашаетесь с условиями обработки данных
ААА-пайплайн создания стилизованных 3D-персонажей. Все этапы 3D-моделирования.

Знание пайплайна поможет тебе замоделить любого персонажа. Это универсальная последовательность этапов моделирования и разработки 3D-моделей персонажей для игр.

Как сделать UV-развертку в Blender 2.8+

UV-развертка необходима для того, что-бы мы могли наложить текстуру на 3D-объект. А если точнее, с помощью развертки мы указываем как именно 2D текстура должна накладываться на 3D объект.

Я буду показывать на примере Blender 2.8. На примере кубика, так как его геометрия самая простая, да и он есть на сцене с самого начала. Если выбрать куб и перейти на вкладку UV-Editing, то вы увидите вот такую картину.

Как сделать UV-развертку в Blender 2.8+

Нажатием на TAB перейдем в режим редактирования и выберем все вершины нажатием A. Слева мы увидим уже готовую развертку для куба.

Как сделать UV-развертку в Blender 2.8+

Но, что делать если геометрия не стандартная? Для этого нужно подумать как разместить швы.

Швы — это разрезы на поверхности 3D объекта, которые разрезают объект так чтобы его можно было развернуть на плоскость.

Хм, наверное звучит не совсем понятно, но думаю я смогу показать все на примере. Давайте изуродуем развертку этого куба как по нашему мнению «будет лучше»(нет)��.

Я выделил верхние несколько граней. Делается это ЛКМ в режиме выделения граней, который в свою очередь выбирается вверху слева или на цифрах на клавиатуре, нажатием 2.

Как сделать UV-развертку в Blender 2.8+

Далее нужно пометить их как швы. Жмем ПКМ и в меню выбираем Mark seam (Пометить шов). Далее снова выбираем все кнопкой A и сверху в меню выбираем пункт UV. В выпавшем меню жмем Unwrap. Слева отобразиться новая развертка.

Как сделать UV-развертку в Blender 2.8+

Кхм, даа.. Ну, что навыделяли то и получили) Все это было сделано для примера и понимания того как нужно или ненужно делать развертку. Думаю лучше вернуть старую развертку. Выделяем все кнопкой A и помечаем все грани как швы. ПКМMark seam. Далее в меню вверху UVUnwrap.

Как сделать UV-развертку в Blender 2.8+

Не плохо, но это не то что было. Можно конечно и так пользоваться, но мы ведь хотели «как было«. Давайте сотрем все метки швов.

Для этого выберем все грани, ПКМClear seam. UVUnwrap.

Как ни чего не поменялось? Все должно было сработать!

Ладно ладно, шучу, нужно указать стандартные швы в ручную��.

У меня получилось что-то такое.

Как сделать UV-развертку в Blender 2.8+

Попробуйте сделать это сами, а что-бы помочь понять «как?«. Представьте, что этот куб нужно собрать из картона или бумаги. Слева эта самая бумага и показывается. А швы это разрезы по собранному кубу.

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

Рисование по объекту

Ну вот вы и разобрались как делать развертку. Возможно даже уже нажали на пункт верхнего меню Texture paint. И при попытке что-то нарисовать у вас вылезла ошибка «нет текстуры». Все правильно. Мы ведь не сохранили текстуру и не назначили ее объекту.

На вкладке Texture paint в верхнем меню выбираем New и в новом окне настраиваем параметры и название будущей текстуры.

Как сделать UV-развертку в Blender 2.8+Как сделать UV-развертку в Blender 2.8+

И сохраняем текстуру куда угодно, лучше в папку с вашим проектом.

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

Как сделать UV-развертку в Blender 2.8+Как сделать UV-развертку в Blender 2.8+Как сделать UV-развертку в Blender 2.8+

Куб почернел, так как текстура пустая. Теперь можно красить куб удобным способом. Например можно делать это прямо в Blender.

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

Как сделать UV-развертку в Blender 2.8+

Текстуру нужно сохранять после изменения, как мы уже сохраняли.

Так же, естественно, можно редактировать текстуру в любом графическом редакторе, например, GIMP, PhotoShop и т.д.

Ну вот, думаю к этому моменту вы уже понимаете как сделать UV-развертку в Blendr 2.8+. Спасибо за внимание и легкого моделирования!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *