Как сделать развертку персонажа

Обновлено: 06.07.2024

Давайте немного углубимся в отображение текстур и посмотрим, как точно накладывать текстуры на объекты. Мы рассмотрели основные проекции, но 3D программа будет включать в себя и так называемые UV развёртки. UV развёртки отображают плоское, 2D изображение на 3D объект. И большая часть программного обеспечения будет иметь то, что называется UV-редактором. Вот здесь у нас есть простой куб с шестью гранями. Если я выбираю одну из этих граней, то в UV редакторе мы увидим, какое изображение соответствует это области. Теперь мы можем взять его и перемещать в редакторе, чтобы скорректировать отображение, или мы можем спуститься на UV уровень и фактически управлять им на детальной основе. Таким образом, это дает нам полный контроль над тем, как это изображение совмещается с объектом.

Помните, что изображение - развернутая версия объекта. И если мы возьмём его часть, мы сможем изменять отображение карты на объекте. Это очень простой пример, но редактирование UV развёртки является самым мощным инструментом в работе со сложными объектами. Здесь у нас есть простой персонаж, и у меня есть развертка для него. Это - карта изображения, которую мы используем для персонажа. И Вы можете заметить, что это выглядит уже сложнее. Поэтому давайте посмотрим на то, как она отображается. Если я посмотрю на персонажа в UV редакторе, Вы увидите, как он развернут.

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

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

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

В этой статье Johann Tan, художник по персонажам из Creative Assembly, расскажет, как одна из миниатюр мира Warhammer – древень – была реализована в игре серии Total War и какие приемы были использованы для ускорения моделирования этой сложной и крупногабаритной модели.


Шаг 1 – Изучение миниатюр, концептов и мифологии

Один из самых интересных стадий предназначена для понимания нашего персонажа. Она включает в себя чтение книг и изучение фигурок и концепт-арта для того, чтобы определить ключевые элементы дизайна и характера, которые вложили в персонажа его создатели из Games Workshop. Согласно истории вселенной Warhammer, древни тесно связаны с лесными обитателями – если нужно, они будут яростно защищать их от незваных гостей. В игровой модели Total War Мы хотим показать этот баланс свирепости и добродушия. Для этого мы с самого начала работы тесно сотрудничаем с командами концептеров и аниматоров.


Шаг 2 – Сбор референсов

Помимо обязательного сбора материалов и анатомических референсов, мы можем многое почерпнуть из огромного количества иллюстраций из вселенной Warhammer и из мифологии. Мы всегда начинаем с определения ключевых элементов дизайна Games Workshop, однако при этом стараемся отыскать моменты, где мы можем выразить наше собственное видение персонажа. Обычно мы находим интересный фильм или героев из поп-культуры, которые похожи на наших персонажей и заимствуем детали у них. Они помогают раскрыть личность нашей модели.


Шаг 3 – Блокаут

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


Шаг 4 – Лицо

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


Шаг 5 – Создание ветвей

Для модели древня нужно создать и детализировать огромное количество ветвей. Для создания первичных форм используются Zspheres, а затем Surface Noise (Tool > Geometry) с альфой древесной коры для вторичных и третичных форм. Вы легко можете спрятать повторяемость паттерна альфы с помощью слайдера Max Twist в меню Adaptive Skin. В Zbrush есть отличный плагин UV Master, который позволяет быстро сделать развертку. Она нужна, чтобы придать одинаковое направление UV и альфе, которую вы используете.


Шаг 6 – Создание тела из лиан

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


Шаг 7 – Детализация

В игровом движке листья создаются с помощью карт прозрачности, поэтому нужно сделать блокаут небольшой группы веток с листвой. Убедитесь, что листва достаточно густая но без повторяющихся паттернов (А). Для детализации древесной брони нужно применить несколько альф, затем проскульптить по ним до желаемого результата(В). Для создания древесных сколов на некоторых гранях брони мы сделали IMM кисти кусков дерева(С). Для мха мы использовали NanoMesh на дубликате геометрии(D). Несмотря на то, что потом мы применили карты волос, наилучшие результаты получаются при наличии “запеченой” детализации.


Шаг 8 – Создание паттерна переплетеных лиан

Маскирование плоскости c Wrap Mode (Brushes> Curve> WrapMode) позволяет набросать лианы в виде повторяющегося паттерна и сделать Extract. Создав несколько слоев этих лиан, мы покажем, насколько они плотно переплетаются на древне. Затем вы просто моделите любые повторяющиеся меши, из которых состоят большие плетеные элементы. Сделайте развертку и вновь расположите ее по направлению альфы. Это позволит вам использовать повторяющиеся паттерны в качестве шумов. Чтобы избежать неестественного вида плетения, после наложения шумов на геометрию, проскульптите ее вручную.


Шаг 9 – Снижение полигонажа

Это важный шаг для перехода к ретопологии. Он позволяет вам импортировать hi-poly модель в 3ds Max и не перегружать компьютер. Кроме того, это ускоряет процесс запекания, потому что программе нужно просчитывать меньше вертексов. До того, как вы используете Decimate, убедитесь, что сохранили дубликат сабтулов, позже они потребуются вам для Polypaint. Перед тем, как начать экспорт меша в OBJ для последующего переноса в 3ds Max, раскрасьте сабтулы в базовые цвета для selection/material ID.


Шаг 10 – Low poly моделирование

Мы широко используем плагин Wrapit в 3ds Max, который прекрасно дополняет Graphite tools. Он позволяет набросать топологию ветвей по hi-poly геометрии и быстро получить базовые формы. Опция Auto snap дает возможность использовать все привычные инструменты моделирования, что тоже облегчает работу. Все это помогает быстро получить результат без необходимости волноваться за полигонаж модели. Гораздо проще снижать количество полигонов, чем потом их добавлять.


Шаг 11 – Быстрая UV- развертка

Когда вы заканчиваете low poly модель, нужно задумываться о том, как вы будете ее разворачивать. Создание multi-sub material – уникальная особенность 3ds Max, которая позволяет вам накладывать различные материалы на группы полигонов по material ID. Она помогает визуализировать UV-шеллы. Zbrush понимает material ID как разные полигруппы, которые вы можете сохранить как отдельные части UV, выбрав нужную опцию в UV Master. Это позволит получить отличную базовую развертку, которую вы доведете до ума в 3ds Max. Если вы экспортируете модель в Max через GoZ, то material ID сохраняются, и вы можете используете их как selection groups в UV Editor.


Шаг 12 – Текстурные листы

Текстурные листы наших персонажей обычно поделены на части: голова, тело, ноги и аксессуары. Для удобства работы с текстурами мы сшиваем все эти отдельные куски вместе с помощью UV Xform, подгружаемого к модификатору UV Unwrap. Этот модификатор позволяет вам масштабировать и корректировать UV-шеллы разных частей геометрии. Когда нужно будет снова разрезать UV, мы просто удаляем этот модификатор.


Шаг 13 – Polypaint

Этот метод дает мгновенную обратную связь. Можно легко увлечься процессом, но цель полипейнтинга – установить общие цветовые области. Детализация, например, впадины, трещины и края делаются с помощью Quixel DDO. Polypaint позволяет вам рисовать в режимах смешивания, похожих на те, что есть в Photoshop, а также создавать градиенты с помощью auto masking/ masking. Тут некоторые части геометрии были повторно использованы после создания других вариантов древней, но их легко подогнать по цвету в Photoshop.


Шаг 14 – Запекание карт

В xNormal вы можете установить диапазон расстояния для hi-poly моделей (Position offset) перед запеканием. Если вы используете настройки измерения 3ds Max по умолчанию, то можно задать расстояние, кратное 100. Это позволит вам не использовать ограничительные сетки (cages) и просто установить длину луча на большее значение, например, на 1 или 2 единицы. Мы будем запекать Normal, Bent Normal, Vertex Color and Ambient Occlusion. Чтобы компьютер на завис в процессе, установите низкий приоритет для x Normal в диспетчере задач Windows.


Шаг 15 – Детализация текстур

Мы подключили карту нормалей в DDO, что бы снять детализированные карты Cavity и Edge. После этого переносим все остальные карты в Photoshop и создаем сцену в Marmoset для предпросмотра текстур. Добавляем уровней на частях модели для получения большего контраста на Polypaint-текстурах. Мы решили, что лианам на туловище необходимо более четкое разделение, поэтому мы вернулись в Zbrush и сделали Polypaint from polygroup. Затем эту запеченую карту мы отправили обратно в Photoshop, и поместили на оригинальный Polypaint – слой c режимом смешивания Soft Light.


Шаг 16 – Добавление модели в игру

Подготовка персонажа к переносу в игру требует последних штрихов: нарезки текстур на отдельные компоненты; создания LoDs (уровней детализации) с помощью Simplygon; подключения всех текстур к соответствующим материалам 3ds Max и проверки корректного нейминга всех составляющих. С точки зрения художника по персонажам, теперь модель можно отправлять дальше по пайплайну, чтобы древень как можно скорее притупил к разгрому своих врагов на полях сражений Total War.

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

Чтобы изображение накладывалось правильно на модель, были придуманы развёртки (UV Map).

Развёртка — это соотношение между координатами на поверхности трехмерного объекта (X, Y, Z) и координатами на текстуре (U, V).

Развертку можно строить автоматически, но иногда приходится делать это вручную.


Пример того, как развертка накладывается на трехмерных объект

Алгоритм настройки текстуры с помощью развертки следующий:

  1. Задать вручную ребра, по которым будет проходить разрез модели (Ctrl+E -> Mark Seam). Если этот пункт пропустить, то программа разрежет модель по всем ребрам.
  2. Выделить полигоны, которые должны быть в развертке.
  3. Создать развертку (U -> Unwrap).
  4. *Если ты хочешь сам создать текстуру (например, нарисовать или сделать в фотошопе), то сохранить шаблон развертки.
  5. Наложить текстуру.
  6. Задать наложение текстуры по развертки.
  7. Подкорректировать положение текстуры.

Пошаговое наложение текстуры при помощи развертки

На примере кубика с цифрами разберем наложение текстуры с помощью развертки по шагам.

    1. Создай куб и перейди в Edit Mode. Выдели ребра, как на рисунке (по ним будут проходить разрезы развертки).Чтобы перейти в режим прозрачности объекта нажми Z.


      1. Пометь ребра для разреза: Ctrl+E -> Mark Seam.


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


          1. Выйди из режима прозрачности объекта (клавиша Z). Выдели все полигоны и создай развертку: U -> Unwrap.


            1. Раздели экран на две части и перейди в одной из областей на вкладку UV/Image Editor.


              1. Включи синхронизацию выделения объектов на развертке и 3D модели (значок снизу). Теперь, выделяя элемент на одной из частей экрана, этот же элемент выделяется на другой части.


                1. Экспортируем развертку в изображение, чтобы мы могли нанести на ней свой рисунок: UVs -> Export UV Layouts. Напиши название файла, выбери папку и сохрани картинку.


                  1. Открой сохраненный шаблон развертки в графическом редакторе и оформи грани кубика. Определять положение цифр можно с помощью пункта 6. Сохрани изображение, когда закончишь оформлять развертку.
                    1. В окне 3D вида перейди в Object Mode. Для куба создай материал. Назначь ему Image Texture и выбери нужную картинку-текстуру.
                    2. В пункте Normal выбери пункт UV (чтобы текстура накладывалась по UV развертке).



                    В окне UV/Image Editor ты можешь перемещать и масштабировать полигоны с помощью клавиш G и S. Таким образом легко подогнать развертку под текстуру.

                    Особенности разворачивания примитивов и сложных моделей

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

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

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

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

                    Сегодня я с удовольствием расскажу вам о том, как создать текстурную развертку для модели с помощью модификатора Unwrap UVW в программе 3d Max.

                    Урок предназначается как для тех, кто вообще не знаком с мод-ром Unwrap UVW, так и для всех остальных.

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

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


                    Применяем Unwrap UVW, создаем нормальную развертку, назначаем оставшейся половине один ID номер и применяем к модели Mirror, назначаем второй половине другой ID номер, присоединяем друг к другу половины(сшиваем)

                    Внимание! Если вы не назначите второй половине другой ID номер и "сошьете" обе половины, то они будут принадлежать одному ID номеру, что нам совсем не нужно!

                    Если мы хотим получить абсолютно симметрич-ю текстуру(что на самом деле смотриться не очень впечатляюще), то так и оставим. Если не хотим, то переходим к нужному ID номеру, выделим кусок развертки и отодвинем в сторону. Потом вы можете нарисовать для них общую текстуру, а когда будете рисовать детали, они не будут симметрично отражаться!

                    Итак у нас осталась половина модели, мы применили мод-р Unwrap UVW(или еще лучше плагин TurboUnwrap UVW)

                    Дальше для удобства создания развертки, нам нужно применить к объекту простенькую текстуру, которая бы сразу показывала все растяжения вашей будущей текстуры. Прочитав несколько уроков, я также как и другие использовал карту Checker, но в дальнейшем открыл для себя более удобный способ - применение карты Noise.

                    Итак применяем карту Noise(в слот Diffuse) к любому материалу и в настройках этой карты ставим Tilling = 70,70,70. Таким образом получаем относительно мелкий нойз.

                    1) Planar Map- к сожалению Unwrap UVW не имеет таких видов проецирования как сферическую, цилиндрическую и т.д. Для этого к необходимым участкам надо было заранее применять модиф-р UVW Map.

                    2)Normal Map имеет 6 видов проецирования. Поэкспериментировав с ними вы можете понять, когда вам удобно применять тот или иной вид.

                    3) Flatten Map. Настроив нужный угловой порог между гранями, вы можете разбить нужную область на требуемое кол-во кусков. Правда потом придется их вручную сшивать.

                    Sketch - очень полезный инструмент для выделения вершин развертки. Выбираете этот инструмент - появляется кружок, начинаете просто водить курсором над нужными вершинами, которые буду помечаться цифрами, после чего выполняете нужную вам операцию: Move,Rotate, Scale. Выделенные вершины можно конвертировать в другие подъобекты( Convert Vertices to Edge\Faces)

                    Pack - автоматическое расположение кусков развертки в границах текстурного пространства. Я рисую текстуру в фотошопе, поэтому располагаю всегда куски вручную именно так, чтобы удобно было на них рисовать. И тем не менее, при расположение кусков развертки нужно максимально использовать текстурное пространство. Т.е. свободного пространства между кусками развертки должно быть как можно меньше.

                    Select Element - при выборе этого режима, вы можете одним кликом выбрать целый кусок развертки. Очень удобно как при простом перемещении, вращении, масштабировании, так и при окончательном расположении всех кусков перед транспортировкой в фотошоп.

                    Tile Bitmap- если вы уберете галочку рядом с этой опцией, то увидите, что ваша текстура (Noise, Checker) помещается в одном квадрате. Это и есть текстурное пространство в котором и должны в итоге располагаться все части развертки. Вы можете изменять параметр Тайлинга, а также яркость текстуры(Brightness)

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

                    В 3ds Max существуют "глобальные" и "локальные" координаты. Глобальные: это привычные вам Q W E R и т.д., т.е. те, которые работают в основном окне программы. Но для остальных окон программы, таких как Material Editor, Edit UVW и т.д. существуют "локальные" координаты. Переключение между глобальными и локальными координатами происходит с помощью функции Keyboard Shortcut Override Toggle, которую тоже рекомендую "повесить" на горячую клавишу или QuadMenu. Все настройки горячих клавиш, квадменю, создания собственных меню и т.д. можно производить в окне Customize User Interface (Customize> Customize User Interface)


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

                    Я применил Planar Map на боковую часть модели. И полученную часть развертки сильно масштабирую, чтобы получить совсем мелкий Noise. Т.к. нормали полигонов спины, шеи и т.д. монстра направлены вверх или вниз, то текстура в этих местах будет растянута.


                    Почему это происходит вы увидите в окне Edit UVW. Потому что полигоны этих частей имеют очень маленькую площадь. Ребра полигонов практически "слиплись", из-за этого и происходит сильное растяжение.

                    Вернусь к преимуществу карты Noise. Ваш мозг всегда позволит легко увидеть разницу между нормальной областью и областью, где текстура растянута, даже ненамного! А сильные растяжение просто будут "бросаться" в глаза. Что и демонстрирует приведённый рисунок


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


                    Также вы должны помнить, что не должно быть НИКАКИХ наложений полигонов на развертке, которые помечены красным на рисунке.

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


                    Надеюсь теперь вы хорошо поняли принцип по которому создается развертка для моделей. Когда вы сделали развертку для всех кусков, поместите их в текстурное пространство(квадрат в окне Edit UVW), так чтобы ни одна часть не вылезала за него.

                    Возможно вы не понимаете, какая часть моей развертки чему соответствует, ВАЖНО, чтобы вы понимали это на СВОЕЙ развертке. Естественно, если вы делаете развертку первый раз, то чтобы еще лучше понимать процесс маппинга, нужно нарисовать на ней текстуру, тогда в следующий раз вы сделаете развертку еще лучше и более удобной для рисования.

                    Дальше есть несколько способов перенести развертку в Photoshop. Либо дедовским способом нажимать Print Screen. Либо воспользоваться плагином Texporter, который позволит вам эффективно перенести развертку в нужном вам виде и с разрешением, например, в 2024*2024. Его можно бесплатно скачать здесь:

                    Также есть возможность воспользоваться инструментом 3D Max: Render to Texture . Но описание этого инструмента в данный урок не входит.

                    Дальше вы можете просто поместить в Фотошопе слой с разверткой наверх, сделать его полупрозрачным и заблокировать. А рисовать на других слоях и видеть вашу развертку под ними. Просто отключив слой с разверткой, вы сохраняете файл в формате psd и переходите к 3d Max, где к вашей модели этот файл уже применен в слоте Diffuse. Текстура на модели автоматически обновиться, и вы увидите как она выглядит.

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