Modeling || Кот Ученый


Моделирование объектов

1. Названия

Структура названия какого-либо объекта:
[префикс]_имя_[принадлежность]_[разновидность]_[№№]_[L/R]
кто_чей_какой1_какой2_какой3

Названия должны начинаться с маленькой буквы и содержать маленькие буквы (иногда есть исключения: имена персонажей и постфиксы сторон) и отделяться подчеркиванием.

Примеры:
box_bottom
school_lamp_classroom_red

Doc_costumeDino_small
pencil_Philip_A
hand_R

Геометрия без суффикса _geo и группа без _grp.

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

image.png

Иногда можно использовать _group для обозначения чего-то общего среди объектов группы и сложности с названием объектов во множественном числе на англ. языке.

Нумерация по-умолчанию множества объектов в группах _01 до _99 или, если объектов больше, то от _001 до _999 и т.д.
Постфиксы левый/правый - _L или _R всегда в самом конце и с большой буквы. Тоже самое, например, с постфиксами _Up и _Down. Если прям большой риг с верхней и нижней частью, где много контролов и глубокая иерархия, то можно и U и D для краткости.

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

2. Сцена

1. Структура групп в ассете (см. рис. 001):
root - корневая группа всего файла.
geo - группа для хранения геометрии, которая кэшируется на этапе анимации. 
2. Данные обе группы должны иметь нулевые трансформации и пивот в нуле. 
3. Все геометрические объекты должны лежать внутри группы geo.
4. У симметричных объектов правая или левая сторона определяется относительно оси +Z:
поэтому постфиксы для имен объектов:
_R - это сторона оси -X
_L - это сторона оси +X
5. Проверить, для стоящих на какой-либо поверхности объектов, что они стоят четко на поверхности нуля. Нижняя точка объекта Y = 0.:
Также стоит внимательно посмотреть как объект при сглаживании стыкуется с поверхностью нуля.
К примеру, если внизу есть лоуполи части, объект может слегка летать в воздухе.
6. Сцена имеет формат *.ma
7. Имена шейпов для каждого объекта-меша = [имя объекта + Shape] (Например, box_01 должен иметь шейп box_01Shape).
8.  Почистить сцену перед паблишем (перед этим лучше сохранить сцену):
- удалить лишнюю историю;
- удалить ненужные слои;
- удалить созданные камеры;
- исправить одинаковые имена;
- скрыть стандартные майевские камеры: persp, top, front, side;
- проверить ненужные скрытые объекты (нужно ли их удалить);
- удалить пустые шейпы (Hypershade: Edit -> Delete unused nodes);
- ни с чем несвязанные материалы (Hypershade: Edit -> Delete duplicate shading networks);
В качестве ускорения процесса можно использовать File -> Optimize Scene Size и выбрать соответствующие пункты. (В некоторых ригах, возможно что-то может сломаться при выполнении данной операции, лучше все проверить или вручную все сделать).
Многие из этих пунктов будет реализованы в скрипте валидации/чекинга перед паблишем с возможность исправить, выделить ошибочные объекты и т.д..

3. Расположение объектов и пивота

1) По-умолчанию все объекты должны стоять на плоскости XZ и пивот будет внизу в центре объекта.

Screenshot_4.png

2) Пивот всех частей  меша так же должен быть в нуле.

3) Группы root и geo всегда должны иметь нулевые трансформации и их пивоты находится в центре координат сцены. tyty1.png

4. Топология

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

Ниже будут показаны примеры хорошей/плохой топологии.

На скриншотах ниже показана корректная топология ( равномерная, без треугольников, с хорошей оптимизацией )

Screenshot_8.pngScreenshot_7.png

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

Screenshot_5.png

На скриншоте ниже обратная ситуация - не хватает полигонов, геометрия при сабдиве "плывёт"  и теряет в объёме, сетка неравномерная.

                Screenshot_6.png                    

1. Стараться делать равномерную сетку на всем меше. 
2. Н-гоны запрещены.
3. Проверить перевернутые нормали на меше (Viewport: Shading -> Backface Culling = OFF).

Также можно включить направление нормалей в атрибутах шейпа:

xxxx.png

4. Для органических объектов и других неплоских объектов желательно делать полигоны ближе к квадратной форме (для оптимизации: скорее это не касается длинных тонких объекты, такие, например, как стебли и провода, где продольные полигоны будут в виде длинных прямоугольников).
5. Разбитие геометрии на объекты по материалам (например, у шкафа все деревянные части в одном меше-объекте, а металлические во втором меше-объекте).
6. Удалять полностью невидимую глазу геометрию, скрытую за другой частью меша (это не относится, например, к задней стенке шкафа).
7.Минимум треугольников, приоритет к квадрам. Треугольники допустимы: В малозаметных, плоских участках.
В местах, где не требуется деформация.


plant_4x.jpg

7. Цилиндры
Для цилиндрических частей использовать количество вершин, кратные 4м: 4, 8, 16, 32.
Для мелких частей геометрии достаточно 8 вершин. На очень мелких объектах в большом количестве можно даже 4 вершины.

8. Объект, который вплотную стыкуется с другим (например, ручки двери с поверхностью двери), делать с подворотом полигонов и сплитом. Вообщем, чтобы объекты в прямую просто не втыкались. Исключение могут составлять объекты дальнего плана.

Слева втыкается, справа вплотную примыкает.

image.png  image.png    

Обратная сторона этой же корректной дверной ручки:

image.png

9. Поддерживающие лупы с обоих сторон жесткого ребра модели. Не сильно их прижимать к основному центральному ребру.

10. Не оставлять 3х-угольники на сходах ребер, например, на плюсах сфер и цилиндров.

ty1.png    ty2.png

                      

5. Материалы

Имена материалов должны иметь название, соответствующее названию материала например: 
metal_mtl, wood_mtl, grass_mtl, body_mtl

Шейдинг группы данных материалов будут иметь названия соответственно: 
metal_mtlSG, wood_mtlSG, grass_mtlSG, body_mtlSG (т.е. добавляется "SG" в конце).

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

hn5.jpg   hn6.jpg

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

Screenshot_339.jpg

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

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

Имена материалов имеют очень важное значение, т.к. по именам шейдинг групп происходит покраска модели по слоям в Substance Painter. После того как модель принята - название материала нельзя менять, потому что уже начался текстуринг. В крайнем случае необходимости переименования материала можно посмотреть в фтреке - начался ли текстуринг или еще нет, либо согласовать данное действие с лидом моделинга

Перед паблишем обязательно проверять имена материалов и их шейдинг групп.

6. UV

  1. Паковка UV должна быть в положительных координатах
  2. Если модель меньше главного персонажа (< 1.6м), все объекты-меши располагаем в одном юдиме.
  3. Одинаковый тексель юви в одном юдиме.
  4. Оптимально использовать UV-пространство.
  5. Если UV объекта занимают 3/4 юдима при выбранной uv плотности, его можно увеличить до целого
  6. Например вы делаете объект дерева где листва это три повторяющиеся объекта, тогда на юви пространстве нужно сделать оверлап листочков. ( пример ниже )

Screenshot_9.png

7. Как можно меньше швов. Неглубокие выемки делать без швов.
Шов по возможности делать в наиболее невидимых местах:
a) с задней стороны объекта (часто это противоположная сторона той, которая изображена на эскизе).
б) со стороны, которая реже всего будет видна
в) со стороны, которая частично скрыта другой частью объекта.

8.Все юви шеллы должны лежать  вертикально по длине. ( Пример ниже )

Screenshot_2.png

Ещё один хороший пример развёртки картинных рам.

Screenshot_1.png

Плотность UV Texel Density 

Texel Density(px/unit) = 10 означает, что на 1см 3д пространства сцены будет приходится 10 пикселей текстуры (тексель) при заданном размере текстуры (например, 4к).
Параметр Map Size задает размер текстуры (на 1 юдим).
Вычислить плотность можно в UV Editor-> UV Toolkit -> вкладка Transform (UV Toolkit открывается Tools-> Show UV Toolkit).

td1.png   td2.png
 ( плотность зависит от размера текстуры и масштаба UV в юдиме)

1) Персонажи
свитер Фила - при 4к текстуре значение 40-50 пикселей на 1 см.
Можно приблизиться к гипотетическому размеру объекта в сцене на всю ширину экрана без потери качества при рендере в 4К:
4к текстура, UV на весь юдим при плотности 50 = 3996 / 50 ~= 80см (мин. ширина отличного качества на весь экран)
8к текстура, UV на весь юдим при плотности 100 = 3996 / 100 ~= 40см (мин. ширина отличного качества на весь экран)

Итого для персонажей:
100px/unit (от 80 до 120) для текстур 8к

2) Плотность UV в зависимости от плана. Юви должны быть примерно в указанных в пределах.

а) Макроплан - персонаж или объект очень крупно:
100 (от 80 до 120)

б) Взаимодействующие с персонажами объекты переднего плана (например, держат в руке):
50 (от 40 до 60)

в) Объекты среднего плана: рядом с персонажем во весь рост или немного сзади него:
20 (от 15 до 30)

г) Объекты заднего или общего плана:
10 (от 7 до 15)

(Внимание) Если информации нет - делаем для общего плана - 10 (лучше 10, но можно и от 7 до 15 в зависимости от возможности уместить целиком в юдим).

9. Smooth UV (прочитать к общему сведению).
Существует несколько режимом сглаживания краев юви-частей (uv-shell'ов):
а) Maya Catmull-Clark - обычно стоит по-умолчанию в Maya, но есть проблема - дает растяжения ювишек на цилиндрической поверхности в месте рядом с вершиной UV смежной с 3мя швами:

image.pngimage.png

б) Preserve Edges and Corners - устраняет эти растяжения (но есть другая проблема с кольцевой ювишкой).
При использовании инструмента Smooth для разбиения геометрии с уже готовыми ювишками, следует выбрать именно данный пункт в настройках инструмента.

image.pngimage.png

7.Персонажи

Общие требования по моделям распространяются также и на персонажей, за исключением нескольких моментов.

Необходимо создать 2 группы blendshapes и for_rig в корневой группе root.

В группе blendshapes для модели необходимо сделать 2 блендшейпа:
1) Блендшейп на закрытые веки (для того, чтобы риггер заранее знал место стыковки век и конечную форму закрытия).
2) Блендшейп на открытие рта (как для текстуровщиков, чтобы видеть внутренность рта, таи для риггера).

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

hf1.png

Обе группы лежат отдельно от группы geo, потому что им не нужно попадать в кеш. 

Группы в раскрытом виде:

Screenshot_505.jpg

2 блендшейпа на закрытые веки и открытие рта:

hd6.png

Глаза делим на левый и правый, а также каждый из них на 3 объекта: белок, зрачок и блик:

eyes_new.PNG

Зубы и десна тажке делим на 2 отдельных меша, т.к. они имеют разные материалы и не удобно рисовать маску на шейдинге:

Screenshot_483.jpg

Если глаза имеют некруглую форму - добавляем им группу трансформ с сохраненными трансформациями из исходный сферы в нуле координат и кладем в группу for_rig:

Screenshot_503.jpg

Перед паблишем персонажа стоит делать Optimize Scene с предпоследней галкой Remove Unknown nodes. Второй вариант - в инструменте валидации нажать кнопку Optimize Scene.

hd4.png

hd5.png

Screenshot_504.jpg

9. Варианты детализации модели (Hi, Low, Proxy)

Для высокополигональных объектов (кроме персонажей и локаций), которые имеют более 10 тыс. вершин часто необходимо сделать три варианта представления: Hi, Low и Proxy. Для этого нужно создать три Display Layer'а с данными названиями, и затем добавить в них геометрию. Из данных слоев генерируются соответствующие USD представления.

Каждый объект имеет группу со своим именем и содержит 3 представления с суффиксами _high, _low, _proxy. Каждый меш с соответствующим суффиксов добавляется в свой слой. 

(!) Если для объект вообще не планируется использовать варианты детализации, то он будет просто без группы - лежать как обычный меш в группе geo. Но его нужно добавить в слой Proxy, чтобы он отображался в упрощенном виде при сборке локации.

Паблиш модель происходит с включенным по-умолчанию слоем Proxy и отключенными слоями Hi и Low.

dp_options.jpg   outliner_hi_low_proxy.jpg

Hi - текущая оригинальная модель.
Low - упрощенная модель от оригинальной. Используется для дальних планов. Со средней дистанции разницы не должно быть заметно. Уменьшаем по вершинам от 40% и более от оригинала.
Часто достаточно сделать Mesh->Reduce с 40-60%. Ювишки при этом должны совпадать (при Reduce их трогать по идее не нужно).
Proxy - максимально упрощенная модель. Используется только во вьюпорте для быстрого отображения в локации.
Важно, чтобы она повторяла основные формы и юви, чтобы на ней можно было проверить корректность текстуры на шейдинге. Уменьшаем по вершинам от 60% и более от оригинала.

hi_low_proxy.jpg

При операции Reduce нужно поставить Sharpness от 0 до 1 и посмотреть какое значение дает лучший результат для каждой поверхности.

reduce_options.jpg

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

P.S. Наличие слоя Proxy заставляет менять поведение генератора Geo-Layer-а на следующее: на группе /root/geo создается атрибут purpose='render', на всех объектах слоя proxy добавляется атрибут purpose='proxy'.

10. Проверка модели (валидация)

Перед публикацией необходимо пройти проверку модели.
Инструмент проверки находится в меню: Yarko->Modeling->Check Model

xs1.png

Если нет такого пункта:
Взять архив с питоновскими скриптами, распаковать и положить папку model_validation по удобному адресу на своем диске. Затем в Maya выполнить python-команду:

import sys
sys.path.append('C:/maya/tools')   # (!) Change this path to your path
import model_validation.checker_main as checker_main
checker_main.run()

Откроется окно:

hd1.png

Состоит из множества пунктов проверки, разделенных на категории:
1) Preferences - проверка настроек майского файла, глобальные вещи.
2) Scene - проверка наличия групп, истории и мусорных объектов.
3) Names- проверка имен объектов, групп и шейпов.
4). Connections - показывает связи объектов с чем-то. Шейп чаще всего должен быть связан с одним материалом.
5). Mesh - проверка геометрии (пока нет, в процессе добавления).
6). UV - проверка ювишек (пока нет, в процессе добавления).

Каждый пункт проверки состоит из:
1) Названия.
2) Статуса - Wait (не проверялось), Error (есть ошибки), Ok (все в порядке).
3) Кнопка Check - проверка пункта.
4) Кнопка Select Error Nodes - выбрать ноды, содержащие ошибку (не для всех пунктов есть).
5) Кнопка Fix - пофиксить ошибку автоматически (не для всех пунктов есть).

Optimize Scene - запускает оптимизацию сцены, удаляя мусорные объекты, которые не обнаруживаются другими проверками.

Error Nodes: - текстовое поле, пишет список нод, содержащих ошибку, а также возможно описание ошибки.

Show Connections - показывает Hypergraph с выбранными объектами

Clear - очистка поля проверки

Run All - запуск всех скриптов
Check Failed Only - запуск только тех пунктов, которые не прошли проверку

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

hd2.png

11. Публикация

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

set.png

Скульптинг персонажей

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

image.png

Затем запускаем фотошоп, и в нем режем концепт на отдельные  проекции видов. 

image.png

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

image.png   image.png

Получаем, по крайней мере, два основных вида Front и Side. Если в концепте отображены дополнительные виды, как то Back и Top, то делаем еще и их.

Запускаем zBrush, устанавливаем размер документа 1920 Х 1280 по крайней мере, не меньше.

image.png

Создаем куб и импортируем полученные картинки в проект в меню Texture.

image.png

Картинки назначаем на ортогональные виды в меню Draw и настраиваем как удобно, наверное, лучше всего нажать кнопку Front в основном разделе и отжать PLine в разделах назначенных видов.

image.png

Настраиваем трансформы картинок, если требуется, на основе созданного кубика.

image.png   image.png

Производим скульптинг персонажа.

image.png

По мере работы очень хорошо пользоваться функцией Dynamesh в меню Tool/Geometry.

Так нам проще всего будет воплотить в работе все пожелания художника и оптимизировать проект по полигонажу.

image.png

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

image.png

Наиболее удачным сочетанием для демонстрации, в большинстве случаев, является полипейнт с материалом SkinShade для туловища и одежды, а для глаз полипейнт и ToyPlastic/

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

image.png

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

Вместе со статичным изображением добавляем в заметки Turntable в 4-х исполнениях, орто-скульпт, орто_полипейнт, перспектива-скульпт и перспектива-полипейнт посредством меню Move.

Настройки следующие.

image.png

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

В Overlay Image и Title Image убеждаемся, что не назначены никакие картинки и, на всякий случай, обнуляем все значения.

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

Нажимаем.

image.png

После автоматического завершения создания фильма в zBrush, можно проверить его путем нажатия Play Movie. Если что-то пошло не так, прерываем запись нажатием Esc на клавиатуре и если результат не нравится, отменяем предыдущую работу нажатием Delete. Повторяем операцию до приемлемого результата.

image.png

Экспортируем видео на локальный диск.

image.png

Далее приступаем к публикации в ФТ.

Запускаем ФТ-коннект.

Во вкладке App заходим в My Tasks и находим свою задачу.

image.png

Проверяем путь к ассету находим задачу Sculpt и жмем на само слово Sculpt.

image.png

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

image.png

image.png

Методом перетаскивания из локальной папки в поле 1 переносим ZPR, именно ZPR, а не ZTL, опубликован должен быть рабочий файл с подгруженными проекциями. В поле 2 Принтскрин рабочего окна проекта или любая картинка, демонстрирующая работу. В поле 3 десимейтнутый OBJ модели или можно ничего не перетаскивать, может сработать и так. В поле 4 пишем что-нибудь, например "Первая версия на просмотр". И жмем PUBLISH.

image.png

Если все правильно, то появится зеленый SUCCESS. В случае появления надписи PUBLISH FAILED, пишем лиду или, если понимаем природу ошибки и сделать ничего не можем, сообщаем об ошибке в HELP DESK в Телеграм @yarko_helpdesk_bot.

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

Принятый художником-постановщиком скульпт отправляем в 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

Наименования объектов сцены и материалов должен быть произведен согласно Нейминг-конвенции https://bookstack.yarko.com/books/seiding-6wj/page/neiming-konvenciia-dlia-materialov-seiderov

На всех объектах сцены должны быть назначены материалы только типа 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

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

image.png

Смотрим в Outliner

image.png

В сцене должны присутствовать только объекты, относящиеся к ассету, взятому в работу, и четыре дефолтовые камеры. Все объекты должны находиться в корне сцены и иметь суффикс _geo. Объекты в сцене НЕ должны находиться ни в каких группах. Если ассет - персонаж, то в сцене должна присутствовать папка TEXTURING, с находящейся в ней головой с закрытыми веками и открытым ртом, расположенной над персонажем.

image.png

 Еще возможно наличие папки RIGGING, с находящимися объектами, положение которых изначально (на скульпте) предполагалось не в дефолтовом положении, например коса.

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