Making of леопард 2

Здравствуйте. Меня зовут Сарафанов Андрей.
Хочу рассказать Вам о процессе создания 3D модели немецкого основного боевого танка Leopard-2 A6. Хочется надеяться что получился A6:)

Когда-то я много моделил танковую технику. Вот несколько образцов.

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

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

Инструменты:
Моделинг, uv-mapping, baking, rendering - Luxology Modo 701 SP3.
Текстуры - Quixel dDo, Adobe Photoshop.
рендер игровой модельки - Marmoset Toolbag.

Целью было создание низкополигональной модельки, пригодной для импорта в игровой движок. По поликаунту жёстких ограничений не ставил.
В итоге на основную модельку щедро отсыпал 5789 треугольников. Плюс сделал ещё пару лодов по 3500 и 1500 треугольников соответственно.

Процесс занял около месяца работы в свободное от full-time работы время. (А работаю я 2д художником в сфере разработки мобильных приложений). Началось всё со сбора референсов. Это очень важный и ответственный процесс. Я собрал уйму фотографий по этому красавцу. Наиболее полезны были walk around с http://www.primeportal.net/

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

Вариант с навесной бронёй, но с ужасной детализацией) плюс элементы по расположению не совпадают с первым, судя по всему потому что это более поздняя модификация. Руководствовался этим чертежом как основным.

Использовал их только для чернового наброска - чистовую отделку делал уже по фото.

Я не буду подробно останавливаться на том, как моделить в модо. Во первых, коль скоро мы на Render.ru, есть курс от замечательного
специалиста по этому пакету, Антона Горнакова
. Я сам курс не проходил, но судя по программе - очень полезная информация.

Также могу посоветовать видео уроки:
Digital Tutors - Introduction to Modeling in Modo (старый урок, я с него начинал. Подробно разбираются различные подходы к моделированию на примере создания Mini Cooper. Очень рекомендую). Create Photorealistic Car Bugatti Veyron in Modo от 3D
world.(Подсмотрел здесь ряд интересных техник. Тоже очень рекомендую) Если с английским туго, то ... лучше подучить. Есть конечно, ряд
материалов по пакету на русском. Имеется несколько уроков здесь, на Render.ru, но Большая часть сосредоточена на портале mymodo.ru

Детище великого русского модонавта которого я знаю по нику ammbass. Кому будет интересно - милости просим.

Начну с настроек. Никому не навязываю - это просто рабочий процесс человека, который 4 года в теме) При работе в модо рекомендую отключить trackball Rotation. System - Preferences - Display - OpenGL - убрать галочку с trackball rotation - поставить галочку Override Viewport-Level Trackball Option.

Также хочу сказать, что по моему глубокому убеждению в модо надо работать на планшете. Мышку не использую совершенно)
При зажатом Alt - стилусом вращаем модельку. При зажатых Ctrl + Alt - инициируем зум(масшабирование вида) в
зависимости от того куда будет двигать стилус. При зажатых Alt + Shift - инициируем pan(перетаскивание). Верхняя кнопка стилуса у меня на правой кнопке. Нижняя - пробел.

Также очень помогают горячие клавиши и скрипты. Как назначить горячие клавиши а также какие есть полезные тулзы можно глянуть здесь - потрясающий сайт одного очень хорошего специалиста по имени Henning Sanden

http://henningsanden.com/2013/03/31/how-to-optimize-modo-for-faster-modeling/

Горячие клавиши, которые использую чаще всего:

CTRL+2 - выбор режима отображения.
ctrl+space - выбор окна проекции
Alt+Space - быстрый доступ к выбору Action Center и
активации/деактивации симметрии.
CTRL+3 - в основном использую для быстрого доступа к меню
редактирования Vertex Maps.

ctrl+S - сохраниться - любимая команда. Любой софт имеет обыкновение падать. Модяра не исключение, однако сохранение тут шустрое, так что сохраняйтесь чаще.

z - edge extend - вытягиваем новое ребро из текущего.
с - edje slice - создаём новые рёбра(ножик).
Shift + slice - разрезаем плоскостью. При зажатом CTRL плоскость будет ортогональной.
Alt+c - loop slice - создаём новые лупы.
B - Bevel - при выделенном полигоне - делает вытягивание. При выделенных рёбрах - фаску или скругление в зависимости от параметра Round Level.
Ctrl+E - Bend - аккуратно сгибаем.
Shift+V - Mirror - зеркалим.

Сtrl+c - копировать
Ctrl+V - вставить
Ctrl+X - вырезать
N - новый слой.

T - transform - Что-то вроде Soft Select. Правой кнопкой задаёте размер захватываемой области.(К сожалению на нём модо часто вылетает - постоянно сохраняйтесь).

Также очень удобно использовать даже в low-poly моделинге инструменты
скульптинга - F3.

дабы не переназначать горячие клавиши, которые забиты по умолчанию, сделал свои:
Ctrl+Alt+1 - join Vertices - выделяем два vertex. Первый объединяется
со вторым и переходит на его позицию.
Ctrl+Alt+2 - bridje - мостик между полигонами или рёбрами.
Ctrl+Alt+3 - установить координаты выделенных vertex в ноль по х.
Ctrl+Alt+4 - join edges - объединить рёбра.
Ctrl+Alt+5 - slide - даёт возможность двигать ребро луп или vertex по модели, вдоль других рёбер.
Ctrl+Alt+6 - Thicken - добавляет толщину полигонам.
Ctrl+Alt+7 - clone - клонирование элементов - можно быстро создавать линейные массивы.
Ctrl+Alt+8 - объединяет vertex'ы, которые занимают одинаковое положение в пространстве.(такое бывает если вы сначала вырежете кусок геометрии из объекта а потом вставите обратно - позволяет быстро соединить объекты.)
Ctrl+Alt+9 - push - равномерный сдвиг по нормалям к поверхности.
Ctrl+Alt+0 - Mesh Cleanup - позволяет избавиться от забагованных элементов.
Ctrl+Alt+- - action center - axis - auto - при использовании Action
Center Local - выставляет оси как в начале координат(чудовищно полезно при редактировании UV)
Сtrl+Alt+= - забил на это сочетание скрипт от Сенеки perfect circle - для создания превосходных окружностей из выделенных Verticies.
Ctrl+Alt+N - join averaged - объединяет выделенные vertex'ы в точку посередине между ними.
Также во влкадке topo есть замечательный инструмент Topology Pen - его забил на S.
Очень часто перевожу неактивные слои в режим Wireframe (Сtrl+Alt+Shift+V) а чтобы перевести неактивные слои в режим отображения как на активном слое - (ctrl+Alt+V) сочетания длинные, но я как-то привык.

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

Если кратко - нарезал рефы в фотошопе, все проекции должны быть в отдельных файлах.
Затем всё импортировал в модо в качестве backdrop, сориентировал по плоскостям проекциЙ и выставил прозрачность всех слоёв на 80 %, чтобы обеспечить себе комфортный моделинг в режиме wireframe.

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

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

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


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

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

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

Очень рекомендую пользоваться instance для создания повторяющихся элементов. http://docs.luxology.com/modo/601/help/pages/scenesetup/Instances.html

Я использовал instance для создания опорных катков и траков гусениц. При работе с ними важно помнить, что основной элемент должен быть расположен в начале координат, иначе вы столкнётесь со странным расположением осей при попытке трансформировать объект. Траки создавал инструментом curve instance.

http://docs.luxology.com/modo/601/help/pages/modotoolbox/Tools/CurveClone.html?zoom_highlight=curve+instance%20

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

Ещё один великолепный инструмент.
Служит для создания очень аккуратных hard edje - выделяем рёбра, которые должны быть жёсткими, нажимаем tab, чтобы перевести модель в сабдивы - затем shift+W и двигаем стилус при зажатой левой кнопке вправо, чтобы увеличить жёсткость, и влево - чтобы уменьшить. Рабочий диапазон - от 0 до 100%, всё что выше или ниже уже не влияет на внешний вид.
Инструмент позволяет во многих случаях избежать создания дополнительных поддерживающих лупов, служащих для увеличения жёсткости.
Это положительно сказывается на скорости моделинга и размере модели, однако порой выдаёт странные артефакты с нормалями, поэтому иногда
лучше, всё же, использовать дополнительные лупы. В итоге наделал очень много деталей. Такая детализация, по большей части, избыточна и для моей модельки с текстурой 2048*2048 будет не нужна, просто хотел сделать по максимуму)

Можно сделать ещё детальнее - отправить модель по частям в zbrush, прогнать через dynamesh и там создать сварные швы, сколы, фактуру металла. Это круто, но жутко трудоёмко. Я решил не углубляться так далеко, поскольку считаю, что в моём случае dDo будет достаточно.
Итак, после создания всех деталюшек настало время приступать к созданию low-poly. Во первых я сохранил всё в отдельный файл - чтобы не повредить, ненароком, мою детальную модель.
Во вторых - удалил все uv карты с детальной модели - это несколько уменьшило размер файла и избавило меня от кучи фоновых ювишек при редактировании развёртки low poly. (просто выделяем необходимый слой - открываем UV редактор и жмём edit uvs - delete uvs.)
Затем создал новый слой и начал копировать туда детализированные элементы, которые можно было упростить. Выделял рёбра, которые хотел убрать и нажимал backspace. Хотя зачастую проще создать геометрию с нуля из кубика.
Старался использовать минимум полигонов для создания формы, поскольку почти все детали будут созданы с помощью текстур, однако у танка оказалось много выступающих частей, которые не хотелось отбрасывать, поэтому поликаунт в итоге великоват.
Для того чтобы в модо проверить поликаунт я нажимаю Shift+T - это триангулирует выделенные слои, затем открываем панель lists и ищем в ней раздел polygons - справа от которого интересующая нас цифра. затем жму сtrl+z - отменяю триангуляцию - и продолжаю работать.

По поводу Low poly особо сказать нечего - просто натягивал аккуратно цилиндрики и коробочки на детализированную модель.
Единственное что хочу заметить - эта модель будет использована для запекания, поэтому нет особого смысла зеркалить и размножать элементы, у которых будет одинаковое uv пространство. Например опорный каток можно сделать всего один - нет нужды копировать его до финальных ювишек и запекания, поскольку все другие катки должны будут иметь точно такие же uv развёртки.
Следующим шагом перешёл к созданию UV. Тут у меня чудовищно примитивный алгоритм) перехожу в окно uv редактора. 1 - Беру несколько элементов - вырезаю их и вставляю на новый слой, чтобы было удобно выделять рёбра. выделяем швы, по которым пойдёт разрез (наша цель максимально избежать потяжек при минимальном разрушении целостности развёртки - поэтому не увлекаемся со швами).
(можно брать не весь элемент, а оттяпать от него кусок - заювишить их по отдельности а потом склеить командой merge verticies.)

Также бывает удобно просто скрывать геометрию.
H - hide - скрыть выделенную геометрию.
U - unhide - показать скрытые элементы.
Вообще любой объект можно представить как совокупность кубиков. Как разворачивается кубик всем известно, остаётся лишь адаптировать этот метод к более сложным моделям.

2 - Затем жму unwrap tool - получается частенько жуткое месиво. Жмём Uv Relax во вкладке Spread, выбираем в открывшемся слева снизу меню Mode Unwrap.

http://docs.luxology.com/modo/601/help/pages/modotoolbox/Vmaps/RelaxTool.html?zoom_highlight=uv+relax

Кликаем в окне uv(relax в режиме unwrap максимально растягивает полигоны на ювишках - обычно жутко их деформируя.)
Теперь чтобы избавиться от деформаций:

3 - Жмём Uv Relax - Mode Adaptive
Кликаем в окне uv - получаем аккуратные ювишки с минимальными потяжками. Иногда приходится повторить пункты 2 и 3 чтобы добиться лучших результатов. Число итераций для Uv Relax ставлю в районе 700.

Можно проверить развёртку на деформации двумя способами.
1 - в меню options Uv редактора выбрать пункт Show distortion - области с деформациями будут красными.
2 - использовать uv checker - кинуть картинку в shader tree поверх всех материалов.

http://docs.luxology.com/modo/601/help/pages/shaderendering/ShaderTree.html?zoom_highlight=shader+tree

Делал как на картинке. Параметры horisontal/vertical Wrap управляют тем, сколько раз текстура будет повторяться в выделенном uv пространстве.

Когда развёртка начнёт нам нравиться - вырезаем элементы и кидаем на новый слой, который можно назвать uv completed. затем хватаем очередную партию - вырезаем из основной модели - кидаем в буферную зону - там делаем ювишки и отправляем в слой с завершёнными UV.

Когда вся модель оказывается на слое Uv completed - жмём волшебную кнопку Pack UVs - все наши развёртки будут аккуратно запакованы внутри активного UV пространства.

http://docs.luxology.com/modo/601/help/pages/modotoolbox/Vmaps/PackUV.html?zoom_highlight=pack+uv

Когда развёртка начнёт нам нравиться - вырезаем элементы и кидаем на новый слой, который можно назвать uv completed. затем хватаем очередную партию - вырезаем из основной модели - кидаем в буферную зону - там делаем ювишки и отправляем в слой с завершёнными UV.

Когда вся модель оказывается на слое Uv completed - жмём волшебную кнопку Pack UVs - все наши развёртки будут аккуратно запакованы внутри активного UV пространства.

http://docs.luxology.com/modo/601/help/pages/modotoolbox/Vmaps/PackUV.html?zoom_highlight=pack+uv

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

Команда pack uvs также очень хорошо работает в следующем случае. Например мы по какой-то причине имеем элемент - плотность развёртки которого отличается от значения, к которому приведены остальные элементы - выделяем этот кусок и жмём pack uvs - масштаб развёртки становится таким же, как у остальных.
Теперь аккуратно располагаем полигоны, обеспечивая максимальное заполнение. Элементы, которые будет сложно увидеть можно сделать раза в два меньше, чтобы экономить место на развёртке. Избегаем ситуаций, когда куски располагаются под углом. Всё, что тяготеет к горизонтальному/вертикальному расположению должно быть
аккуратно выровнено, дабы избежать некрасивой пикселизации лесенкой, которая возникнет, если элемент располагается под углом, а разрешение текстуры не очень велико. Насколько мне известно при редактировании uv карт в модо можно пользоваться следующими инструментами: Move(M), scale(E), rotate(R), bend(Ctrl+E), Transform(t), может есть что ещё, но я не использую.

Также забил на горячие клавиши команды для UV редактора.
Ctrl+Alt+ArrowUp - выравнивание по самой верхней точке.
Ctrl+Alt+ArrowDown - выравнивание по самой нижней точке.
Ctrl+Alt+ArrowLeft - выравнивание по самой левой точке.
Ctrl+Alt+ArrowRight - выравнивание по самой правой точке.

http://docs.luxology.com/modo/601/help/pages/modotoolbox/Vmaps/AlignUV.html?zoom_highlight=align+uvs

Если мне необходимо выровнять множество прямых и сделать их строго горизонтальными/вертикальными, я поступаю следующим образом:
1 - выделяю рёбра, которые хочу выровнять, Например выбираю все вертикальные рёбра.
2 - Нажимаем Alt+X - активируем режим Action Center Local - деформации будут воздействовать на каждую цепочку рёбер по отдельности - локально.
3 - в верхнем меню Action Center выбираем Axis - Auto - все локальные оси выравниваются по основным осям.

Теперь врубаем E - scale - и масштабируем по оси х в ноль. - все выделенные цепочки будут идеально выровнены.
(Кстати, если необходимо все значения координат привести к одному значению(обычно к нулю) можно ввести 0 в одно из полей и затем нажать
Ctrl+Alt+Enter). Затем можно нажать клавишу [ , которая инвертирует выделение - и отмасштабировать оставшиеся рёбра уже по горизонтали.
Этот метод мне жутко помог с развёрткой траков. Я предполагаю что траки в игре будут анимироваться смещением uv координат по оси V, поэтому развернул траки одной длинной лентой.

Если мы хотим экспортировать развёртку в фотошоп нужно, во первых, выделить слой на котором она находится(или группу слоёв). Затем в контекстном меню нажать Texture - Export UV's to EPS. этот файл импортируем в фотошоп поверх нашей текстуры - растягиваем его до её границ и жмём enter. Затем жмём на нашем слое правой кнопкой - вызываем blending options и задаём stroke шириной 3pt. Цвет выбирайте сами чтобы сетка читалась. Затем рекомендую растрировать стиль слоя, чтобы он кушал меньше ресурсов.
Собственно это всё по развёртке. На очереди запекание.
Но перед запеканием необходимо подготовить нашу детализованную и низкополигональную модели.
При запекании из полигонов низкополигональной модели исходят лучи, которые ловят пересечения с высокополигональной моделью и возвращаются назад.
Лучи направлены по нормалям к поверхностям полигонов и если наши детали не наклонены под каким-либо углом - луч не возвращается и на карте нормали ничего не появляется.
Проиллюстрирую на примере.
Возьмём кубик - это будет наша низколопигональная модель. Первое что надо будет сделать - назначить угол сглаживания материала на 180 градусов. делается это в shader tree в меню свойств материала.

Затем в той же вкладке shading при выделенной группе материала нашего кубика жмём add layer - image map - new image
создаём изображение нужного размера - затем кликаем на надписи diffuse color справа от имени изображения - surface shading - normal. Наше изображение теперь распознаётся как карта нормалей.

Теперь наш кубик очень сильно сглажен - по сути он сейчас работает как сфера и если ваша цель сделать сглаженный объект, то ничего менять не надо.
Но, зачастую нам необходимо чтобы наш кубик имел жёсткие грани. Поэтому давайте назначим hard/soft edjes. Воспользуемся замечательным инструментом, который создал James O'Hare, aka Farfarer. http://community.thefoundry.co.uk/discussion/topic.aspx?f=83&t=77919

Ставим плагин и с его помощью делаем все рёбра куба жёсткими. Выделяем все рёбра и жмём - Split shading on selected edges.
Чтобы понять, что произошло, нажимаем ctrl+3 - выбираем в появившемся меню VMaps(vertex maps - менюшка где лежат разного рода дополнительные карты нашей модели).
Здесь мы видим карту vert_normals. Она и отвечает за отображение наших нормалей и она же будет экспортирована вместе с моделью в игровой движок или другой 3д редактор при необходимости.
Сразу оговорюсь что если отзеркалить объект с этой картой - результат будет плохим - shading поломается.
Поэтому после отзеркаливания следует нажать в нашем скачанном плагине кнопку update Smoothing и всё снова будет хорошо.
Теперь давайте поговорим про размеры в модо. Во первых вокруг нашего объекта всегда есть чёрная сеточка, у которой три типа линий.
Самые тёмные лини - это базовые координатные оси. На их пересечении
начало координат. Те, что чуть светлее - это линии, по которым можно получить представление о масштабе сцены. В правом нижнем углу есть цифра(на скриншоте это 8) эта цифра показывает размер стороны квадрата сетки среднего оттенка. Сетку самого светлого оттенка не знаю как использовать.

Единицы измерения настраиваются в system - preferences - units. У меня расклад такой.

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

View - dimension tool - показывает размеры вашего объекта в окне viewport.
view - ruler tool - линейка - расстояние между двумя точками. жмём F11 выбираем snapping mode на vertex и цепляем разные концы линейки за нужные точки - получаем расстояние. http://docs.luxology.com/modo/601/help/pages/modotoolbox/Snapping.html?zoom_highlight=grid

А знать расстояния нам нужно, чтобы понять на какое примерно расстояние должны лететь лучи при запекании нормалей.
Итак, эксперимент. наш низкополигональный кубик - оранжевые рёбра. находится внутри нашего "высокополигонального" объекта и будет запекать детали с него в карту нормалей. При выделенном слое cube нажимаем в shader tree правой кнопкой на нашем изображении и выбираем bake from object to texture. появляется диалоговое окно Bake Texture from Object там я вбиваю 20 - поскольку сторона шестиугольника у меня 18.8 а выступает он на расстояние чуть меньше этой величины. (расстояние следует вбивать чтобы луч не въехал в объект, до которого ему лучше не долетать - например - башня танка может целиком запечься на корпус если мы выставим достаточно большое значение допуска полёта лучей.) и жму ок.

Получаю чистый лист. Это произошло потому, что назначенные нами hard edjes сделали грани нашего куба плоскими и лучи из них летят по нормалям к поверхности и не встречают наклонных граней.(если бы мы не назначали hard edjes - то получили бы результат при заданном нами smoothing angle в 180 градусов, однако кубик бы стал сферой).
Давайте сделаем фасочки. Выделяем все рёбра. (можно сделать двойной клик по объекту(в режиме полигонов) выделяются все полики - затем жмём Alt+2 выделяем все рёбра выделенных поликов или alt+1 если хотим выделить все vertex'ы выделенных поликов). Используем Bevel(B) чтобы сделать фаски.

http://docs.luxology.com/modo/601/help/pages/modotoolbox/Tools/PolygonBevel.html?zoom_highlight=bevel

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

Вывод - хотите чтобы детальки запеклись - делайте фасочки.

Вернёмся к нашему танку. Я всё сохранил в новый файл с тегом bake. создал фаски где нужно, назначил hard/soft рёбра на лоу поли.
и разнёс элементы вот так - чтобы при запекании не возникало ненужных пересечений. Естественно и низкополигональная модель и хайполька должны быть в одинаковых позициях.

Затем запёк карту нормалей. Отдельно для корпуса и для траков.

Теперь о том, как печь AO, Object Space normals, и прочие полезные карты. метод немного другой.
Должна быть включена видимость лоуполи и хайполи объектов. Всё, что имеет uv будет запекаться.

1 - в uv редакторе отображаются только ювишки лоу польки. С хай польки нужно либо всё удалить либо переименовать карты uv.
У меня ювишки лоу польки лежат под именем texture. Не должно быть в сцене других ювишек с таким именем, иначе они тоже начнут печься и будет бардак:)

(Случай из жизни - делаю скульпт в zbrush. прогоняю через decimation master - импортирую в модо. при импорте указываю import as static mesh(такую модель можно крутить - вертеть - масштабировать, но нельзя двигать полигоны по отдельности). static mesh крутится во вюьпорте значительно легче чем обычный меш. Пеку с него нормальки - получаю какие-то чудовищные формы на карте. Оказалось что на меше были ювишки, но поскольку он отображался как static - они не показываются в редакторе uv. удалил с хайпольки ювишки - всё ок.)

3 - в shader tree жмём правой кнопкой на final color output и жмём create instance. повторяем четыре раза затем в появившихся инстансах меняем параметр справа. Вместо final color делаем. ambient occlusion - тут всё понятно. shading normal - это object space normal. diffuse coefficient - (ситуация - у нас на модели куча разных материалов и нам нужно быстро создать для них маски чтобы быстро работать в фотошопе. назначаем на каждый материал свой цвет и печём этот Output. получим разноцветные маски без шейдинга - которые можно очень легко использовать для выделения в фотошопе. Также эта карта может быть использована в dDo для создания различных материалов. diffuse shading - Это если нужно запечь тени на модель. Поставить в фотошопе в режим multiply. http://docs.luxology.com/modo/601/help/pages/shaderendering/RenderOutputs.html

Затем жмём на фиолетовый кружочек Render который находится в shader tree. Меняем значение разрешения рендера на нужное нам. Я пёк 4096*4096. Затем в контекстном меню Render жмём bake from object to render outputs.

После завершения рендера может переключаться между полученными результатами переключателем output.

Жмём и удерживаем кнопку save image - в появившемся списке выбираем save layered image - сохраняем все полученные слои в один psd файл.

Теперь переходим в dDo. у меня не самый шустрый комп и ддоша крепко подвисает, поэтому я не буду использовать встроенный marmoset viewer. можно подгрузить свою модельку из .obj файла и получать результат сразу на ней. Но я превьюшку отключаю и использую стандартный marmoset toolbag. Как использовать ddo Вам расскажут здесь.

В данном проекте для генерации деталей я использовал только карты нормалей Tangent и Object Space. Генерил Только diffuse и specular. Причём отключал environment details preset и material definition preset. генерил базовый файл на который вешал различные фильтры деталей. Вообще говоря насоздавал кучу разных эффектов, сохранил полученный файл, закрыл ddo чтобы не тормозил. Запустил фотошоп заного и начал работать с полученным материалом. вот такая структура слоёв у меня получилась в финале.

На самом верху лежат ювишки. их включаем/выключаем в зависимости от ситуации. Overpaint - слой в режими normal для финальных правок. Diffuse AO - генерится автоматом из наших нормалек. можно залить отрендеренный в модо, но я этого не делал. Установлен в режим multiply. Diffuse cavity - создаёт светлые контуры на углах модели. установлен в
режим Overlay. В группе Diffuse Details лежат сгенеренные dDo детали - это solid color слои на которые наложены маски. можно редактировать цвет слоя, корректировать маску, играться с эффектами слоя, менять непрозрачность и т.д. BasePaintInModo - этот слой с камуфляжом был создан средствами модо - вручную покрасил корпус и детали в камуфляж, затем положил этот слой в фотошоп.
Детали в группе specular такие же, как и в группе diffuse, поэтому можно очень легко делать разные блестящие сколы и царапины - меняя цвет и непрозрачность слоёв.
Траки делал таким же методом.
В альфа-канал финальной текстуры диффуза была помещена карта прозрачности для корректного отображения ведущей задней звёздочки и мелких внутренних зубьев, удерживающих гусеницы на катках.

Следующим шагом я собрал лоу польку - размножил и отзеркалил недостающие элементы, от которых избавились во время запекания. и создал несколько LOD - level of detail. на основную модельку получилось 5789 треугольников. Lod1 - 3500 и Lod2 - 1500 треугольников. В лодах просто удалял лишнюю детализацию, которая не влияет на силуэт танка когда видим его издалека. Однако тут надо быть аккуратным - если вы решите удалять некоторые рёбра, будьте осторожны - есть вероятность что будет повреждена uv развёртка. Если количество узлов на модели уменьшится - уменьшится и их количество на uv поэтому могут быть текстурные потяжки - будьте начеку:)
Перед экспортом в движок необходимо у всех объектов выставить pivot(оси). я пользуюсь замечательным плагином Maze вместо стандартных инструментов.

http://community.thefoundry.co.uk/discussion/topic.aspx?f=37&t=63299

Во первых я создал следующую иерархию в сцене. Каждый элемент, который может вращаться независимо от других - на отдельный слой.

Выставить pivot можно вручную. жмём цифру 6 - во вьюпорте появляется чёрно-белый маркер - выделяем его и двигаем - это и будет ось вращения
слоя. Также в меню edit есть опция pivot to bounding box.

ПРОДОЛЖЕНИЕ>>

723 0 850 14
11
2014-01-16
Хорошая модель для игры на мобильные телефоны
2014-01-16
Спасибо! Отличная тема. Почерпнул для себя много интересного и нового)
2014-01-17
Благодарю. Рад что пригодилось.
2014-01-17
Очень понравился метод подачи информации, спасибо!
2014-01-17
Отличный Making of! Очень понравился, детально все рассказано, танк получился суперским!
2014-01-19
у вас на первых 2х чертежах действительно два разных леопарда 2: это не навесная броня - а две разные башни: А1-4 и А5+ на второй(т.н. arrow-shaped turret) - отсюда и несовпадение других элеметов тоже ;) за модв - спасибо отдельное:)
2014-01-19
Благодарю, друзья. azazello - Благодарю, всё верно , но броня вроде навесная - или с возможностью демонтажа. [img]http://data3.primeportal.net/tanks/ulrich_wrede/leopard_2a5_nl/images/leopard_2a5_nl_05_of_87.jpg[/img] http://www.primeportal.net/tanks/ulrich_wrede/leopard_2a6_tower/
2014-01-22
Спасибо за Making of, очень вовремя, помог мне с моделью. Тоже год назад пересел с макса на Модо, отличный инструмент моделирования и ретопологии. К сожалению не знал о существовании Quixel dDo, теперь жизнь стала проще! :) Можно такой вопрос. Комп мой особой мощностью не выделяется, отсюда, можно ли в Quixel dDo сначала поиграться с текстурой допустим в 4к, а потом сгенерировать тоже самое в 8к ?
2014-01-22
На здоровье. В DDo В самом начале в меню automation hub есть раскрывающееся меню work res. там можно выбрать опцию half - и будешь работать с текстурой в два раза меньше. Единственное - я не помню как экспортировать в оригинальном разрешении а не в уменьшенном. Это точно можно и было в одном из их видео. Не помню честно говоря где, придётся тебе самому покопать)
2014-01-22
Сильная детализация! Понравилось. А можно полюбопытствовать для чего делать такую детализацию если в итоге совсем ловполи получается? Не проще ли нарисовать нормали?
2014-01-23
Благодарю. Эта работа делалась не на заказ - просто один человек попросил рассказать о моём производственном процессе. Детализация избыточна и можно было многое убрать, на самом деле мне просто попались хорошие референсы и я не хотел излишне упрощать модель. Да и замоделить детали, порой, куда проще, чем рисовать их ручками в nDo2.
RENDER.RU