Моделирование персонажей

Принятый художником-постановщиком скульпт отправляем в Maya или Houdini.

В Maya, для оптимизации процесса ретопологии, можно импорт геометрии прогнать через GPU Cache.

image.png

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

Затем импортируем созданный Alembic в сцену.

image.png

Полученный Alembic выглядит так, объект с пунктирной сеткой.

image.png

Так сцена Maya весит значительно меньше и ретопить будет гораздо легче.

Ретопологии в Houdini имеет ряд преимуществ. Houdini более стабильна и легче справляется с высоко-полигональными объектами. Кроме того инструментарий для этого процесса имеет несколько удобных функций, которых нет в Maya.

Импортируем хайрезную модель File/Import/Geometry и ныряем в полученный объект.

image.png

В Network View создаем Topobuild и соединяем его правый Input Port с Output Port ноды File. ставим Template Флаг на ноде File и Render Флаг на ноде Topobuild. С курсором во Вьюпорте нажимаем D и производим следующие настройки, выбирая наиболее подходящее отображение референсной геометрии.

image.png

С выбранной нодой Topobuild и курсором в SceneView жмем ENTER на клавиатуре, чтобы активировать выбранный инструмент Topobuild. Вверху слева рабочего окна появятся инструменты для ретопологии. Переключение между этими инструментами осуществляется нажатия на них или SHIFT + 1, 2, 3, 4, 5, 6.

image.png

Инструмент Build с функциями, отсутствующими в Maya.

При вытягивании эджа, и зажимаем G или B в конечной точке, вращаем или скейлируем этот эдж.

То же можно и с вытягиваемыми лупами.

image.png

Придание эджам одинаковой длины Shift+E.

image.png   image.png

Выравнивание ряда эджей Shift+S.

image.png   image.png

Придание выделенным компонентам (пойнты, эджи, фейсы) формы круга Shift+C

image.png   image.png

Инструмент Edge Slide.

Выравнивание лупа по профилю (соседний луп с одной или с другой стороны) Match Profile  или Match opposite Profile. 

image.png  image.png  image.png

Инструмент Split. Выбор количества добавляемых пойнтов колесом мыши или Shifrt+колесо количества добавляемых лупов.

image.png  image.png

Инструмент Skin.

1. протягиванием линий поперек геометрии создаём сечения.

2. перечеркивая сечения создаем геометрию с любым количеством продольных лупов по выбору (удобно для цилиндрических объектов).

image.png  image.png  image.png

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

Паблиш из Maya.

Прежде всего, убедиться, что Maya запущена из ФТ-коннекта.

image.png

Рабочая сцена, до первого паблиша должна быть сохранена на локальном диске в формате Maya ASCII ( ***.ma ).

Запускаем в Maya ФТ-утилиту из меню Ярко. Выбираем App или Publish и проверяем путь к своему ассету, Нажимаем на три полоски справа вверху окна.

image.png

Выбираем Publish.

image.png

Выбираем WIP для незаконченной технически ( нет ЮВ, наличие ненужных для дальнейшего использования в проекте объектов ) сцены. Пишем что-нибудь в Комменты и жмем Publish.

image.png

После того, как художник-постановщик примет сцену, можно её подготовить для паблиша в OUTPUT.

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

image.png

  У объектов, условно плоских, имеющих толщину, ЮВ_шеллы части геометрии, определяющей эту толщину, должны быть отрезаны и выпрямлены в прямоугольники. Ориентация ЮВ-шеллов в ЮВ-редакторе должна, по возможности, совпадать с ориентацией геометрии в 3-Д пространстве.

image.png

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

image.png

ЮВ, по возможности, должны быть сгруппированы по логике( ЮВ-шеллы, представляющие основную часть объекта - одна группа, ЮВ-шеллы, относящиеся к толщине объекта - вторая группа и т.д. Смотри пример. )

image.png

Если ЮВ-шелл может быть выпрямлен частично, выпрямляем эту часть, с остальными ЮВ можно повторно выполнить UNFOLD или OPTIMIZE.

image.png

В сцене должен присутствовать только один ЮВ-сет с названием map1.

image.png

Все ЮВ-шеллы объекта или группы объектов относящихся к одному материалу должны иметь единый Texel Density.

Правильно.

image.png

Неправильно.

image.png

ЮВ не должны пересекать границы юдимов, располfгаться левее и ниже юдима 1001, правее юдима 1010 и выше юдима 1091.

Между ЮВ-шеллами и между шеллами и границей Юдимов обязательно должен быть паддинг 4-8 пикселей.

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

image.png bkMBbg6669vABmQx-x626sspgdfinufcw-jm8z5tbppxuwiz05-image.png image.png

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

image.png

Если у объекта много одинаковых частей, их можно сложить в рандомные кучки. ЮВ продолговатых или цилиндрических объектов ( колонны, толстые ветки, сучки деревьев ), которым предполагается назначение одинаковой текстуры, в ЮВ-пространстве должны иметь одно направление.

image.png

Если ассет контактный (взаимодействует с персонажем) или предполагаются его клоузапы или это персонаж, то тогда следуем многоюдимному Воркфлоу.

image.png

В этом случае, при выбранных всех объектах сцены, в ЮВ-редакторе не должно быть никаких оверлапов. У объектов с одним материалом может быть несколько юдимов. Глаза должны находиться в первом юдимв. Тексель всех объектов одного материала должен быть единым. Юв  области век должны быть как на голове с закрытыми глазами (про неё отдельно чуть ниже).

image.png

Проверка искажения ЮВ.

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

image.png

Но этот инструмент не всегда достаточно информативен. И так как мы создаем модели под сабдив, нам надо проверить, как ведут себя ЮВ в сглаженном состоянии. Для этого не всегда подходит простое использование клавиши 3 на клавиатуре, так как это дает отображение сглаживания с настройками по умолчанию. На этапе рендера, сглаживание производится по алгоритму OpenSubdiv и поэтому необходимо произвести такое сглаживание на модели инструментом Smooth со следующими настройками.

image.png

И включив отображение Checker Map, проверить искажения UV. Особое внимание следует уделить местам границ ЮВ-Шеллов и сетке с неравномерными полигонами. Настроить размер Checker Map можно в окне её настроек.

image.png

После проверки вернуть объект в состояние до сглаживания.

Выделяем объект или объекты.

Нажимаем 1 на клавиатуре, сцена не должна сдаваться с превьюшным сглаживанием (клавиша 3).

Выполняем Unlock Normals и Soften Edge в меню Mesh Display.

Удаляем Вертекс колор, если есть, в Mesh Display/Color Set Editor.

image.png

Проверяем, есть ли невидимые фейсы (Invisible Faces) в Display/Polygons/Invisible Faces.

Если есть,

image.png

в режиме компонентов выделяем полигоны (можно все) и выполняем отмену невидимости

image.png

После нажатия Create или Apply снимаем выделение полигонов и наслаждаемся видением чуда, дьявольское наваждение невидимости исчезнет.

Запускаем утилитку Cleanup (Mesh/Cleanup).

Обратить внимание на Operation. Лучше ставить Select Matching Polygons и произвести починку вручную, т.к. автоматика, как правило, делает это плохо.

У объектов сцены не должно оставаться 1 - Zero Length Edges, 2 - nGons, 3 - Concave Faces,

image.png

Lamina Faces, Nonmanifold geometry,

image.png

Points on Edges

image.png

Проверка Нормалей.

Нормали на одной поверхности не должны быть направлены в разные стороны.

image.png

Проверяется через Dysplay/Polygons/Face Normals

image.png

А можно, чтоб туда не лазить, просто оставлять птичку в меню рабочего окна Lightning/Two Sided Lightnung отжатой, тогда противоположная от направления нормалей сторона полигонов будет просто черной.

image.png

Лечим выделением всейх фейсов с последующим применением Mesh Display/Conform (не всегда выполняет желаемое). Либо выделяем фейсы, которые считаем вывернутыми, и жмем Mesh Display/ Reverse.

Все объекты сцены должны находиться в нуле координат. Пивот пропов в центре объекта. Пивот Персонажей в нижней точке туловища между стоп.

image.png        image.png

Нормали у объекта должны быть залочены. Если модель - блокинг, то перед локом нормалей нажать сначала Harden Edge. Если полноценный ассет, то сначала Soften Edge.

image.png

У объекта должны быть обнулены все трансформы и удалена История.

image.png

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

А. Atribute Editor/Atributes/Delete attributes.

image.png

Б. Windows/General Editors/Hypergraph:Hierarchy.

Здесь должны оставаться только трансформ-, шейп-, и шейдинг-ноды.

image.png

В. То же можно проверить и в Windows/Node Editor.

image.png

На объектах не должна оставаться информация о Vertex_Color. Проверяем , чтоб бы в Color Set Editor было чисто. Mesh Display/Color Set Editor

image.png

Информацию по неймингу объектов смотри в разделе Моделинг объектов.

На всех объектах сцены должны быть назначены материалы только типа Lambert, кроме стекла. На стекло назначаем материал типа Phong, со  следующими настройками. Если стекло, это визор шлема или любое другое, с которым взаимодействует аниматор, то Transparency = 90, Cosine Power = 2.0, Reflectivity = 0.05.

image.png

Если стекло, это часть, куда обычно вставляется 2д или подшоты: смартфоны, экраны и т.д. были обозначены ярким кислотным цветом, чтобы они маячили на бластах и на анимации не забывали при них. Transparency = 60 - 65.

image.png

Не на одном объекте сцены не должен оставаться дефолтовый материал Lambert1.

Все материалы должны иметь свой отличительный цвет.

image.png

Материалы назначаются только пообъектно (один материал - один объект). По фейсам назначать материалы нельзя.

Что бы проверить, назначен ли материал на фейсы или на объект, открываем Hypershade, выделяем материал и проводим нехитрую операцию, находящуюся по адресу Hypershade/Edit/Select Objects with Materials. Подсветиться должны не фейсы, а объект.

Неправильно

image.png

Правильно

image.png

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

После определяющего материал слова обязательно наличие суффикса _mtl.

Название самого материала и название его Шейдинг-Группы должны совпадать. В Шейдинг-Группе после названия обязательно наличие суффикса SG.

image.png

Смотрим в Outliner

image.png

В сцене должны присутствовать только объекты, относящиеся к ассету, взятому в работу, и четыре дефолтовые камеры. Все объекты, которые отправятся на риг и текстуринг, должны находиться в папке geo, которая находится в корневой папке root . Объекты в сцене НЕ должны находиться ни в каких дополнительных группах. Единственная дополнительная папка for_rig, которая присутствует в сцене, находится так же как и папка geo в корневой папке root. В ней находятся объекты, необходимые для текстуринга и рига, как то, голова с закрытыми глазами и открытым ртом ( в сцене над персонажем, смотри картинку ), отдельная голова и глаза с НЕУБИТЫМИ трансформами, если они у модели не круглые. 

Если ассет - животное с шерстью, То модель, утвержденная у художников отправляется в папку for_rig с названием body_fur. Тело же для грума и рига остается в папке geo как основное. Вертексы этого тела должны быть смещены внутрь по нормалям на незначительное расстояние, примерно равное объему будущего меха. Вертексы где не предполагается наличие шерсти, ка то, рот, нос и веки НЕ смещаются. Вертексы на ладонях и стопах смещаются минимально или вообще не смещаются, в зависимости от того как и где растет шерсть. Также в папке for_rig должно находиться тело с закрытыми глазами и открытым ртом (дубликат базового из geo) с названием body_grooming.

image.png

Некоторый мусор может оставаться в сцене и после всех операций, описанных выше. Что бы еще немного прибраться отжимаем птичку DAG Objects Only в Outliner/Display

image.png

выделяем все, кроме объектов сцены и материалов, назначенных на них, если они уже назначены, и жмем Delete на клаве, лишнее удалится. Снова нажимаем DAG Objects Only, что бы настроение не портилось от наблюдения этой хрени, которая все равно остается болтаться в Аутлайнере.

Проверяем наличие референсов в File/Referenca Editor.

image.png

Проверяем наличие Неймспейсов в Windows/General Editors/Namespace Editor.

image.png

Проверяем наличие слоев в Layer Editor.

image.png

Избавляемся от лишних материалов в сцене. Hypershade/Edit/Delete Unused Nodes.

image.png

Для финальной проверки перед паблишем пользуемся утилитой Modeling Validation Tool. Запускаем  и последовательно нажимаем Optimize и  Run All.

image.png

В идеале все должно быть зеленым. Но можно пренебречь следующими пунктами...

image.png

image.png

Также, для проверки качества ЮВ-раскладки, можно использовать утилиту UV checker. Запускаем и просто жмем большую кнопку. Если все ок, снова жмем кнопку.

image.png

ВАЖНО!!!

Перед финальной сдачей ассета сверится с технической документацией от рига.

https://bookstack.yarko.com/books/rigging-kot-ucenyi/page/texniceskaia-dokumentaciia-k-otdelu-modellinga-ot-rigginga

image.png

Запускаем, как и при публикации ВИПа, утилиту и жмем OUTPUT. ВАЖНО!!! перед публикацией вставить модель максимально ровно в центре вьюпорта, не слишком далеко и не слишком близко к краям. В утилите выбрать NEW AUTO FROM PERSPECTIVE, написать что-нибудь в комментариях и нажать на "ПУБЛИКАЦИЯ".

image.png

В новом окне появится список ошибок в сцене и надпись YOUR PUBLISH IS NOT VALID, но если они не существенны для публикатора, а следовательно для дальнейшего пайплайна, то внизу будет отображаться кнопка PROCEED. В противном случае, если ошибки серьёзные, эта кнопка будет отсутствовать. Нажимаем PROCEED и завершаем работу над ассетом.


Версия #34
Сергей Морозов создал 2025-11-11 16:56:01 MSK
Сергей Морозов обновил 2026-07-30 10:24:20 MSK