Making Of "Сарацин"
Приветствую! Меня зовут Александр Васин. Я – 3D Artist в харьковской студии Plarium, а в свободное время веду курс создания персонажей для падаванов. Именно им (а заодно вам, раз уж вы здесь) я расскажу о создании персонажа «Персидский воин». Данный персонаж создавался для военной онлайн-стратегии «Спарта: Война империй» (Sparta: War of Empires).
Я знаю, что мои падаваны хотели бы подробнее узнать о том, как я делаю персонажей. Думаю, что-то окажется полезным и для всех остальных. Так что – поехали.
Работу я начал с проработки рефов. Согласно техническому заданию, данный воин должен был быть лучником. С одной стороны, в стилистике персонажа должны были присутствовать исторически верные черты, с другой – персонаж должен был выглядеть круто. При первом же взгляде на персидских лучников тех времен сразу становилось понятно – их крутость просто неоспорима.
В общем, нужно было основательно всё обмозговать. Я перерыл кучу референсов и наткнулся на добротный фильм «300 спартанцев» 1962 года. В нем-то я и нашел, можно сказать, единственные хорошие рефы на лучников.
На основании найденного материала я набросал мега-концепт моего будущего персонажа:
Сосед по работе, взглянув на мой монитор, был в неописуемом восторге.
Лепку модели я начал с головы. Я знал, что болванка также будет использована в нашем синематике «Спарта: Война империй» ® «Несокрушимые»
поэтому пришлось учитывать некоторые комментарии от товарищей: «Выразительнее лицо давай! Брови там… суровее! Гони блендшейпы!» и т.п.
Ничего секретного в процессе создания головы не происходило – лепка в ZBrush и всё. В конце концов, остановились на таком варианте:
Далее я принялся за одежду и броню.
Поножи и наручи у меня уже были, поскольку я их делал раньше для синематика. Так что в целях экономии времени воспользовался уже готовыми.
Их я делал в ZBrush, заклепки и нитки размещал при помощи Insert Mesh и режима Curve. Как именно, напишу ниже.
Закинул готовые части в Marvelous designer и засимулировал одежду – процесс несложный.
Ткань без изменений бросил в Maya и ZBrush – ее еще ждали великие дела. Далее в Maya начал моделить куски брони и т.п. Набросал лоупольками основные формы.
Потом забросил всё в ZBrush и начал скалптить хайполи.
Я всегда стараюсь избегать простых форм в дизайне персонажа, поэтому сделал наплечник необычным, трехслойным. Такая форма обусловлена тем, что персонаж задумывался лучником, то есть такой наплечник – дополнительная защита головы при выстреле. То же самое проделал и с ремнем на груди.
Всякие мелкие болты и заклепки можно ловко размещать прямо в Maya с помощью инструмента Snap Together Tool.
Клик на нужную поверхность заклепки, второй клик – на нужную поверхность шлема, Enter – всё готово. Если же у заклепки нет дна, то вышеупомянутый процесс будет сложно выполнить, и всё будет печально.
Далее закинул всё в ZBrush и начал лепить хайполи. Обычно у меня нет четкого пайплайна, я работаю псевдохаотично. Да что там, я и есть сама псевдохаотичность: постоянно перебрасываю части геометрии из ZBrush в Maya, и наоборот, что-то импортирую, добавляю.
Параллельно засимулировал тряпку на шлеме в Marvelous и забросил ее в ZBrush к остальной геометрии.
Теперь немножко сатанизма:
1. Замоделил нитку в Maya.
2. Импортировал в ZBrush, выровнял с помощью Preview.
3. Создал Insert Mesh Brush.
4. Включил режим кривых. Здесь же можно настроить кривую, ее шаг, залочить начало или конец.
5. Настроил нужную глубину, меню Brush – Depth. В меню Modifiers также можно покрутить некоторые настройки кисти.
6. Готово!
Самое время сохранить нашу кисть:
A если кликнуть по кнопке SelectIcon с зажатой кнопкой Alt, иконка кисти изменится на то, что в данный момент находится в сцене.
Еще одна полезная хитрость:
1. Создаем полигруппу.
2. Скрываем всё ненужное, кликаем Stroke – Frame Mesh. В результате по краю выделенной геометрии формируются кривые.
3. Берем сделанную выше кисть и тыкаем в кривую. Вот это поворот! Теперь можно изменить размер кисти и тыкать в кривую – размер нитки будет меняться соответственно.
Заклепки и Х-образные нитки и кольца по краю расставляю таким же образом. При расстановке заклепок зажимаю Ctrl – это позволяет сохранять один и тот же размер Insert Mesh Brush.
Несколько промежуточных скринов:
Ну и напоследок оружие:
Практически все сабтулы имеют сабдивы, то есть ретопологию делать не приходится. Если же сабдивы потерялись, можно смело использовать Zremesher. Мелочевку можно запечь на нормали. Нитки можно покрасить каким-нибудь цветом, а потом запечь карту Color map, по которой можно сделать маску в Photoshop. Это упростит процесс рисования текстуры. Иногда я просто оставляю нитки и заклепки, как есть – мешем. Если в результате моей работы получится картинка, а не анимированный персонаж, или же часть геометрии, на которой находятся эти заклепки (например, металлический наплечник и т.п.), не будет деформироваться при постановке персонажа в позу, то мелкие детали оставляю.
Далее экспортирую сабтулы – отдельно хайполи, отдельно лоуполи. Запекать карты буду в xNormal.
Собираю лоуполи в Maya.
Uv-развертку делаю в Headus UvLayout. Огромный плюс последней версии в том, что теперь UvLayout можно соединить с Maya (похоже на плагин GoZ для ZBrush). Я могу напрямую кинуть меш из Maya в UvLayout, сделать ювишки, а затем обновить uv модели в Maya без экспорта–импорта геометрии. Очень удобно и быстро.
Обычно делаю 2-3 uv-листа по 4k на модель. В данном случае 1 – голова, руки; 2 – одежда из Marvelous Designer (Marvelous создает идеальные uv); 3 – всё остальное.
Далее запекаю карты normal map, ambient occlusion, cavity.
Текстуру рисую в Mudbox.
Здесь есть одна уловка, позволяющая рисовать текстуру сразу по всей модели, если uv-листов несколько:
1. Назначаю на модель в Maya стандартный материал, не вирейский.
2. Экспортирую одну часть геометрии (развернутую на одном uv-листе) в *.obj или *.fbx.
3. По одной экспортирую остальные части, обязательно в формате *.fbx
Теперь осталось потыкать в разные части модели – создать слои для текстурирования, назначить материалы и т.д.
На этом этапе у меня снова включается режим псевдохаотичности – постоянно переключаюсь между Mudbox и Photoshop, рисую то там, то там. Mudbox очень хорош для текстурирования, но имеет свои недостатки, для борьбы с которыми нужны воистину стальные нервы.
Текстуру рисую по слоям приблизительно в такой последовательности:
- цвет;
- фактура металла, кожи, тряпки;
- свет/тени;
- грязь;
- «сбитости» на краях;
- AO;
- Cavity.
Вот так выглядят карты:
Последнюю карту буду использовать в качестве маски для Blend material в V-Ray.
Назначил VRay-материалы на модель и накинул текстуры. Вот так выглядит шейдер одной из частей геометрии:
Карту диффуза зачастую назначаю через Dirt, это позволяет добавить изображению контраст и ambient occlusion. Иногда этого не делаю. В бленд-материал подключаю базовый материал и металл через карту.
Дальше шейдер физиономии:
Шейдер получился немного мудрёным: в VRay Fast SSS2 не очень хорошо работает встроенный спек, поэтому я назначаю карту спека на дополнительный материал, а потом подключаю его через бленд-материал с включенным режимом Additive mode. В VRay Fast SSS2 спек делаю черным, а в дополнительном материале, соответственно, диффуз.
Но это только тестовый рендер, впереди поза и финальный рендер.
Между прочим, в этот момент моего лучника решили изменить на мечника. Благо, у меня было уже готовое оружие, которое я моделил для персидских воинов в нашем синематике. Так что никто не пострадал.
Настало время делать риг. Лично я считаю это занятие просто невыносимым и отказываюсь понимать, как с ним мучаются мои товарищи-аниматоры. Тем не менее, в позу персонажа ставить нужно.
Предварительно своровав у аниматоров готовый скелет, занялся скиннингом.
Теперь самое интересное – тряпки из Marvelous.
Если уж решил делать тряпки в Marvelous, есть три варианта развития событий.
1) Симулирую тряпки в Т-позе, потом ставлю в позу с помощью скина в Maya. Достоинство – скорость процесса (при условии, что сетка на ткани не очень плотная). Недостаток – после придания позы складки погнутся, будут выглядеть физически неверно и торчать, как будто на них не действует гравитация.
2) Ставлю персонажа в позу, потом симулирую ткань в Marvelous. Достоинство – складки будут выглядеть отлично. Недостаток – трудно создавать ткани без симметрии, и еще труднее, если поза сложная – сильно согнута рука в локте и т.п.
3) Использую point cache. Достоинства – идеальные складки. Данный способ можно использовать для симуляции ткани на анимированных персонажах. Недостаток – адски сложно и запутанно.
Именно последний метод я и выбрал для этой работы, поскольку мы тогда делали тесты для синематика, и данный процесс как раз начинал получаться. К сожалению, промежуточные сцены частично потерялись, поэтому больше объясню на словах.
Итак, у меня была лоуполи-болванка, на которой я симулировал тряпки в Marvelous в самом начале создания персонажа (в Т-позе). Я заскинил ее в Maya и создал короткую анимацию перехода из Т-позы в позу, которая будет рендериться.
Длина анимационного шота – около 30 кадров. После замирания в финальной позе понадобилось еще несколько кадров (когда персонаж останавливается, одежда некоторое время движется по инерции).
Далее в Maya – меню Animation – Geometry cache – Export geometry cache options:
Жмем Apply. В указанной папке образовались файлы *.xml и *.mc.
Экспортировал болванку в *.obj в Т-позе. Важно, чтобы геометрия была «чистой» – никакой истории, никаких связей и т.п.
Теперь в Marvelous. Импортировал болванку:
Далее симуляция – кнопка записи:
Экспорт кэша из Marvelous и импорт в Maya:
В итоге имеем засимулированные тряпки.
Вот первый и последний кадры:
Осталось подогнать остальные части геометрии (они заскинены).
Выставил камеру, источники света и dome light для рендера.
Еще пришлось немного подогнуть юбку lattice деформером.
Рендерил по пассам: ao, reflect, shadows, spec и т.д.
Постэффекты и задник подрисовал в Photoshop.
Вот и всё. Спасибо за терпение!
Мир! =)