В прошлой части мы разобрались, как начинает свой жизненный путь игровой ассет (что это такое — смотрите там же). На данный момент он «вылеплен» в виде объемной модели. Замечательно! Но то, что получилось после стадии скульптинга, еще далеко от финала.
Бесспорно, детализированная «хайполька» выглядит потрясающе. Но в игру ее не запихнешь. Ни один движок не справится с таким полигонажем, какой обычно получается после предыдущего этапа. С этим надо что-то делать. Для начала — создать низкополигональную модель, которая повторяет форму скульпта.
На этом этапе мы загружаем хай-поли в специальную программу — и вручную, полигон за полигоном, создаем новый меш (англ. ‘mesh’ — «сетка»), повторяющий ее поверхность. Тут важно не только вписаться в имеющийся «полигональный бюджет», но и сделать «чистую топологию», пригодную для последующих этапов (риггинга, текстуринга). Эта топология подразумевает, что в некоторых местах ребра между полигонами должны располагаться определенным образом, чтобы модель потом правильно деформировалась. Этот процесс называется ретопологией, или ретопом.
На словах объяснить, каким же должен быть «правильный меш», сложно. Так что давайте сразу взглянем на иллюстрацию.
Наш ассет: retop
http://www.youtube.com/watch?v=eYiugmFle_E
К сожалению, на момент написания этой статьи ассет Волшебницы еще не был закончен. Поэтому дальше прогресс мы будем наблюдать на примере Берсерка. Знакомьтесь:
http://www.youtube.com/watch?v=NnOu6D53pRE
Справедливости ради нужно отметить, что скульпт требуется не всегда. Иногда, если объект очень простой, вполне достаточно сразу сделать низкополигональный меш, а все необходимые детали вручную нарисовать на текстуре. Это такой «олдскульный» подход, сохранившийся с тех времен, когда разрешение текстур было настолько маленьким, что лепить скульпт не было смысла (да и соответствующего софта тогда тоже не было).
Впрочем, сегодня для всех, даже не особо значительных объектов стараются делать хай-поли. Просто на всякий случай. Вдруг потом понадобится объект детализировать (например, для крупного плана в кат-сцене)? А если скульпта нет и ассет сразу делался в виде лоу-поли, то это может стать проблемой.
Профессиональные требования Владение софтом:
— В первую очередь — уже знакомые Maya/3ds Max/Softimage/Modo. Большинство моделлеров работают в «максе». Но лучший софт для моделлинга — еще одна тема для дискуссий. Сейчас на «передовой» проповедуют переход на «модо», как на самый перспективный, удобный и стабильный. А еще есть отщепенцы, работающие в «блендере». Это вообще бесплатный пакет, распространяемый по лицензии GPL, и местами он дает прикурить своим платным аналогам. Но отсутствие некоторых фич затрудняет его внедрение в типичный пайплайн, так что на данный момент использование «блендера» — удел энтузиастов; — TopoGun — специальная программа, предназначенная только для ретопологии. Нечто аналогичное (но местами менее удобное) есть в последних версиях уже упомянутой выше Maya.
Навыки:
— Понимание «правильной топологии»; — умение передавать форму объекта через минимальное количество полигонов; — владение всеми стандартными техниками моделирования; — и это первая специальность, требующая если не досконального, то очень хорошего владения 3D-пакетом, который вы используете. Чтобы максимально эффективно задействовать его инструментарий.
GameDev vs. VFXИ вновь технические ограничения геймдева дают о себе знать. Но на сей раз — отнюдь не в его пользу. Для VFX также делается ретоп, но требования к полигонажу там не настолько суровые. Даже если моделлер добавит лишнюю сотню-другую полигонов — не страшно. А для игры такое придется переделывать. И вообще, при плотности сетки для VFX становится возможным использование автоматических инструментов для ретопа. Один из таких инструментов есть в ZBrush (кстати, многие считают его лучшим в своем роде). Там достаточно лишь примерно указать, где должны проходить основные линии меша, а остальное программа сделает сама. Безусловно, при таком подходе все равно остается ручной труд. Но его несоизмеримо меньше, чем при полностью ручном ретопе. Так что лоу-поли-моделлинг для игр гораздо более трудоемок, чем для кино, и приход некстгена на это никак не повлиял.
UV-развертка и текстурирование (UV-mapping & texturing)
Вы уже и так наверняка знаете, что такое текстуры. Чтобы наложить их на наш объект, надо его сперва «развернуть».
Когда создается UV-развертка («увихи»), каждому полигону (который, как мы знаем, находится в 3D) сопоставляется определенная область на двухмерной текстуре. Получается этакий набор плоских «выкроек», из которых составлен 3D-объект.
Пример UV-координат (развертки) для простого цилиндра.
Задача кажется тривиальной. Но для реального ассета создание толковых «увих» отнимает немало времени.
Наш ассет: UV-mapping.
И вот тут-то, если на предыдущем этапе топология получилась кривая, нам это в первый раз может аукнуться. Поэтому UV-развертку, как правило, начинают планировать еще на стадии моделлинга.
Но в нашем случае и топология, и развертка сделаны добротно. Так что мы переходим к стадии текстурирования. А раз у нас есть скульпт, первым делом надо передать на текстуру те детали, которые есть на «хайпольке».
Этот процесс называется «запеканием» (‘baking’). Технические подробности я сейчас опущу. Скажу лишь, что в результате мы получаем текстуру, которая отражает разницу между скульптом и лоу-поли-мешем.
Вернее, не одну текстуру, а целый набор. Как минимум — карту нормалей (Normal Map) и «окклюжена» (AO map). Но зачастую также используются карты «дисплэйса» (displace map), микрорельефа (cavity map), освещенности (light map), просвечиваемости (transparency/thickness map) и много чего еще.
Все они призваны решить одну задачу: сымитировать «хайпольные» детали на игровой модели.
Наш ассет: Normal Map.
А уже опираясь на эти технические карты, к работе приступает художник по текстурам. И тут надо отметить, что в наши дни практикуются два подхода.
Первый — «олдскульный». Служебные карты загружаются в старый добрый «фотошоп» и там уже разрисовываются. При таком подходе художнику приходится следить за рядом технических нюансов. Например, чтобы совпадал цвет на UV-швах между разными кусками развертки. Да и «увихи» надо разворачивать по-особому, чтоб художнику было проще рисовать. Но зато в дальнейшем текстуры довольно легко модифицировать.
Типичная развертка типичного sci-fi-персонажа (полигонов многовато, хотя автор утверждает, что модель игровая).
Другой же подход считается более современным. Художник загружает и модель, и технические карты в специальный пакет для 3D-пэинтинга. И уже там рисует прямо по модели. А в виде 2D-картинки текстура экспортируется лишь в самом конце. Считается, что при таком подходе вносить правки сложнее, зато сам процесс текстурирования гораздо более интуитивен, а итоговые текстуры получаются более реалистичными.
В следующем видео продемонстрирован процесс текстурирования через 3D-painting в пакете Mari. Заодно тут можно увидеть, насколько более плотная сетка обычно бывает на низкополигональных моделях для VFX.
http://www.youtube.com/watch?v=9tZoeQXTX9Q
Так или иначе, в итоге получается набор текстур, и ассет приобретает не только форму, но и цвет.
Наш ассет: текстура
Только текстура раскраски.
Текстура раскраски с наложенной картой нормалей.
Помимо этого, в стандартный набор также входят текстура бликов (specular map) и нередко — карта толщины/просвечиваемости. Но в нашем проекте мы их не используем (технические ограничения целевой платформы).
Профессиональные требованияНа этом этапе нужно владеть уже целым зоопарком всевозможных пакетов:
— Все те же Maya/3ds Max/Softimage/Modo/Blender; — кроме того, специально для разворачивания «увих» есть headus UV Layout, Unwrella, Unfold3D, а также ворох бесплатных скриптов/плагинов для упомянутых выше редакторов. Не говоря уже о стандартном инструментарии для UV-маппинга. И — не поверите — каждая из этих программ незаменима в определенных условиях. Так что единого инструмента для UV-маппинга на все случаи жизни — нет; — для «ортодоксального» текстурирования — Photoshop. Любители экстрима также пытаются в нем имитировать 3D-пэинтинг, но это развлечение для особых ценителей; — для 3D-пэинтинга — 3D Coat/Zbrush/Mudbox. Отдельно стоит упомянуть Mari: этот пакет требует достаточно мощную видеокарту, зато позволяет работать послойно, как в «фотошопе». И обладает еще кое-какими уникальными «плюшками»; — для «запекания» текстур — xNormal. У этой программы тоже инопланетный интерфейс, как у ZBrush. Но только не от тех правильных инопланетян, а от каких-то больных на всю голову. И не лечится от версии к версии. Зато это действительно самый мощный софт для запекания всех известных видов карт всеми известными способами. И еще бесплатный к тому же.
Навыки:
— Понимание, чем отличается карта «диффуза» (раскраски) от карты «спекуляра», и как с ними взаимодействует свет; — умение мыслить «в 2,5D» — когда рисуешь двухмерную карту, при этом понимая, как она натянется на меш; — знание основных принципов и техник для создания эффективной UV-развертки; — понимание принципа запекания текстур и умение это делать; — общие художественные навыки; — понимание, как работает текстурная фильтрация, и умение рисовать текстуры с ее учетом.
GameDev vs. VFX Для кино уже достаточно долго существует технология, которая позволяет вообще отказаться от этапа UV-маппинга. Эта технология называется PTEX (от англ. ‘polygonal texture’ — «полигональная текстура») и представляет собой хитрый формат текстуры, созданной под одну конкретную модель. Она в принципе не использует развертку, исходя из следующей логики. Каждый полигон — это уже плоскость. Если он четырехугольный, то можно считать, что для него уже определены UV-координаты (уже есть развертка), а значит, на него может быть наложена своя мини-текстура. Осталось лишь запоминать, для какого полигона какая текстура используется и с какими другими полигонами он соседствует (для правильной фильтрации). Именно поэтому формат PTEX привязан к конкретному мешу с конкретной топологией, который нельзя менять: в нем хранится куча мини-текстур и соответствующие им номера полигонов. Однако топология объектов обычно и не меняется, а вот экономия на целом этапе UV-развертки — достоинство очень весомое. Очевидно, что этот метод уже в принципе не допускает текстурирование в «фотошопе», жестко требуя переход на 3D-пэинтинг. Но это тоже скорее плюс, чем минус. В чем же загвоздка? А в том, что к играм эта технология не применима ни при каком раскладе. Ввиду чисто технических ограничений. Кроме того, она не позволяет использовать одну и ту же текстуру для нескольких объектов. Что с современными мощностями видеокарт тоже пока недопустимо. Так что там, где киношники пропускают стадию развертки и сосредотачиваются на более реалистичных текстурах, игроделы вынуждены возиться с «увишками» и вновь вписываться в возможности современного «железа».
Теперь наш ассет уже более похож на то, каким он будет в игре.
Вообще-то (если пока забыть про эффекты и хитрую стадию под названием «шейдинг»), именно так он и будет выглядеть в финале. Можно считать, что некоторый рубеж уже пройден. Ура!
Но это только внешний вид. А чтобы вдохнуть жизнь в нашу бездушную кучку полигонов с текстурами, надо заставить ее двигаться. Все верно, речь об анимации.
Но это отдельная эпопея, с которой мы продолжим свое путешествие в следующий раз. А пока — если вы дочитали до этих строк, то можно смело считать, что мы на верном пути. Пора отпраздновать уже имеющиеся достижения. Например, съев заслуженный тортик.
Но прежде чем вы помчитесь поощрять себя за проделанную работу, хочется пожелать, чтобы лень и страх перед неизвестностью не останавливали вас на пути к мечте. Особенно если эта мечта — создание какого-то художественного произведения.