Making of «Меркурий»

1.jpg

I. Знакомство

Привет! Меня зовут Михаил, мой artstation.

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

3D был увлечен давно, с того момента, как увлекся геймдевом, можно считать со школы. Но дальше примитивных моделек дело не заходило, так как больше учился программированию. Года 4-5 назад, будучи приглашенным в инди команду по разработке игры про парусные корабли, начал уделять
3D больше внимания. Но обрывочные знания из интернета, несистемный подход к обучению, да и основная работа не позволяли делать более-менее хорошие модели.
Примерно год назад было решено оставить IT если не позади, то где-то сбоку и выбрать в качестве основной цели и работы - 3D. Как раз на глаза попалась школа Kaino с курсом “Gamedev”, после прохождения которого, многое, что вроде бы итак знал, стало понятнее и структурировалось из “вроде бы надо так” в “надо вот как”. В голове все “разложилось по полочкам”.

2.jpg

О проекте

Бриг «Меркурий», сделанный почти год назад, стал первым моим самостоятельным проектом после курса “Gamedev”. Сейчас я сделал бы некоторые моменты по-другому, о чем упомяну в этой статье. Многие вещи можно было бы упростить и сэкономить время, но тогда это были мои шишки, которые я с удовольствием набивал. Ведь без ошибок не бывает прозрения.

Хоть я и потратил много времени, все равно он стал моей отправной точкой в профессию «3D-моделлер». Этот бриг ловил хорошие отзывы и на собеседованиях в студии и при поиске заказчиков на фрилансе. Работа заняла где-то недели 2, была сделана больше как закрепление навыков после курса. Так как изначально задумывал только общие планы на рендерах и сильной проработкой не занимался.

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

II. Making of

Моделирование

Начинается все, конечно же, с чертежей и референсов. Так как реальные фото «Меркурия», по понятным причинам, отсутствовали, в качестве референсов
использовал фото стендовых моделей брига. Чертежи собирал по форумам судомоделистов.

3.jpg

Итак:

  • Выставляем чертежи по проекциям;
  • Добавляем в сцену плоскость, подгоняем по размерам;
  • На плоскость кидаем модификатор mirror и пошло-поехало, моделируем корпус брига.

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

4.jpg

Сам корпус служит донором геометрии для остальных частей: киля, палубы, внутренней части корпуса, отмосток палубы и т.д. Это нужно учитывать, чтобы не пришлось прокидывать лишние ребра для той же палубы.

5.jpg

Когда наиболее крупные части корпуса были готовы, настало время для мачты и рей. Все из примитивов — цилиндров.

6.jpg

После идет первый из долгих процессов – добавление мелочей: бочек, «вороних гнезд» и всего такого. Какие-то детали делаются тоже из примитивов, а некоторые уже посложнее.

Пушки и карронады делались так же по чертежам. Главное, при моделировании нужно было установить pivot point правильно, так как размещение орудий на палубе делалось при помощи «Привязки при трансформации» (snap), по граням.

Screenshot_1.jpg

Так как по всей палубе будут расставлены одинаковые карронады, то делать независимые копии (ctrl-D) смысла не видел, сделал через связанную копию (alt-D), это сэкономит место на UV развертке и время.

9.jpg

Шлюпки смоделированы так же, как и корпус брига - по чертежам, затем я разместил их в нужном месте. Из примитивов «тор» сделал крепежные кольца, отсек часть и утопил в геометрию, где они должны быть. Добавил крепежные элементы, решетки, колки для крепления концов и т.д. и т.п.

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

10.jpg

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

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

11.jpg

  • Добавил в сцену текст, написал то, что нужно;
  • В настройках объекта во вкладке shape уменьшил разрешение и комбинацией Alt+C конвертировал текст в меш.

12.jpg

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

13.jpg

Резные украшения делались таким образом:

  • Выбирал референсы, и обводил по контуру, причем все канавки и углубления так же выделял ребрами;

14.jpg

  • Заполнил все гранями (клавиша F) и экструдировал;

15.jpg

  • Инструментом «нож» порезал примерно таким образом и сместил, там где более скругленные части – добавил вершины инструментом bevel.

16.jpg

Декоративные элементы готовы.

17.jpg

18.jpg

Далее наступает самое интересное – моделирование такелажа.

Тут я допустил пару ошибок: во-первых, я не знал про встроенный аддон Extra objects. Во-вторых, я не использовал связанные копии для блоков,
которых оказалось довольно много. Хоть они и мелкие, и места на UV развертке занимают немного, но все равно можно было сэкономить.

Сам такелаж я делал обычными кривыми из двух точек. Провисающие канаты и тросы делал через вершины:

  • Добавил плоскость;
  • Удалил лишние вершины, перенес 2 точки к нужным местам: началу и концу троса;
  • Добавил модификатор Subdivision Surface на 1 итерацию;
  • Получившуюся вершину опустил по оси z и инструментом bevel (shift-ctrl-b) по вершинам сделал плавное скругление;
  • После, уже знакомой комбинацией Alt+C переводил все в кривую и добавлял толщины.

19.jpg

20.jpg

21.jpg

22.jpg

Уже потом я узнал, что с помощью аддона Extra objects можно задать 2 точки пустышками и прокинуть между ними кривую уже с толщиной, а также, всего парой ползунков менять ее натянутость и разрешение.

23.jpg

24.jpg

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

25.jpg

26.jpg

Последний этап для этой модели - моделирование парусов.

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

Для их создания я добавил плоскость, ставил на место установки. Применил модификатор Subdivision Surface и занялся симуляцией ткани: добавил модификатор cloth. В настройках симуляции добавил в сцену ветер.

  • Выделил вершины, которые будут неподвижны, и не подвержены влиянию ветра, создал новую группу вершин в настройках объекта и добавил их
    туда.
  • В настройках симуляции добавил эту группу вершин в pin group во вкладке shape.

28.jpg

Дальше поигрался с настройками: крутил ползунки, силу ветра, меняю его направление, меняю параметры модификатора cloth и ищу тот момент, когда
будет нравится. И так для каждого паруса и флага по отдельности.

Уже позже оказалось, что так же есть довольно классный аддон Simply Cloth, который упрощает работу с тканями.

До Simply Cloth:

29.jpg

После Simply Cloth:

30.jpg

Mid poly модель готова.

___

Дальше идет этап UV развертки и создание High poly модели.

Первым делом решаю для себя, что тросы и канаты будут иметь тайловую текстуру, а значит High poly для них не делаю. Конвертирую все кривые в меш. UV будет иметь такой вид:

31.jpg

Делаю развертку модели, смотрю, чтобы тайлинг был везде одинаков. В итоге для брига вышло 4 UV сета текстур, исключая сет для тросов. Развертку делал под сет 8к (для пушек 1024х1024 пикселей) упаковывал острова с помощью аддона UVPackmaster2.

32.jpg

33.jpg

High poly делал по заветам курса “Gamedev” с небольшими дополнениями. Модификаторы bevel и subdivision почти на каждый меш. Скульптинг на элементы декора.

На скриншотах видно, что я не прорабатывал в High poly щели между досками на корпусе и палубе. Да, было решено их сделать в substance painter высотами.

Screenshot_2.jpg


Текстурирование

Экспортируем High poly и Mid poly модель и переходим к настройке параметров для запекания.

Screenshot_3.jpg

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

Когда все запечено – можно накидывать материалы.

38.jpg

Для обшивки на медную основу накидываю brick generator в 2 слоя, для создания нужной фактуры.

39.jpg

40.jpg

По такому же принципу делаю и щели между досками на палубе и по бортам. Для деревянной основы взял пресет Wood Walnut, поменял цвет и roughness. Далее этот пресет будет в основе всего дерева на бриге (да, я ленивый).

41.jpg

Для орудий также использовал пресеты.

42.jpg

Конечно же я понял, что часто использовать смарт материалы – это «ну такое себе». Сабстанс начинает притормаживать, долго грузится просмотр материала и в целом, сделал для себя вывод: намного проще сделать нужный материал самому, чем крутить ползунки в готовом. Но для этого надо было хорошенько посидеть в Substance painter и пересмотреть несколько уроков. Но тогда я до этих уроков так и не дошел, а смарт материалы уже не хотел использовать. Поэтому сделал текстуру позолоченного декора вот таким вот «тяп-ляп способом» из двух слоев.

43.jpg

Далее, используя лишь материалы дерева разных цветов (с наложенной hight текстурой или без) и материалы металла, раскрасил все остальное. Стекло сделал простым слоем с подключенным каналом высоты и подогнанным скейлом.

44.jpg

По задумке – паруса должны были немного пропускать свет. Поэтому в сабстанс проект добавил канал opacity и подключил шейдер pbr-metal_rough-with-alpha-blending.

45.jpg

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

46.jpg

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

47.jpg

Для флагов использовал картинку JPG или PNG из интернета. Существует множество способов добавления наклеек или таких фототекстур, я выбрал наиболее простой для себя. Создал новый слой, к нему применил черную маску. По маске выбрал меш, на который будет распространяться этот материал. Оставил только канал с базовым цветом и добавил в этот канал картинку. Осталось только подогнать местоположение и масштаб, для удобства размещал на UV сете, а в окне 3D просмотра наблюдал как это выглядит на модели.

48.jpg

Финальный штрих – это грязь. Добавил на каждый сет 1-3 слоя с грязью, где надо прошелся кисточкой.

После всех манипуляций с текстурированием – экспорт текстур в формате png, т. к. в текстуре использовал прозрачность (окна, паруса). У меня не было ограничений по текстурам, поэтому я не оставлял отдельного UV сета для мешей с прозрачностью.

49.jpg

Что касается канатов и тросов. Я взял для них тайловую текстуру разрешением 128х128 пикселей. Сделал 2 цвета – белый и черный. Текстурировал их уже в Blender перед рендером.

50.jpg

Вообще, по текстурированию многие скажут, что мог бы сделать и получше, и будут правы. На данный момент после года работы 3Д-моделлером и «пинков» от арт-лидов, я бы уделил текстурированию раза в 2-3 больше времени, равно как и моделингу. Но в этом и смысл обучения, как и писал выше: без ошибок не бывает прозрения. Понимание и опыт приходит далеко не сразу.

Рендер

Для рендера создал отдельный файл .blend и импортировал туда Mid poly модель.

Подключаем текстуры:

51.jpg

Для освещения подобрал hdri текстуру, которая подойдет задуманному настроению (тишина, холодные тона, даль). Но освещение от hdri оказалось недостаточно. Было либо слишком темно, либо пересвечено, поэтому добавил в сцену 1 источник света – солнце. Настраивал все, подбирая угол поворота и силу свечения.

52.jpg

Для создания поверхности воды, по которой будет плыть «Меркурий» использовал модификатор Ocean. Настроил размер поверхности, высоту и интенсивность волн, а также настроил материал воды. Выставил камеру и в зависимости от ракурса немного поворачивал окружение, искал нужный кадр с гармонией освещения и пейзажа.

53.jpg

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

54.jpg

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

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

55.jpg

Какое море без чаек? Идем в интернет, находим png чаек и расставляем их на места.

58.jpg

Еще немного покрутить камеру иии… рендер в Cycles на 1024 семплах с денойзом!

59.jpg

Постобработку рендеров я делал в фотошопе, добавил пену под корпусом брига и исправил мелкие косяки.

III. Заключение

60.jpg

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

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

Так что новичкам я хочу пожелать делать как можно больше моделей, развиваться, ловить фидбеки, прислушиваться к критике, и не париться из-за того, что что-то не получилось. Обязательно получится!

659 0 850 16
13
2022-04-01
Кропотливая работа. Здорово олучилось!
2022-04-02
Отлично выглядит) Какой полигонаж?
2022-04-02
Павел, около 400к вроде, причем основной полигонах сжирает такелаж
2022-04-02
Интересный переход из it в 3д...
2022-04-02
Я начинал нечто подобное, вышел в 800к трисов, где такелаж шестиугольного сечения занял 370к, а лев - 17к И это ещё без пушек
2022-04-02
Павел, ну у меня есть опыт создания моделей кораблей для игры с потолком 100к трисов и оптимизации под движки "моделей-миллиоников". Это уже в мозг въелось и как то сложновато не обращать внимание на полигонаж пока что)
2022-04-02
Михаил, видел артстейшен, впечатлился) Я сам с архивиза, но оптимизацию и экономию ресурсов сильно уважаю. В частности, этот проект цифровой реставрации начал с целью выяснить насколько сильно смогу ужать подобный объект в принципе. Ну и отточить функционал привязок. Насчёт узоров - вы знакомы с видео Topology works 1080p?
2022-04-02
Павел, не встречался раньше, если честно, но так как с узорами и лепниной сталкиваюсь не так часто, да и не со слишком сложной, то зачастую хватает или пол часика ручками момоделить или даже грубого децимейта для сложной скульпт-модели.
2022-04-04
Это Американский Эсекс
2022-04-04
Пётр, типун вам на глаза) Это "Меркурий" по чертежам "Меркурия" и по рефам моделей "Меркурия" (как хорошо я знаю историю русского парусного флота говорить не буду). Уж поверьте, отличить американский китобой и военный бриг я смогу, не первый год с кораблями работаю)
2022-06-29
Хочется крикнуть что-то типа this is Spartaaaaaa!
2024-05-20
Корабль иначе сидел в воде. Согласно ТТХ, корма была провалена в воду больше, чем нос. Углубление форштевнем составляло 2,74 метра, ахтерштевнем — 3,90 метра. Это видно на картинах современника Айвазовского. Углубление в полном грузу составляло, соответственно, 3,63 и 4,736 метра. Это качество было свойственно всем кораблям того времени, поскольку улучшало остойчивость на скорости - под ветровой нагрузкой дифферент на корму компенсировался и был практически незаметен. А так модель симпатичная получилась, успехов!
2024-05-20
RENDER.RU