Перейти к содержимому


Информация о статье

  • Добавлено:
  • Обновлено:
  • Просмотры: 1988

 


* * * * *
1 Рейтинг

Cоздание модели лука для игры Skyrim. Часть 2 (хай поли моделирование)

Вторая часть серии уроков по созданию дальнобойного оружия (на примере лука) для игры Skyrim. В уроке разбирается построение High-poly модели лука для последующего запекания карт нормалей.

Написано в Май 13 2015 18:39

Cоздание модели лука для игры Skyrim

Часть 1 | Часть 2 | Часть 3 | Часть 4 | Часть 5 | Часть 6 | Часть 7

 
Всем привет, с вами снова я, Lord Beowulf. Как говорят в подобных случаях? Из за технических проблем всё накрылось медным тазом. Ну, в данном случае, конечно, не всё, но тем не менее. Дело в том, что у меня возникла какая-то ахинея с системой. Не буду нагружать подробностями, но все файлы, кроме одного одинокого исходника лоу-поли модели, который был у меня на флешке, полетели. Я решил переписать вторую часть урока, так как не вижу смысла делать продолжение с абсолютно другой моделью, заодно внести кое какие правки в материал, дабы он был более качественным. Почему бы не убить одним выстрелом двух зайцев (проклятые ушастые ублюдки)?
Те, кто читал предыдущую версию второй части моего урока, заметят, что материал существенно отличается. Как я сказал выше, я решил воспользоваться ситуацией и подредактировать всю информацию касаемо хай-поли модели лука. На мой взгляд, она получилась более правильной. Тем не менее, прощу прощения за такие накладки и, как говорилось в мультфильме Metalocalypse, мы не профессиональные извиняльщики, мы музыканты. Поэтому давайте перейдем к уроку.

 

Откроем нашу сцену. Что мы будем сегодня делать? У нас есть лоу-поли модель лука. Я собираюсь сделать хай-поли для того, чтобы впоследствии "запечь" нужные мне карты типа Normal map и Ambient occlusion. На самом деле, для таких предметов, как оружие, вовсе не обязательно запекать карты. Достаточно отрисовать их в фотошопе. Но почему бы на примере лука не показать, как это можно сделать? Благо, методика одинаковая везде.
 

Screenshot_1.png


Прежде, чем начать, давайте вернемся к луку и проверим, все ли косяки были убраны. Напомню, в конце предыдущего урока я говорил, что нужно удалить "невидимые" полигоны, которые не являются формообразующими, не несут никакой пользы, но утяжеляют нашу модель. Некоторые полигоны достаточно просто удалить. Например - основание заклепок или конец тетивы, который мы закрыли цилиндром. Проверьте так же крепление тетивы, а именно заклепки и крюк. К слову, поскольку крюк мы делали из цилиндра, на его вершине полигон с большим количеством углов. Это тоже надо исправить. Удалите полигон, перейдите на уровень редактирования граней (клавиша 3 на клавиатуре), зажмите  Shift и равномерно масштабируйте эту грань. Затем используйте функцию Collapse.
Есть еще одна группа скрытых полигонов - на рукояти.

 

Screenshot_2.png
 

Но править их мы будем иначе - удалим невидимые и "сошьем" оставшиеся в один объект вместе с плечами лука. Удалите выбранные полигоны.
 

Screenshot_3.png

С помощью функции Attach соедините рукоять и плечи.

 

Screenshot_4.png
 

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

 

Screenshot_5.png

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

Screenshot_6.png

 

Screenshot_7.png

Тоже проделываем и со вторым отверстием.

 

Screenshot_8.png

 

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

Screenshot_2.png
 

Screenshot_3.png
 

Screenshot_1.png
 

Достаточно. Теперь применим модификатор Symmetry, дабы не развлекаться со вторым плечом и на этом пока что закончим с нашей низкополигональной моделью.
Теперь выделим все элементы лука и сгруппируем их в 1 объект (Group -> Group).

 

Screenshot_9.png

 

Назовите эту группу Low-poly. Затем сделайте копию этой группы и назовите её High-poly. Скройте хай-поли модель и вернитесь к лоу-поли. Удалите все имеющиеся заклепки - достаточно того, что они есть на хай-поли.

 

Теперь снова сгруппируйте все элементы модели, и верните в сцену группу High-poly
Разбейте группу High-poly на элементы.

Прежде всего, нам нужно совершить некоторые подготовительные действия.  Болванка для хай-поли модели делается при помощи модификатора Mesh Smooth. Но если мы применим данный модификатор сейчас, то получится каша.


Сохраненное изображение 2015-10-12_18-23-52.869.jpg

 

Разберем, почему вышло именно так. Сглаживание происходит по кратчайшей дуге между центрами ребер полигонов. Чем больше полигон, тем больше будет эта дуга и тем сильнее будет размытие. Следовательно, чтобы убрать такие негативные моменты, нужно контролировать форму дополнительными ребрами или, по другому, “лупами” (от англ. Loop – петля), которые помещаются по всему пути ребра (петлей), которое не должно быть сглажено.
Данные ребра могут создаваться несколькими способами. Первый – функция Cut. В основном, Cut. При её использовании будьте внимательны – во-первых, размещайте новые ребра так, чтобы они были параллельны основному ребру, а не шли вразнобой. Во-вторых, после того, как закончите резку и соедините последнее ребро с вершиной, обязательно проверьте сетку функцией Weld с минимальным значением – иногда  Cut не соединяет ребро в вершине, хотя должна, а создает дублирующую рядом.
Второй способ подходит, если ребра, через которые будет проходить петля, имеют примерно равный размер. Данный способ заключается в применении функции Connect, которая находится в Editable Poly. В окошке Connect будет поле Slide, которое устанавливает, насколько создаваемое ребро будет отклонено от центра соединяемых полигонов. Идеально данная функция подходит для цилиндрических фигур, например, для рукояти нашего лука. Не стоит применять её, если длина ребер сильно различается, так как центры будут расположены, понятное дело не на равном удалении от края ребра и итоговая петля не будет равноудалена от основного ребра (что является ошибкой).
Я покажу на примере ближнего лезвия, как размещаются контролирующие петли. Мы имеем следующую сетку.

 

Сохраненное изображение 2015-10-12_18-25-0.337 - копия.jpg

 

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

 

Сохраненное изображение 2015-10-12_18-30-45.854.jpg

Вторая идет с противоположной стороны.


Сохраненное изображение 2015-10-12_18-37-37.950.jpg

 

Сохраненное изображение 2015-10-12_18-42-35.991.jpg

 

Сохраненное изображение 2015-10-12_18-44-26.358.jpg

 

Сохраненное изображение 2015-10-12_18-49-33.677.jpg

 

Сохраненное изображение 2015-10-12_19-36-16.314.jpg

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

 

Сохраненное изображение 2015-10-12_19-21-28.110.jpg

 

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

 

Сохраненное изображение 2015-10-12_19-26-38.277.jpg

Итак, работа с лезвием закончена, если вы все сделали  верно, то получите сглаженную модель без ненужных деформаций. Если где-то наблюдаются артефакты, значит, вы что-то сделали не так. Проверьте с помощью функции Weld, нет ли лишних вершин. Если  лишнего нет, то вы неверно расположили сами разрезы. Напомню, что они должны идти как бы кольцами (петлями) параллельно той линии ребер, на которых должен остаться угол
Вот моя болванка под хай-поли.

 

Сохраненное изображение 2015-10-12_19-37-4.516.jpg

Вот тот же элемент, но с модификатором MeshSmooth.

 

Сохраненное изображение 2015-10-12_19-38-9.859 - копия.jpg

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

 

Сохраненное изображение 2015-10-12_19-39-33.175.jpg

Теперь рассмотрим косяки. Большое скопление полигонов на и так ровной поверхности – на плоскости лезвия. Как итог – у основания заметен угол.

 

Сохраненное изображение 2015-10-12_19-38-9.859.jpg

Этот косяк связан с моими вспомогательными ребрами, которые идут по этой плоскости, и в результате создают полигоны там, где не нужно. По уму, их надо было сделать иначе – без использования ребер на плоскости лезвия, обвести мимо. Ну что ж, учтем на будущее. Радуют две вещи. Во-первых, угол расположен там, где он закрыт другим элементом модели. Во-вторых, мы используем MeshSmooth и можем в любой момент спуститься по стеку модификаторов и исправить сетку  низкополигональной версии модели (пока не подойдете к финалу работы, в нашем случае запеканию нормали - не объединяйте модификаторы, чтобы вы могли свободно переключаться между ними и редактировать модель без влияния модификаторов). Несмотря на эту небольшую проблему, хай-поли болванка готова.
Лирическое отступление - на самом деле большую – любой косяк в сетке это проблема, которая, даже если не аукнется, испортит впечатление от вашей работы. Итог – ВСЕГДА следите за чистотой сетки. Да и кроме эстетической части такие косяки, как правило, все же аукаются. Либо при разворачивании модели, либо при развесовке, либо еще в десятке разных мест. Тем не менее, они могут быть допустимы в некоторых местах - на плоскости (где абсолютно ровная поверхность, и никакие искривления групп сглаживания не смогут побить эту плоскость) и на не анимированых моделях. С кривой сеткой сделать грамотно анимированую модель нельзя (а неграмотно - ужасно проблематично).
Есть три варианта решения данной проблемы. Первый, как ни странно, заключается в том, чтобы не допускать такого и понимать, что  плотное скопление граней так или иначе приведет к сохранению угла, даже если на низкополигональной модели он кажется незначительным. И на хай-поли это будет заметно. Пример – углы между цилиндром с тридцатью шестью сторонами. Если добавить петли вокруг одного из углов, на лоу-поли это не скажется ровным счетом никак. При двукратном сглаживании же угол будет явным.
Вариант второй – удалить вспомогательные ребра и сделать их заново, учитывая особенности сетки и нужный нам итоговый результат. Минусы этого варианта - придется удалять три петли и переделывать примерно треть работы (хотя вся работа тут пока – минут десять). Плюс – будет грамотное расположение петель. Третий вариант – растянуть  вершины петель возле проблемного участка, дабы сгладить угол.

 

Сохраненное изображение 2015-10-12_19-56-51.552.jpg

 

Сохраненное изображение 2015-10-12_19-57-16.227.jpg

Лучше? Скриншоты выше – растягивание вершин ребер.

А ниже - расположение граней заново. В некоторых вариантах разница мало заметна. Например, в этом. Делайте так, как вам удобней.

 

Сохраненное изображение 2015-10-12_20-1-7.697.jpg

Если что, я разместил грани следующим образом.

 

Сохраненное изображение 2015-10-12_20-4-25.52.jpg

 

После того, как разберетесь с лезвием, с помощью модификатора симметрии сделайте второе лезвие (мы же не хотим вручную делать аналогичную работу снова?). Теперь посмотрим на некоторые углы, а точнее их соответствие лоу-поли модели.

 

Сохраненное изображение 2015-10-12_20-18-44.426.jpg

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

 

Сохраненное изображение 2015-10-12_20-21-30.479.jpg

 

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

 

Сохраненное изображение 2015-10-12_20-23-40.486.jpg

 

Сохраненное изображение 2015-10-12_20-23-56.172.jpg

 

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

 

Сохраненное изображение 2015-10-12_22-54-34.318.jpg

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

 

Сохраненное изображение 2015-10-12_22-55-37.283.jpg

 

Как видите, при такой сетке разведение петлями прошло достаточно просто.

 

Сохраненное изображение 2015-10-12_23-25-3.375.jpg

 

Сохраненное изображение 2015-10-12_23-25-19.739.jpg

 

Обратите внимание на расположение петель на острие лезвия.

 

Сохраненное изображение 2015-10-12_23-24-43.442.jpg

 

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

 

Сохраненное изображение 2015-10-12_23-26-56.762.jpg

Это с модификатором.

 

Сохраненное изображение 2015-10-12_23-27-40.739.jpg

 

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

 

Сохраненное изображение 2015-10-13_18-33-52.830.jpg

 

Сохраненное изображение 2015-10-13_18-34-49.845.jpg

 

Сохраненное изображение 2015-10-13_18-35-16.308.jpg

 

Сохраненное изображение 2015-10-13_18-35-36.893.jpg

 

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

 

Сохраненное изображение 2015-10-13_22-16-47.772.jpg

У меня получилось следующим образом. Число элементов плетения – три. Заклепки (которые мы не оптимизировали) оставьте как есть. Крепежи и прочую фурнитуру так же оставьте – они не играют особой  роли, и делать им хай-поли варианты – нет смысла.
Теперь нам осталось сделать только плечи и рукоять. Перед добавлением вспомогательных ребер, я предлагаю разделить элементы рукояти (дерево) и плечей дабы было меньше общих участков и мест, где могут возникнуть сложности. Поскольку разделение этой модели на 2 элемента не повредит общей сетке, а, наоборот, улучшит её, то негативных моментов не будет. Можно задаться вопросом – почему я склеивал эти элементы на лоу-поли, добавляя неравномерную, кривоватую сетку, если можно было оставить все так же. Причина в этом заключается еще с работы над моделями для игры Oblivion. При действии эффектов типа Хамелеон, тело и оружие/одежда на нем становились полупрозрачными. При этом были видны стыки элементов модели, если  одна заходит на другую. После такого веселья я стараюсь делать так, чтобы не обоснованных пересечений моделей не было. Данная практика не претендует на место верной, так как страдает сетка, но тем не менее. Добавлять же новые грани по всей плоскости модели, чтобы правильно соединить вершины и не допустить не нужных треугольников,  я не стал, так как это дало бы много дополнительного полигонажа. А учитывая, что в этом месте объект не анимируется, то такая сетка не будет мешать ничему, кроме эстетических ощущений.
Но вернемся к луку. Отделите выделенные части.

 

Сохраненное изображение 2015-10-13_22-43-27.600.jpg

 

Делается это через функцию Detach.

 

Сохраненное изображение 2015-10-13_22-44-2.596.jpg

 

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

 

Сохраненное изображение 2015-10-14_0-23-55.28.jpg

 

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

 

Сохраненное изображение 2015-10-14_0-31-16.979.jpg

 

Сохраненное изображение 2015-10-14_0-47-2.677.jpg

 

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

 

Сохраненное изображение 2015-10-14_20-52-1.149.jpg

 

Сохраненное изображение 2015-10-14_20-54-0.187.jpg

 

Сохраненное изображение 2015-10-14_20-54-43.143.jpg

 

Сохраненное изображение 2015-10-14_20-55-24.808.jpg

 

Сохраненное изображение 2015-10-14_21-0-1.315.jpg

 

Сохраненное изображение 2015-10-14_21-3-10.887.jpg

 

В итоге получилось следующее. Это - лоу-поли модель.

 

Сохраненное изображение 2015-10-14_21-32-25.548.jpg

 

А вот это – хай-поли.

 

Сохраненное изображение 2015-10-14_21-33-32.266.jpg

 

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

 

Сохраненное изображение 2015-10-14_21-52-15.889.jpg

 

Итак, хай-поли болванка готова. Да, это только болванка. Разумеется, её уже можно запечь и работать дальше, оставив добавление фактуры на карту диффуз. А можно в 3Ds Max (окольный способ) или в программах 3D скульптинга (удобный способ) добавить фактуру, более мелкие элементы и детали.

 

Я покажу на одном примере, как можно добавить такую фактуру. я хочу, чтобы металлические элементы, особенно лезвия, были как-бы обколоты, как при грубой ковке (или как кремниевые ножи). Для этого я буду использовать модификатор Displace. Данный модификатор позволяет изменять геометрию объекта путем замены элементов с помощью черно-белого растрового изображения. Это удобно при создании, например, мягкой мебели. В моем варианте это так же подойдет. Заметка. Для успешного результата нужна подготовленная UV развертка тех моделей, к которым мы применяем модификатор. Информация о создании UV развертки смотрите в  следующей части урока. Тут я просто покажу метод.

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

 

Сохраненное изображение 2015-10-15_20-38-56.848.jpg

 

Вернувшись назад к настройкам материала, зажмите ЛКМ на окошке с буквой M возле Diffuse и перетащите карту в аналогичное место в модификаторе Displace.

 

Сохраненное изображение 2015-10-15_20-39-7.965.jpg

 

Всплывет окно выбора типа копирования. Нам нужен Instance. Теперь всё, что мы меняем в карте из материала будет применяться и к копии.

 

Сохраненное изображение 2015-10-15_20-39-17.140.jpg

 

Настройте модификатор следующим образом. Можете поэкспериментировать с настройками.

 

Сохраненное изображение 2015-10-15_20-39-32.227.jpg

 

У меня получилось следующее.

 

Сохраненное изображение 2015-10-15_20-40-27.445.jpg

 

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

Несмотря на то, что я его продемонстрировал (ибо это достаточно полезный модификатор), я не буду предлагать вам делать точно так же. Как было сказано выше, хай-поли модель для карты нормалей готова. Если хотите, можете добавить фактуру в ZBrush'e. Если хотите, можете добавить фактуру таким способом. Но прежде, чем вы это сделаете, следует упомянуть о минусах данного способа. Качественное выдавливание геометрии требует огромного количества полигонов. Например, в моей сцене сейчас  их 2 миллиона. Настройки MeshSmooth выглядят так.

 

Сохраненное изображение 2015-10-15_20-40-35.754.jpg

 

Обратите внимание на количество итераций. это огромное количество. И естественно это негативным образом сказывается на производительности. Стоит ли это делать ради интересного, но не обязательного эффекта на нормалке? Решать вам (плюс, к слову есть один - скорость. Такие сколы  достаточно быстро создать и далее запечь, если вы не боитесь тормозов, конечно) Если вы решили добавить геометрию таким способом, не удивляйтесь тормозам программы. И на сей оптимистичной ноте урок подходит к концу. Я сделал то, что планировал, а именно - более детально (и правильно) описал основные принципы построения хай-поли модели для последующего запекания. По сути, принципов два:

1. Хай поли модель не должна создавать качественно новые формы, она должна лишь конкретизировать уже имеющиеся. То есть добавлять мелких элементов. При запекании текстуры нормали хай-поли модели шифруются в R G B каналах и впоследствии проецируются на низкополигональную модель двухмерной картой. Исходя из этого, можно понять, что добавление к хай поли модели нашего лука полуметровых шипов на плечах (например) или еще двух рогов успехом не увенчается. в лоу-поли версии такой геометрии попросту нет. А вот мелкие элементы, типа чеканки, сколов, узоров и т.д - вполне. То есть элементы, которые формируют фактуру модели.

2. При запекании нормалей с хай-поли модели (источник) на лоу-поли (цель) контур цели должен находиться внутри контура источника. В противном случае проекция нормалей ( нормаль — это прямая, перпендикулярная касательному пространству) будет невозможна. Опять же, с оговоркой. Прежде всего, данное правило относится к контурам, которые являются таковыми так же на развертке, иначе карта нормалей выйдет ЗА UV координаты и это будет заметно при наложении карт.

В большинстве случаев низкополигональная модель сопровождается хай-поли. Один из вариантов предполагает преобразование лоу-поли в хай-поли путем добавление контролирующих ребер на модели, или увеличение жесткости ребер. Насколько я знаю, в некоторых программах существует инструмент, который увеличивает жесткость выбранных ребер. Например Modo 3D. Второй вариант заключается в том, что хай-поли моделируется сразу. Затем же либо она (её копия) оптимизируется до лоу-поли, либо на ней, как на каркасе, делается низкополигональная модель. В любом случае, получается в итоге две модели. В любом случае, знание, как правильно строить высокополигональную модель на основе лоу-поли, необходимо. Надеюсь, мне получилось вам его дать.

 

В следующем уроке мы займемся разворачиванием UV координат (развертки). Удачи в вашем творчестве, до новых встреч!

 

Lord Beowulf, для TesAll.ru